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