第06章软件工程的测试精选文档.ppt
《第06章软件工程的测试精选文档.ppt》由会员分享,可在线阅读,更多相关《第06章软件工程的测试精选文档.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第06章章软件工程的件工程的测试本讲稿第一页,共七十六页第六章第六章软件项目的测试软件项目的测试软件测试基本概念软件测试基本概念1软件测试计划与测试分析报告软件测试计划与测试分析报告5软件测试的方法软件测试的方法2软件测试的步骤软件测试的步骤3程序调试程序调试4本讲稿第二页,共七十六页6.1 软件测试基本概念软件测试基本概念测试的目的是确保软件的质量,尽量找出软件错误并加以纠正,而不是证明软件没有错。v19631963年美国飞往火星的火箭爆炸,原因是年美国飞往火星的火箭爆炸,原因是FORTRANFORTRAN程序:程序:vDO 5 I=1DO 5 I=1,3 3 误写为:误写为:DO 5 I
2、=1.3 DO 5 I=1.3 损失损失10001000万美元。万美元。v19671967年苏联年苏联“联盟一号联盟一号”宇宙飞船返回时因忽略一个小数点,在进入大气层时打不宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而烧毁。开降落伞而烧毁。本讲稿第三页,共七十六页6.1 软件测试基本概念软件测试基本概念v一、为什么要进行软件测试一、为什么要进行软件测试软件中存在错误是不可避免的软件是一种高密集度的智力产品客观系统的复杂性人主观认识的局限性信息通信不一致协调管理不完善本讲稿第四页,共七十六页6.1 软件测试基本概念软件测试基本概念v二、测试的概念二、测试的概念v1 1、软件测试、软
3、件测试软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动(包括代码执行活动与人工活动)。测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置而加以纠正。纠正过程可能涉及到改正或者重新设计相关的文档活动。找错活动称为测试,纠错活动称为调试。本讲稿第五页,共七十六页6.1 软件测试基本概念软件测试基本概念v2 2、程序测试、程序测试程序测试是早已流行的概念。它是对编码阶段的语法错、语义错、运行错进行查找的编码执行活动。找出编码中错误的代码执行活动称程序测试。纠正编码中的错误的执行活动称程序调试。通过查找编码错与纠正编码错来保证算法的正确实现。v软件测试与调试覆盖软
4、件生存周期的整个阶段,而程序测试与调试软件测试与调试覆盖软件生存周期的整个阶段,而程序测试与调试则仅限于编码阶段,软件测试中的单元测试与程序测试十分相似,则仅限于编码阶段,软件测试中的单元测试与程序测试十分相似,不同在于,单元测试还要测试模块间的接口,并要设计与接口相关不同在于,单元测试还要测试模块间的接口,并要设计与接口相关的模块。的模块。本讲稿第六页,共七十六页6.1 软件测试基本概念软件测试基本概念v3 3、软件确认与程序确认、软件确认与程序确认v软件确认是广义上的软件测试,它是企图软件确认是广义上的软件测试,它是企图证明程序软件在给定的外部环境中的逻辑正确证明程序软件在给定的外部环境中
5、的逻辑正确性的一系列活动和过程,指需求说明书的确认,性的一系列活动和过程,指需求说明书的确认,程序的确认。程序确认又分成静态确认与动态程序的确认。程序确认又分成静态确认与动态确认。静态确认包括,正确性证明,人工分析,确认。静态确认包括,正确性证明,人工分析,静态分析。动态分析包括动态确认与动态测试。静态分析。动态分析包括动态确认与动态测试。本讲稿第七页,共七十六页6.1 软件测试基本概念软件测试基本概念v静态分析是不执行程序本身,分析程序正文可能导致错误的异常情况。静态分析是不执行程序本身,分析程序正文可能导致错误的异常情况。可以人工的进行分析,也可以用测试工具静态分析程序来进行,被测试程序的
6、可以人工的进行分析,也可以用测试工具静态分析程序来进行,被测试程序的正文做为输入,经静态分析程序分析得出分析结果。静态分析包括结构检查,正文做为输入,经静态分析程序分析得出分析结果。静态分析包括结构检查,流图分析,符号执行。流图分析,符号执行。v动态分析是执行被测程序,从执行结果分析程序可能出现的错误。动态分析是执行被测程序,从执行结果分析程序可能出现的错误。可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检测与可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检测与分析。动态测试包括功能测试和结构测试。动态测试的内容包括:单元测分析。动态测试包括功能测试和结构测试。动态测试
7、的内容包括:单元测试,也称逻辑测试,模块测试,功能测试。组装测试也称集成测试,综合试,也称逻辑测试,模块测试,功能测试。组装测试也称集成测试,综合测试,或结构测试,子系统测试。系统测试是软硬件或子系统的组装测试。测试,或结构测试,子系统测试。系统测试是软硬件或子系统的组装测试。本讲稿第八页,共七十六页6.1 软件测试基本概念软件测试基本概念v4 4、各种软件错误的出现比例、各种软件错误的出现比例v功能错,占整个软件错误功能错,占整个软件错误2727,是需求分析设计不完整而引,是需求分析设计不完整而引起的。起的。v系统错,占整个软件错误系统错,占整个软件错误1616,是总体设计错误而引起,是总体
8、设计错误而引起v数据错,占整个软件错误数据错,占整个软件错误1010,由编码错误引起的,由编码错误引起的v编码错,占整个软件错误编码错,占整个软件错误4 4,程序员编码错误引起的,程序员编码错误引起的v其它错,占整个软件错误其它错,占整个软件错误1616,文档错和硬件错所引起,文档错和硬件错所引起本讲稿第九页,共七十六页6.1 软件测试基本概念软件测试基本概念n三、软件测试的目标三、软件测试的目标n测试是为了发现程序中的错误而执行程序的过程;n好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;n成功的测试是发现了至今为止尚未发现的错误的测试本讲稿第十页,共七十六页6.1 软件测试基本概
9、念软件测试基本概念v四、软件测试的原则四、软件测试的原则v1 1、测试前要认定被测试软件有错,不要认为软件设有错。、测试前要认定被测试软件有错,不要认为软件设有错。v2 2、要预先确定被测试软件的测试结果。、要预先确定被测试软件的测试结果。v3 3、要尽量避免测试自己编写的程序。、要尽量避免测试自己编写的程序。v4 4、测试要兼顾合理输入与不合理输入数据。、测试要兼顾合理输入与不合理输入数据。v5 5、测试要以软件需求规格说明书为标准。、测试要以软件需求规格说明书为标准。v6 6、测试是相对的,不能穷尽所有的测试,要据人力物力安排测、测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,并选
10、择好测试用例与测试方法。试,并选择好测试用例与测试方法。v7 7、充分注意测试中的群集现象、充分注意测试中的群集现象:测试中发现的测试中发现的80%80%的错误可能来的错误可能来自于自于20%20%的程序代码的程序代码本讲稿第十一页,共七十六页6.1 软件测试基本概念软件测试基本概念v四、软件测试的原则四、软件测试的原则n8、严格执行测试计划,尽量避免测试的随意性,从工程的角度理解软件测试,它是有组织、有计划、有步骤的活动n9、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便n10、应当把“尽早地和不断地进行软件测试”作为软件测试人的座右铭本讲稿第十二页,共七十六页6.2 软
11、件测试的方法软件测试的方法v6.2.1 6.2.1 软件测试方法的分类软件测试方法的分类v软件测试方法分为两类:静态分析、动态测试。软件测试方法分为两类:静态分析、动态测试。v一、静态分析技术一、静态分析技术v不执行被测软件,可对需求分析说明书、软件设计说明书、不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。源程序做结构检查、流程分析、符号执行来找出软件错误。v二、动态测试技术二、动态测试技术v当把程序作为一个函数,输入的全体称为函数的定义域,输出当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入
12、的定义域与输出值域的的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。关系。本讲稿第十三页,共七十六页6.2 软件测试的方法软件测试的方法v动态测试的算法有:动态测试的算法有:选取定义域中的有效值,或定义域外无效值。对已选取值决定预期的结果。用选取值执行程序。观察程序行为,记录执行结果。将的结果与的结果相比较,不吻合则程序有错。本讲稿第十四页,共七十六页6.2 软件测试的方法软件测试的方法v三、黑盒测试与白盒测试三、黑盒测试与白盒测试v动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结枸的测试,接口的
13、测试,它们都是以执行程序并分黑盒法做功能结枸的测试,接口的测试,它们都是以执行程序并分析执行结果来查错的。析执行结果来查错的。v1、黑盒测试法、黑盒测试法v黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测
14、试又称为功能测试。信息的完整性。黑盒测试又称为功能测试。本讲稿第十五页,共七十六页6.2 软件测试的方法软件测试的方法v2、白盒测试法、白盒测试法v白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。作,白盒测试又称为结构测试。使用白盒测试法,为了做到穷尽测试,程序中每条可能的通
15、路至少都应该执行一次,但即使测试很小的程序,通常也不能做到这一点。一段程序对嵌套的语句循环执行20次,而循环体中有5条可能的路径,则在这段程序中共有520条可能的通路,即使每条通路只执行一次,也是不可能的,因此,要注意,不可能进行穷尽测试,也说明,测试不可能发现程序中的所有错误。本讲稿第十六页,共七十六页6.2 软件测试的方法软件测试的方法本讲稿第十七页,共七十六页6.2 软件测试的方法软件测试的方法v6.2.2 6.2.2 测试方案设计测试方案设计v一、白盒法一、白盒法v白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。盖标
16、准确定的。语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖判判定定条条件件覆覆盖盖条条件件组组合合覆覆盖盖弱弱强强本讲稿第十八页,共七十六页6.2 软件测试的方法软件测试的方法语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。本讲稿第十九页,共七十
17、六页6.2 软件测试的方法软件测试的方法v白盒测试法步骤白盒测试法步骤:选择逻辑覆盖标准。按照覆盖标准列出所有情况。选择确定测试用例。验证分析运行结果与预期结果。v例:用白盒法测试以下程序段:例:用白盒法测试以下程序段:vProcedureProcedure(VAR AVAR A,B B,X X:REALREAL););vBEGINBEGINv IF IF(A1)AND(B=0)A1)AND(B=0)v THEN X:=X/A;THEN X:=X/A;v IF(A=2)OR (X1)IF(A=2)OR (X1)v THEN X:=X+1 THEN X:=X+1vEND;END;本讲稿第二十页,
18、共七十六页满足语句覆盖的情况:满足语句覆盖的情况:执行路径:执行路径:aceace用例格式:用例格式:输入输入(A,B,X)(A,B,X),输出,输出(A,B,X)(A,B,X)选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)1 1、语句覆盖、语句覆盖使得程序中每个语句至少都使得程序中每个语句至少都能被执行一次能被执行一次6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十一页,共七十六页覆盖情况:应执行路径覆
19、盖情况:应执行路径ace abdace abd或:或:acd acd abe abe选择用例选择用例(其一):其一):(2,0,4),(2,0,3)ace(2,0,4),(2,0,3)ace (1,1,1),(1,1,1)abd (1,1,1),(1,1,1)abd(2,1,1),(2,1,2)abe(2,1,1),(2,1,2)abe (3,0,3),(3,1,1)acd (3,0,3),(3,1,1)acd2 2、判定覆盖、判定覆盖使得程序中每个判定至少使得程序中每个判定至少为为TRUE TRUE 或或FALSEFALSE各一次。各一次。6.2 软件测试的方法软件测试的方法A1A1ANDA
20、NDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十二页,共七十六页3 3、条件覆盖、条件覆盖使得判定中的每个条件获得各种使得判定中的每个条件获得各种可能的结果。可能的结果。应满足以下覆盖情况:应满足以下覆盖情况:判定一判定一:A1,A1,B=0,B0:A1,A1,B=0,B0判定二判定二:A=2,A2,X1,X1:A=2,A2,X1,X1选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(1,1,1),(1,1,1)(1,1,1),(1,1,1)注意注意:(1,
21、0,3),(1,0,4)(1,0,3),(1,0,4)(2,1,1),(2,1,2)(2,1,1),(2,1,2)满足条件覆盖,但不满足判断覆盖满足条件覆盖,但不满足判断覆盖6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十三页,共七十六页v4 4、判定、判定/条件覆盖条件覆盖v同时满足判断覆盖和条件覆盖同时满足判断覆盖和条件覆盖应满足以下覆盖情况:应满足以下覆盖情况:条件条件:A1,A1,B=0,B0:A1,A1,B=0,B0 A=2,A
22、2,X1,X1 A=2,A2,X1,X1 应执行路径应执行路径ace abdace abd或:或:acd acd abe abe选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(ace)ace)(1,1,1),(1,1,1)(abd)(1,1,1),(1,1,1)(abd)6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十四页,共七十六页5、条件组合覆盖使得每个判定中条件的各种可能组合都至少出现一次。编译系统
23、下的执行情况:编译系统下的执行情况:部分路径未被执行。部分路径未被执行。满足以下覆盖情况:满足以下覆盖情况:A1,B=0 A1,B0 A1,B=0 A1,B0 A1,B=0 A1,B0 A1,B=0 A1,B0 A=2,X1 A=2,X1 A=2,X1 A=2,X1 A2,X1 A2,X1 A2,X1 A2,X1选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(2,1,1),(2,1,2)(2,1,1),(2,1,2)(1,0,3),(1,0,4)(1,0,3),(1,0,4)(1,1,1),(1,1,1)(1,1,1),(1,1,1)A1X=X/AA=2X=X
24、+1a ab bcd de eB=0X1YNYNYNYN6.2 软件测试的方法软件测试的方法本讲稿第二十五页,共七十六页6、路径覆盖被测程序的每条可能执行到的路径都至少经过一次。选择用例:选择用例:(2,0,4),(2,0,3)a(2,0,4),(2,0,3)a、c c、e e(2,1,1),(2,1,2)a(2,1,1),(2,1,2)a、b b、e e(3,0,3),(3,0,1)a(3,0,3),(3,0,1)a、c c、d d(1,1,1),(1,1,1)a(1,1,1),(1,1,1)a、b b、d d6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=
25、X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十六页,共七十六页6.2 软件测试的方法软件测试的方法v二、黑盒法二、黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。等等价价分分类类法法边边值值分分析析法法错错误误推推测测法法因因果果图图法法本讲稿第二十七页,共七十六页v1 1、等价分类法、等价分类法v基基本本思思想想:根根据据程程序序的的I/OI/O特特性性,将将程程序序的的定定义义域域划划分分为为有有限限个个等等价价区区段段 “等等价价类类”,从从等等价价类类中中选选择择出出的的用用例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 软件工程 测试 精选 文档
限制150内