软件工程软件测试精.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程软件测试精.ppt》由会员分享,可在线阅读,更多相关《软件工程软件测试精.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件测试第1页,本讲稿共49页软软 件件 工工 程程-软件测试软件测试2第2页,本讲稿共49页防不胜防的软件错误防不胜防的软件错误 例:例:1963年年,美国美国,飞往火星的火箭爆炸飞往火星的火箭爆炸,损失损失$10 million.原因原因:FORTRAN循环循环 DO 5 I=1,3 误写为误写为 DO 5 I=1.3软软 件件 测测 试试 (Testing)软件测试是保证软件质量的关键步骤,是对软件规格软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作说明、设计和编码的最后复审,其工件量约占总工作量量40%以上(对于人命关天的情况,测试相
2、当于其它以上(对于人命关天的情况,测试相当于其它部分总成本的部分总成本的3 5倍倍)。)。3第3页,本讲稿共49页1.基本概念基本概念1、定义:测试是为了、定义:测试是为了发现程序中的错误发现程序中的错误而执行程序的过而执行程序的过程。程。注意:注意:只能尽可能查错,不能证明程序中只能尽可能查错,不能证明程序中 没有错;没有错;测试员与程序员不应是同一个人。测试员与程序员不应是同一个人。2、黑盒和白盒测试、黑盒和白盒测试 黑盒测试黑盒测试(black-box,or closed-box testing):不不考考虑虑程程序序内内部部的的结结构构,只只观观察察程程序序的的入入口口和和出出口口,是
3、是否否能能完成规格要求的输入输出完成规格要求的输入输出.功能测试功能测试4第4页,本讲稿共49页 白盒测试白盒测试(white-box,or open-box,clear-box testing):程序的结构和处理过程象白盒子一样透明程序的结构和处理过程象白盒子一样透明.结构测试结构测试1.基本概念基本概念若若程程序序执执行行需需10-3秒秒,则则对对于于所所有有合合法法输输入入的的测测试试大约需用一万年,而且还应测试输入非法数据的情况。大约需用一万年,而且还应测试输入非法数据的情况。主要问题:穷尽测试主要问题:穷尽测试(complete test)通常是不可能的。通常是不可能的。例:例:(B
4、lack-box)程序要求输入程序要求输入3个整形数据。若字长个整形数据。若字长16位,位,则各种可能输入的排列组合共有则各种可能输入的排列组合共有 (种)(种)5第5页,本讲稿共49页例:例:(White-box)下图所示的程序中共有下图所示的程序中共有 520 1014条可能条可能的执行通路,显然,每条通路都执行一遍是不的执行通路,显然,每条通路都执行一遍是不现实的。现实的。1.基本概念基本概念循环循环2020次次6第6页,本讲稿共49页3、测试步骤:测试步骤:(1)单元测试单元测试 程序设计程序设计&编码编码 bugs(2)集成测试集成测试 模块之间的连接模块之间的连接(3)系统测试系统
5、测试 需求需求&系统设计系统设计(4)验收测试验收测试 用户参与用户参与(5)平行测试平行测试 新老系统进行比较新老系统进行比较.综合综合测试测试1.基本概念基本概念测试阶段的信息流:测试阶段的信息流:测试测试评价评价调试调试可靠性可靠性模型模型软件配置软件配置测试配置测试配置测试结果测试结果可靠性预测可靠性预测错错 误误正正 确确错误率数据错误率数据预期结果预期结果7第7页,本讲稿共49页2.单元测试(白盒)单元测试(白盒)主要测试以下五个方面:主要测试以下五个方面:1、模块接口:、模块接口:内部检查:传输参数的数目、属性、单位、次序是否内部检查:传输参数的数目、属性、单位、次序是否匹配;全
6、程变量的定义是否一致;只做输入的变元匹配;全程变量的定义是否一致;只做输入的变元有无被修改,等等。有无被修改,等等。外部检查:打开、结束、关闭文件的操作;文件和属外部检查:打开、结束、关闭文件的操作;文件和属性;性;IO错误处理;输出拼写,等等。错误处理;输出拼写,等等。2、局部数据结构:、局部数据结构:数据说明数据说明(declaration);初始化与缺省值的设置;变;初始化与缺省值的设置;变量名拼写;数据类型的相容性;上量名拼写;数据类型的相容性;上下溢出及地址异下溢出及地址异常,等等。常,等等。8第8页,本讲稿共49页2.单元测试单元测试3、重要的执行通路:、重要的执行通路:由于穷尽测
7、试不可能,故通常针对最常见的错由于穷尽测试不可能,故通常针对最常见的错误设计测试方案。误设计测试方案。4、出错处理通路:、出错处理通路:预见出现错误的条件,设置处理。预见出现错误的条件,设置处理。5、边界条件、边界条件 单元测试中最后,也可能是最重要的单元测试中最后,也可能是最重要的任务,因为软件常在其边界失效。任务,因为软件常在其边界失效。9第9页,本讲稿共49页1、代码审查、代码审查(code inspection)彻彻底底检检查查:例例如如 Lucent Technologies 的的测测试试策策略略,是是由由三三人人一组一组(包括包括 author,reader,和和recorder)
8、,逐行检查源代码。,逐行检查源代码。演习:由人扮演演习:由人扮演computer,模拟执行情况。,模拟执行情况。2.单元测试单元测试优点优点:一次审查可发现多个错误,不必改一个测一个。一次审查可发现多个错误,不必改一个测一个。单元测试的主要手段单元测试的主要手段:2、制作测试软件:、制作测试软件:Stub(存根)和(存根)和 Driver(驱动)软件的编(驱动)软件的编写,属额外开支。模块高内聚可简化这一过程。写,属额外开支。模块高内聚可简化这一过程。10第10页,本讲稿共49页3.集成测试集成测试 (Integration Testing)1、非渐增式测试、非渐增式测试(Big-bang t
9、esting)Test A,B,C,DTestATestBTestCTestD11第11页,本讲稿共49页3.集成测试集成测试两种方式的比较:两种方式的比较:Incremental testing 可以较早发现模块间的接口错误;可以较早发现模块间的接口错误;Big-bang testing 最后才组装,因此错误发现得晚。最后才组装,因此错误发现得晚。Big-bang testing 中发现错误后难以诊断定位;中发现错误后难以诊断定位;Incremental testing 中,出现的错误往往跟最新加入的模块有关。中,出现的错误往往跟最新加入的模块有关。Incremental testing 在
10、不断集成的过程中使模块不断在新的条在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底。件下受到新的检测,测试更彻底。Incremental testing 较较 Big-bang testing 费时。费时。Big-bang testing 可以同时并行测试所有模块,能充分利用人力。可以同时并行测试所有模块,能充分利用人力。2、渐增式测试、渐增式测试(Incremental testing)12第12页,本讲稿共49页 自顶向下测试自顶向下测试第第1步:测试顶端模块,用存根程序步:测试顶端模块,用存根程序(stub)代替直接附属的下层模块代替直接附属的下层模块 Stub:模拟未测
11、试模块的活动模拟未测试模块的活动.3.集成测试集成测试3、Incremental testing 的几种策略的几种策略MS1S213第13页,本讲稿共49页第第2步:根据深度优先或宽度优先的策略,每次用一个步:根据深度优先或宽度优先的策略,每次用一个实际模块代换一个实际模块代换一个stub。3.集成测试集成测试第第3步:在结合进一个模块的同时进行测试。步:在结合进一个模块的同时进行测试。MS1S2M1S3S4M2S2第第4步:回归测试步:回归测试(regression testing)全部或部分全部或部分地重复以前做过的测试。地重复以前做过的测试。14第14页,本讲稿共49页 自底向上测试自底
12、向上测试第第1步:把低层模块组合成族,每族实现一个子功能。步:把低层模块组合成族,每族实现一个子功能。第第2步:用驱动程序步:用驱动程序(Driver)协调测试数据的协调测试数据的IO,测试,测试子功能族。子功能族。3.集成测试集成测试优点:在早期即对主要控制及关键的抉择进行检验。优点:在早期即对主要控制及关键的抉择进行检验。问题:问题:Stub只是对低层模块的模拟,测试时没有重要的数只是对低层模块的模拟,测试时没有重要的数据自下往上流,许多重要的测试须推迟进行,而且据自下往上流,许多重要的测试须推迟进行,而且在早期不能充分展开人力。在早期不能充分展开人力。Driver:调用模块细节逐个进行测
13、试调用模块细节逐个进行测试.DM1M215第15页,本讲稿共49页第第3 3步:去掉步:去掉DriverDriver,自下而上把子功能族合成更,自下而上把子功能族合成更大的子功能族。大的子功能族。MMMMMMMMMMMMDDDDDD3.集成测试集成测试注意:注意:两种策略的两种策略的优、缺点刚好互补,优、缺点刚好互补,但单用其中任一种但单用其中任一种都不实际,通常根都不实际,通常根据软件的特点将二据软件的特点将二者混用。者混用。16第16页,本讲稿共49页 Sandwich testing(三文治测试)(三文治测试)3.集成测试集成测试Target layerTop-downBottom-up
14、17第17页,本讲稿共49页4.验收测试验收测试(Acceptance testing)任务:验收软件的有效性(功能和性能达标)。任务:验收软件的有效性(功能和性能达标)。手段:黑盒测试;用户参与;主要用实际数据进行手段:黑盒测试;用户参与;主要用实际数据进行测试。测试。内容:按合同规定审查软件配置;内容:按合同规定审查软件配置;设计测设计测试计划,使通过测试保证软件能满足所有功试计划,使通过测试保证软件能满足所有功能、性能要求;能、性能要求;文档与程序一致,文档与程序一致,具有维护阶段所必须的细节;具有维护阶段所必须的细节;严格按用户手册操作,以检查手册的完整性严格按用户手册操作,以检查手册
15、的完整性和正确性。和正确性。18第18页,本讲稿共49页5.设计测试方案设计测试方案(Plan of testing)主要技术:主要技术:1、逻辑覆盖、逻辑覆盖(Logical coverage)适用于白盒测试适用于白盒测试 覆盖程度由弱到强顺次为:覆盖程度由弱到强顺次为:语句覆盖语句覆盖(Statement coverage):每个语句至少执行一每个语句至少执行一次。次。任务:任务:预定要测试的功能预定要测试的功能 设计输入的测试数据设计输入的测试数据(test cases)列出预期结果列出预期结果(expected output)19第19页,本讲稿共49页5.设计测试方案设计测试方案例:
16、例:问问题题:若若AND错错写写为为OR,或或 X1错错写写为为X 1AND B=0TA=2OR X 1TX=X/AX=X+1返回返回FFTest case:A=2,B=0,X=4.20第20页,本讲稿共49页判定覆盖判定覆盖(Branch coverage):在:在的基础上,每个的基础上,每个判定的每个分支至少执行一次。判定的每个分支至少执行一次。5.设计测试方案设计测试方案Test cases:A=3,B=0,X=3A=2,B=1,X=1问题:若问题:若X1错写错写为为X 1AND B=0TA=2OR X 1TX=X/AX=X+1返回返回FF21第21页,本讲稿共49页 条件覆盖条件覆盖(
17、Condition coverage):在:在的基础上,使每个的基础上,使每个判定表达式的每个条件都取到各种可能的结果。判定表达式的每个条件都取到各种可能的结果。5.设计测试方案设计测试方案Test cases:A=2,B=0,X=4(满足(满足A1,B=0;A=2,X1)A=1,B=1,X=1(满足满足A 1,B 0;A 2,X 1)问:条件覆盖问:条件覆盖?判定覆盖判定覆盖 答答:不一定。不一定。反例反例:A=2,B=0,X=1 A=1,B=1,X=2 判定判定/条件覆盖:即条件覆盖:即判定覆盖判定覆盖 条件覆盖条件覆盖 入口入口A 1AND B=0TA=2OR X 1TX=X/AX=X+
18、1返回返回FF22第22页,本讲稿共49页 条件组合覆盖:每个判定表达式中条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一条件的各种可能组合都至少出现一次。次。5.设计测试方案设计测试方案入口入口A 1AND B=0TA=2OR X 1TX=X/AX=X+1返回返回FF全部可能的条件组合为:全部可能的条件组合为:A1,B=0 A1,B 0 A 1,B=0 A 1,B 0 A=2,X1 A=2,X 1 A 2,X1 A 2,X 1 Test cases:A=2,B=0,X=4 (T T)A=2.B=1,X=1 (F T)A=1,B=0,X=2 (F T)A=1,B=1,X=1 (F
19、F)问题:没有测试到问题:没有测试到(T F)的情形的情形23第23页,本讲稿共49页考察考察control flow graph 的角度,还可考虑下述覆盖:的角度,还可考虑下述覆盖:点覆盖点覆盖5.设计测试方案设计测试方案 边覆盖边覆盖=语句覆盖语句覆盖 路径覆盖路径覆盖(Path coverage):每条可能的路径都至少执行一每条可能的路径都至少执行一次,若图中有环,则每个环至少经次,若图中有环,则每个环至少经过一次。过一次。=判定覆盖判定覆盖Test cases:A=1,B=1,X=1 A=1,B=1,X=2 A=3,B=0,X=1 A=2,B=0,X=4 路径覆盖路径覆盖 条件组合覆盖
20、条件组合覆盖24第24页,本讲稿共49页 划分经验划分经验 当规定了输入范围时:当规定了输入范围时:5.设计测试方案设计测试方案2、等价划分、等价划分(Equivalence Partitioning)适用于黑盒测试适用于黑盒测试 划划分分一一组组 等等价价类类 描描绘绘一一组组输输入入条条件件的的有有效效或或无无效效条条件件,测测试试程程序序是是否否有设计方案中该有的输出结果有设计方案中该有的输出结果.无效类无效类 有效类有效类 无效类无效类 当当规规定定了了输输入入的的一一组组值值,且且对对不不同同值值做做不不同同处处理理时时:例例:教教工工分分房房方方案案中中,按按教教授授、副副教教授授
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 测试
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内