《软件工程实践》PPT课件.ppt
《《软件工程实践》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件工程实践》PPT课件.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京理工大学软件工程实践汤铭端中国航天科工集团公司204所第八讲软件测试内容和目的n测试的目的和策略n测试的活动n测试的产品n测试的方法和度量要求n测试用例构造技术测试的目标nMyersn测试是一个为了寻找错误而运行的过程n一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例n一个成功的测试是指揭示了迄今为止尚未发现的错误的测试nIEEEn由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间有无差别。Myers软件测试十原则n程序员应避免测试自己编制的程序n测试用例的设计必须包括预期的输出结果n测试用例应包括有效的和期望的输入情况
2、,也要包括无效的和不期望的输入情况n彻底检查每个测试结果n只检查程序是否做了它应该做的事仅仅完成了测试工作的一半,另一半则是要检查程序是否做了它不该做的事n避免不可重复的即兴测试,保留全部测试用例n一段程序中存在错误的概率与在这段程序中已发现的错误数成正比n测试是一项非常复杂、创造性的和需要高度智慧的挑战性任务n不要为了便于测试擅自修改程序n测试工作必须有明确的目标测试的原则(DAVIE)n所有的测试都应追溯到需求n应该在测试工作真正开始前的较长时间就进行测试计划nPareto(20-80)原则应用于软件测试n测试应从“小规模”开始,逐步转向“大规模”n穷举测试是不可能的n为了达到最佳效果,应
3、该由独立的第三方来构造测试测试策略途径n测试开始于模块层,然后延伸到整个基于计算机的系统集合中n不同的测试技术适用于不同的时间点n测试是由软件的开发人员和(对大型系统来说)独立的测试组来管理的n测试和调试是不同的活动,但是调试必须能够适应任何的测试策略测试完成准则n资源耗尽n采用的测试方法满足某种测试充分性要求n满足覆盖率等可度量的测试要求n一段时期没有发现问题且所有发现问题均已解决n通过测试评估出软件达到要求的可靠度n测试发现频率和趋势达到预先计划的限度之下(限度根据要求、经验和历史数据得到)n在一段时期没有出现等级高的问题测试概图n阶段活动n单元n集成n合格性n系统n技术方法n静态测试n静
4、态分析n代码审查n动态测试n白盒测试n白盒测试用例技术n黑盒测试n黑盒测试用例技术V模型系统需求软件需求概要设计详细设计单元测试集成测试编码合格性测试系统测试详细设计概要设计软件需求系统需求软件任务编译后的单元测试后的单元集成的软件测试后的软件交付软件验证验证验证验证验证验证验证与确认验证与确认J.McDermid于1994年在“软件工程师参考手册”中提出测试活动n单元测试(UNIT)n集成测试(INTERGRATION)n合格性测试(QUALIFICATION)n系统测试(SYSTEM)单元测试单元测试n对软件单元进行测试,确实保证它作为一个单元能正常地工作n单元测试的目的是验证单元满足功能
5、、性能和接口等的要求n单元测试采用的技术:静态分析、代码审查、白盒动态测试n测试的充分性由各种测试覆盖率来度量单元动态测试的内容n主要针对下列模块的五个基本特性进行:n模块接口n局部数据结构n重要的执行路径n出错处理路径n影响以上各点的边界条件单元测试用例的要求)用指定值、异常值和极限值验证全部计算;)验证全部输入数据的各种选择;)验证全部输出数据的各种选择和格式;)每个单元的全部可执行语句至少执行一次;)在每个分支点进行选择的测试。单元测试用例的内容)指明被验证的需求或功能;)解释测试如何进行,说明验证代码与单元设计一致的准则和技术,以验证接口满足需求;)指明测试使用的支持软件,如测试工具、
6、驱动模块、桩模块、动态路径分析工具等;)说明全部输入数据和(或)驱动程序等;)说明预期的输出,包括数据值或其它可以验证的结果;)通过准则。单元测试执行环境驱动模块被测单元桩模块B桩模块C桩模块A集成测试n依据软件设计确定的软件结构,按照软件集成“工序”,把各个软件单元逐步集成为完整的软件系统,并不断发现和排除错误,以保证联接、集成的正确性。集成测试的内容集成测试的内容1)软件单元的接口测试;2)软件部件的功能、性能测试;3)全面数据结构测试;4)必要的运行时间、存贮空间、计算精度测试;5)边界条件和非法输入的测试。集成测试的要求集成测试的要求1)必须对有调用关系的软件单元之间的所有调用进行测试
7、,验证每个调用接口的完整性和一致性;2)应对软件进行正确处理的能力的经受错误影响的能力进行测试;3)应测试在各种外部输入下,从外部接口采集和(或)发送数据的能力,包括对正确数据及状态的处理,对接口错误、数据错误、协议错误的识别及处理。集成测试的通过准则集成测试的通过准则1)软件单元无错误地连接;2)满足各项功能、性能要求;3)对错误的输入有正确处理的能力;4)对测试中的异常有合理解释;5)人机界面、对外接口正确无误;软件集成策略1)非增量方式n先测试好每一个软件单元,然后一次组装在一起再测试整个程序。2)增量方式n逐步把下一个要被组装的软件单元或部件,同已测好的软件部件结合起来测试。n增量方式
8、主要包括自顶向下、自底向上、自顶向下与自底向上相结合等方法。集成方式集成方式n非增量方式nBigBangn增量方式n自顶向下方法自顶向下方法n自底向上方法自底向上方法n“三明治三明治”方法方法增量和非增量方式的优缺点n增量方式的优点:a.增量方式占用人工较少。b.增量方式可以较早地发现模块接口错误。c.增量方式容易排错。d.增量方式测试效果好,比较彻底。n非增量方式的优点:a.非增量方式占用机器时间较少。b.非增量方式有利于并行开发。非增量方式非增量方式n有一种很直接、原始的组装方式,它把所有通过单元测试的模块一古脑儿地全部集成在一起,直接组装成软件系统,并对它进行测试。n这种被贬义地称作大爆
9、炸(BigBang)的组装方式,目前仍在许多场合使用。n人们期望它可以带来方便、快捷的组装效果。n这种方法遭到广大测试专家的批评,普遍认为它会引起混乱,且难以确定错误源的位置。自顶向下方法自顶向下方法n自顶向下集成法是一个模块一个模块地组装软件的方法。n按照控制的结构,从主控模块(主程序)开始,向下地逐个把模块连接起来。n集成的方式有两种:深度优先组装法及宽度优先组装法。n深度优先法是先把结构中的一条主要的控制路经上的全部模块逐步组装起来。然后再连接其它的控制路径。n宽度优先法是从结构的顶层开始逐层往下组装。自顶向下集成的过程步骤1)主控模块用作为测试驱动器。直接附属于主控模块的各模块全都用桩
10、模块代替。2)按照所选的组装法(即深度优先或宽度优先)每次用一个真模块取代一个附属的桩模块。3)当装入每个真模块时都要进行测试。4)作完每一组测试后又再用一个真模块代替另一个桩模块。5)可以进行回复测试(即重新再作过去作过的全部或部分测试),以便肯定没有新的错误发生。自底向上方法自底向上方法n自底向上集成测试方法是从软件结构中最底层的、最基本的软件单元开始进行集成和测试。n由于在逐步向上组装过程中下层模块总是存在的,也就是说不再需要桩模块了,但却需要调用这些模块开展工作的驱动模块。自底向上自底向上集成的过程步骤1)低层的模块组成簇,以执行某个特定的软件子功能。2)编写一个驱动模块作为测试的控制
11、程序,和被测试的簇连在一起,负责安排测试用例的输入及输出。3)对簇进行测试。4)拆去各个小簇的驱动模块,把几个小簇合并成大簇,再重复做2、3及4步。这样在软件结构上逐步向上组装。“三明治三明治”方法方法n自顶向下测试的主要优点是能较早显示出整个程序的轮廓。主要缺点是,当测试上层模块时使用桩模块较多,很难模拟出真实模块的全部功能,使部分测试内容被迫推迟,直至换上真实模块后再补充测试。n自底向上测试从下层模块开始,设计测试用例比较容易,但是在测试的早期不能显示出程序的轮廓。n针对自顶向下、自底向上方法各自的优点和不足,人们提出了自顶向下和自底向上相结合,从两头向中间逼近的混合式组装方法,被形象称之
12、为“三明治”方法。“三明治三明治”方法的步骤方法的步骤n步骤:1)对上层模块采取自顶向下测试;2)对关键模块或子系统采取自底向上测试。n混合式的“三明治”方法,综合了自顶向下、自底向上两种方法的长处,扬了长避了短。n例如,对关键模块采取自底向上测试,就可能把输入输出模块提前组装进程序,使设计测试用例变得较为容易;或者使具有重要功能的模块早点与有关的模块相连,以便及早暴露可能存在的问题。除关键模块及少数与之相关的模块外,对其余模块尤其是上层模块仍采取自顶向下的测试方法,以便收到较早显示程序总体轮廓的效果。合格性测试n根据软件需求规格说明中定义的全部功能、性能、可靠性等需求,测试整个软件是否达到要
13、求。合格性测试内容n功能测试n性能测试n资源和余量测试n边界测试n操作测试n外部接口测试n强度测试n可靠性测试n安全性测试n恢复性测试n安装性测试n移植性测试n保密性测试n回归测试功能测试功能测试n根据功能需求进行测试,以确认软件与软件功能需求的一致n功能测试应达到以下要求:a.每一个软件功能都必须被测试用例或被认可的异常所覆盖(或由于异常情况的出现而未达到期望的覆盖,但该异常已被测试者认识到,并进行了处理);b.用一系列合理的数据类型和数据值运行,测试软件在正常、超负荷、饱和和其它“最坏”情况下的结果;c.用假想的数据类型和数据值运行,以测试软件排斥不规则(非法)输入的能力。性能测试性能测试
14、n对软件是否与所需定量的性能需求一致进行确认。n包括:a.软件在获得定量结果时计算的精确性;b.有时间要求的软件,其实际的运行时间;c.软件完成功能所能处理的数据量;d.软件各部分的协调性;e.其它性能指标。资源和余量测试资源和余量测试n测试是否符合软件需求规格说明中提出的处理时间、储存空间和内存、输入输出通道等资源使用的要求,并在设计中为这些资源留出了余量。n通常情况下,应保证在储存空间和内存,输入输出通道,以及处理时间的占用上至少有的余量。边界测试边界测试n测试软件在输入域和(或)输出域、数据结构、状态转换、过程参数、功能界限等边界点或端点情况下的运行状态。操作测试操作测试n操作测试包括对
15、用户接口、人机接口和人机交互要求的所有测试。n应以常规操作、非常规操作、误操作、快速操作等情况来检验界面的可靠性。n操作测试工作还包括对照软件使用说明,逐条进行相应的操作,以检测软件使用说明的完整性、正确性、与软件程序的一致性。外部接口测试外部接口测试n确认软件与其外部接口要求的一致性。n测试内容:a.测试所有外部接口,检测接口信息的格式和内容。b.对每一个外部输入输出接口应进行正常和异常情况测试。n如果软件不能在运行环境中测试,则有必要使用模拟程序或其它测试工具。强度测试强度测试n强度测试是在预先规定的一段时间内,在软件设计的极限状态下,进而在超设计能力的状态下,运行软件以测试软件的所有功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程实践 软件工程 实践 PPT 课件
限制150内