完整课件-软件测试技术.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《完整课件-软件测试技术.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 课件 软件 测试 技术
- 资源描述:
-
1、软件测试技术授课:孔春波 软件的缺陷-BUG恐怖的BUG恐怖的BUG 千年虫问题.爱国者导弹防御系统.火星登陆事故.高铁的自动闭塞系统.软件测试的发展国内测试行业现状11%38%51%独立设置软件测试部门的调查独立设置软件测试部门的调查有专门的测试工具开发部门有专门的测试技术研究部门没有专门的测试技术部门国内测试行业现状1:19%1:215%1:320%1:412%1:5以上17%无测试人员27%测试人员与开发人员比例测试人员与开发人员比例测试人员现状 基础知识不够扎实 专业技术不够精通 没有建立起相对完整的测试体系概念国内软件测试未来发展 职业重视程度正在快速提高 企业对高质量的测试工程师需
2、求量越来越大 短期将出现测试工程师严重短缺的现象技术要求 腾讯技术要求 腾讯技术要求 百度技术要求 迅雷测试人员要掌握的技术 1.系统编程语言:C/C+,JAVA,C#.2.脚本语言:PERL,RUBY,PYTHON 3.软件架构,UML 4.数据库 5.网络协议,操作系统 6.人机交互认知 编写文档的能力 测试技术 测试工具课程目标本课程是计算机或软件专业课程,重在培养我们的实践能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念和测试技术保持同步。通过本课程的学习,了解并掌握软件产品质量保证的基本思想和科学体系、软件测试技术的基本内容,以及软件测试的方法、技术和工具的使用,为
3、全面掌握软件技术和软件项目管理打下坚实的基础 课程内容有效的测试策略、方法和技术测试计划和测试用例的设计测试自动化的引入、应用 测试团队的建立和测试项目的管理更清楚、准确地报告测试缺陷 对软件产品质量的正确评估软件测试和质量保证的关系和区别 课程培养方向-测试工程师 Test engineer-QA工程师/经理 QA Engineer/Manager-软件工程过程组成员 The member of SEPG-项目经理 Project manager-程序员 Programmer-软件分析师 Software Analyst-软件咨询顾问 Software Consultant-授课的层次 Kn
4、ow What 某领域基本知识点的掌握 Know How 可以活用学到的知识来解决实际问题 Know Why 了解各种知识之后的复杂交错的因果关系,一切都是那么有条理,因此可能解决更大更复杂的问题 Care Why(创新)软件产品也需要创意和洞察先机我们短期努力 可以达到Know Why的阶段 Case Why(创新)则需要多年的实际开发经验并具有敏锐的市场商业头脑才能做到。参考书籍n 软件测试Ron Patton 机械工业出版社n 软件测试教程 宫云战 机械工业出版社 联系方式 电子邮件: 移动电话:13607483030你相信你能或者不能你都是对的软件测试综述内容 软件概念和特点 软件危机
5、 软件测试的产生 软件测试的定义 软件测试的发展和前景软件的概念 GB/T 17544-1998:信息处理系统的所有或部分程序、规程、规则和任何相关的文档的集合 程序:源程序目标程序 源程序:高级语言、汇编语言编写的程序 目标程序:源程序经编译或解释加工以后可以由计算机直接执行的程序 文档:用自然语言或形式化语言所编写的文字资料和图表,用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法软件的特点 计算机软件是工具,同时也是作品,是工具性与作品性紧密结合的智力成果 计算机软件开发工作量大,成本高,但复制容易,成本极低 计算机软件具有无形性,可以多次使用,但商业寿命较短软件危机
6、 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象 如何开发软件,怎样满足对软件日益增长的需求 如何维护数量不断膨胀的已有软件 软件危机的表现 对软件开发成本和进度的估计很不准确 成本高,进度拖延信誉低 赶进度,节约成本质量低 用户对“已完成的”软件系统不满意 对用户需求模糊,匆忙开始,开发和用户交流不充分 软件产品质量常常靠不住 软件质量保证刚出现,质保技术刚应用,没有坚持贯彻软件危机的表现 软件常常不可维护 错误难改正,程序难适应新硬件环境,难新增功能 软件通常没有适当的文档资料 软件成本在计算机系统成本中所占比例逐年上升 硬件成本降
7、低,开发人力增加,通货膨胀,软件规模增大,数量急剧增加,软件成本占系统成本90软件危机产生的原因 软件本身存在着复杂性 与软件开发人员和所使用的方法、技术有关科学技术发展计算机广泛应用要求软件跟上开发大型软件软件技术发展复杂程度高研发周期长正确性难以保证软件危机软件测试的发展软件测试的产生软件危机能够解决吗?没有银弹!软件测试的产生 社会的发展与进步,信息化产业的飞步增长,软件系统越来越大,软件中存在的问题也越来越多软件测试的产生 需要第三方平衡开发人员和用户 技术员:用什么技术实现需求、展现自己的实力、不关心对用户使用有什么弊端 用户:是否满足需求、是否易用、不关心开发人员用什么难度技术实现
8、三个角度看测试 公司经济角度 以最少人力,物力和时间找出软件中潜在的各种错误和缺陷 通过修正各种错误和缺陷提高软件质量 回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险三个角度看测试 客户角度 是以评价一个程序或者系统属性为目标的活动 对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度 为用户选择与接受软件提供有力的依据三个角度看测试 开发技术角度 通过分析错误产生的原因,可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进 通过对测试结果的分析整理,可以修正软件开发规则,为软件可靠性分析提供依据软件测试的定义 1979年,Glenford Myers
9、,The Art of Software Testing:为了发现错误而执行程序或者系统的过程 1980年,在美国俄勒冈计算机会议上软件测试被正式确认为软件工程的一部分软件测试的定义 1983年,Bill Hetzel在软件测试完全指南(Complete Guide of Software Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动 1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别软件缺陷的定义 缺陷缺陷 软件未达到产品说明书中已标明的功能软件未达到产
10、品说明书中已标明的功能 软件出现了产品说明书中指明不会出现的错误软件出现了产品说明书中指明不会出现的错误 软件功能超出了产品说明书指明的范围软件功能超出了产品说明书指明的范围 软件未达到产品说明书虽未指出但应达到的目软件未达到产品说明书虽未指出但应达到的目标标 软件测试员认为软件难以理解,不易使用,运软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效行速度缓慢,或者最终用户认为该软件使用效果不好果不好测试与调试的区别测试调试完成任务发现程序中的缺陷定位并且解决程序中的问题执行人测试人员 黑盒单元、集成测试 开发人员执行周期贯穿整个软件开发生命周期一般在开发阶段软件
11、测试过程及分类本节内容 测试过程 测试的分类 按测试的方法分类 按测试的阶段分类软件测试的过程测试需求的分析和确定测试计划测试执行测试记录和缺陷跟踪回归测试测试总结报告测试过程 1.测试需求 需求文档的测试测试过程 2.测试的计划 对测试过程的整体设计 确定测试范围 制定测试策略 安排测试资源 进度制定 风险评估,应对策略测试过程 3.测试设计及用例 测试设计 用例设计 用例评估测试过程 4.测试的执行 用例的选择(难的?复杂的?优先级高的?)测试环境的搭建 每日构建测试过程 5.测试的记录和跟踪 Bug记录 Bug管理 Bug的报告(沟通,评审,提交)Bug的跟踪测试过程 5.回归测试 再测
12、一次?测试过程 6.测试总结和报告 缺陷的分类报告(类型,区域,状态,趋势)客观全面的报告生成(人员,用例,功能覆盖,时长)经验总结软件测试的分类-按方法 静态与动态测试 静态测试不运行程序 动态测试运行程序,需要准备测试数据软件测试的分类-按方法 黑盒测试、白盒测试、灰盒测试y=2x?y=x2软件测试的分类-按方法 冒烟测试 对每一个新编译的需要正式测试的软件版本,确认软件基本功能正常,可以进行后续的正式测试工作 回归测试 在修改程序以后,重新测试先前的测试以保证修改的正确性软件测试的分类-按方法 功能测试与性能测试 根据软件产品特性、操作描述和用户方案测试软件产品的特性和可操作行为以确定满
13、足设计需求 评价软件产品与性能需求是否符合(包括负载测试、强度测试、数据库容量测试、基准测试等)软件测试的分类-按方法 压力测试和负载测试 获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力 用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高到什么程度 负载测试是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力软件测试的分类-按方法 配置测试 检查计算机系统内各个设备或各种资源之间的相互连接和功能分配中的错误 文档测试 检查文档的正确性、完备性、可理解性 兼容性测试 测试软件是否和系统的其他与之交互的元素之间兼容软件测试的分类-按方法
14、安全性测试 检查系统对非法侵入的防范能力,检查系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞 恢复测试 检查系统的容错能力 可移植性测试 测试软件是否可以被成功移植到指定的硬件或软件平台上软件测试的分类-按方法 引导测试 软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力 外包测试中,是客户检查软件测试公司测试能力的一种形式 随机测试 没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试软件测试的分类-按方法 手工和自动测试 手工测试是采用人工手动的方式执行测试 自动化测试是使用自动化测试工具来进行测试,不需要人工干预,主要用在GUI、性能等测试中 通过测试失败测
15、试 使用满足不满足需求的数据测试系统 错误猜测 通过直觉发现程序中的错误和缺陷的能力软件测试的分类-按方法 易用性测试 主要从使用的合理性和方便性等角度对软件系统进行检查 安装测试 确保软件在正常情况和异常情况的不同条件下都能进行安装 界面测试 测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字图片组合是否完美,操作是否有好软件测试的分类-按阶段 单元测试 针对每一个程序模块进行正确性检查,检查各个程序模块是否正确的实现了规定的功能 集成测试 在单元测试的基础上将已经通过测试的单元模块按照设计要求组装成系统或子系统进行测试,找出被测系统组件之间关系和接口中的错误 非增式集成
16、增式集成 自顶向下 自底向上软件测试的分类-按阶段 确认测试 由集成测试进入系统测试之前,需要对软件是否可以进入系统测试进行评价,这个称为确认测试 测试所开发的软件是否能按用户提出的要求运行 软件配置审核保证软件配置的所有成分都齐全,各方面质量都符合要求 系统测试 与计算机硬件、外设、支持软件、数据、人员等其他元素结合,在实际运行环境下的测试软件测试的分类-按阶段 验收测试验收测试 测试测试内测内测 测试测试公测公测共享资源 公共邮箱: 6dao16 课件,笔记会放在邮箱的网盘中 作业,实验报告按班级打包以邮件方式发送到这个邮箱软件测试的目的和原则目的 建立软件的信心理件软件测试目的 验证(V
17、erfication):软件生命周期的各个阶段,用下一个阶段的产品来检查是否满足上一个阶段的规则 确认(Validation):软件生命周期的各个阶段,检查是否满足需求阶段定义的各项规格和要求。原则 Good Enough原则:投入与产出平衡 Pareto原则:二八原则 尽可能早的开展测试 错误多的地方多投入 同化问题:交叉测试,利用不同人的观点问题:软件测试的目的?软件测试是否发现所有的BUG?测试人员在进行测试的时候遵循什么原则?软件测试开始的时间?软件测试的过程测试需求的分析和确定测试计划测试执行测试记录和缺陷跟踪回归测试测试总结报告测试需求对需求文档的测试或评审 需求的测试是重点需求5
18、6%设计27%编码10%其他7%缺陷比例缺陷比例需求可能存在的问题 需求文档编写有问题、功能不明确,流程不清晰,不正确占50%余下50%是需求的遗漏造成的检查的要点对于需求文档,应该遵循尽早测试的原则完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。正确性:每一项需求都必须准确地陈述其要开发的功能。一致性:一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。无二义性:对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简
19、洁明了的用户性的语言表达出来。健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要使每项需求都能回溯至某项客户的输入,如Use Case或别的来源。可测试性:每项需求都能通过设计测试用例或其它的验证方法来进行测试。可修改性:每项需求只应在S R S 中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以一种结构化的,粒度好(f
20、i n e-g r a i n e d)的方式编写并单独标明,而不是大段大段的叙述。另外应当对所有的需求分配优先级。如果把所有的需求都看作同样的重要,那么项目管理者在开发或节省预算或调度中就丧失控制自由度需求文档检查步骤尝试理解需求规格说明书原始需求文档检查列表讨论、评审、修订需求文档检查列表序号 检查项检查结果说明1是否覆盖了用户提出的所有需求项是否NA 2用词是否清晰,语义是否存在有歧义的地方是否NA 3是否清楚地描述了软件系统需要做什么及不做什么是否NA 4是否描术了软件使用的目标环境,包括软硬件环境是否NA 5是否对需求项进行了合理的编号是否NA 6需求项是否前后一致,彼此不冲突是否N
21、A 7是否清楚说明了系统的每个输入、输出的格式,以及输入输出之间的对应关系是否NA 8是否清晰描述了软件系统的性能要求是否NA 9需求的优先级是否合理分配是否NA 10是否描述了各种约束条件是否NA 编写测试用例需求规格说明书测试用例虚拟软件产品测试人员开发人员“预演”测试测试用例编号:Input_001测试优先级:中测试目的:验证业务单据数据的查询正确性标题:业务单据查询步骤:1.打开查询界面 2.输入查询条件 3.确定并提交查询 4.查看并验证返回的信息还有.除了文档检查和测试用例外,可以通过用户调查和利用现存产品对需求进行测试一些技术建议 熟悉UML 测试前了解软件系统对应的行业 多熟悉
22、需求:温伯格的探索需求设计前的质量 Exploring Requirements:Quality Before Design 测试计划的编写 测试用例设计的方法软件测试的过程测试需求的分析和确定测试计划测试执行测试记录和缺陷跟踪回归测试测试总结报告测试计划制定可行的计划 凡是预则立,不预则废项目的关键项目成功的四大要素时间成本范围质量测试计划的作用 内部作用:作为测试计划的结果,让相关人员和开发人员来评审 存储计划执行的细节,让测试人员进行评审 存储计划进度表,测试环境等更多的信息 外部作用:给顾客信心 交待测试过程,人员,资源,使用工具测试计划的设计与实现取得需求文档取得需求文档确定测试策略
23、确定测试策略确定测试系统确定测试系统测试设计和实现测试设计和实现复查测试计划复查测试计划预估测试工作量预估测试工作量需求规格说明书1.测试的范围(将要测试什么)2.测试方法(如何完成测试)3.测试入口/退出条件和质量检查点4.自动化策略1.测试构架2.测试环境3.测试配置1.确定任务2.预估工作量3.确定时间进度计划1.编写策略、系统、工作量和时间进度文档2.与项目团队一起复查测试计划IEEE定义的测试计划 测试计划:一个叙述了预定的测试活动范围、途径、资源及进度安排的文档。它确定了测试项、被测特征、测试任务、人员安排以及与计划相关的风险。三要素:时间 资源 范围 其他方面 策略 风险控制测试
24、计划内容 5-1 确定测试范围 5-2 制定测试策略 5-3 测试资源安排 5-4 进度及安排 5-5 风险及对策5-1确定测试范围 明确哪些要测,哪些不要测,比如大部分软件系统不需要测硬件 不要忽略了用户手册,安装包,数据库等信息,这些也决定产品好坏 某些阶段的测试或者某些内容的测试可以简化 当对原有系统进行修改升级时,某些测试不需要 某些测试根本不可能进行5-2 制定测试策略测试策略(1/4)确定测试顺序 先测优先级最高的需求 对新功能和修改功能的代码进行测试 运用等价划分技术和边界值分析技术减少测试工作量 测试那些最有可能出现问题的地方 关注用户最常使用的功能和配置情况等测试策略(2/4
25、)确定测试方法对需求文档进行静态测试,主要采用审查走查的方法验证需求的完整性、一致性可行性需求分析阶段白盒测试方法由程序员完成编码和单元测试阶段黑盒测试方法设计用例时注意等价划分和边界值方法集成测试阶段黑盒测试方法测试工具,进行自动化测试,包括系统的功能和性能测试系统测试阶段动态、黑盒测试方法由用户来进行验收测试阶段测试策略(3/4)测试标准 入口标准:描述在开始之前需要做哪些工作 出口标准:描述在怎样的情况下可以结束测试 暂停/继续测试:描述如果缺陷妨碍测试进行下去,会发生什么事情。如果情况很糟,无法执行计划的测试,则应暂停测试,等完成修复工作后,再完成测试工作。通过/失败标准 执行每项测试
展开阅读全文