软件测试ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件测试ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 ppt 课件
- 资源描述:
-
1、第10章 软件测试2/13010.1 软件测试基础10.2 白盒测试10.3 黑盒测试10.4 测试策略10.5 面向对象测试10.6 测试完成的标准10.7 调试3/130掌握软件测试的目的、基本原则、测试方法;熟练掌握白盒测试、黑盒测试及测试用例的设计;掌握单元测试、集成测试、确认测试、系统测试等测试策略;4.了解面向对象测试的基本内容;理解测试完成标准 ;掌握调试的概念及调试方法。 4/130白盒测试、黑盒测试及测试用例的设计; 面向对象测试的基本内容。 5学时5/130采用多媒体课件+讲授法+启发式相结合教学软件工程导论(第五版),张海藩,清华大学出版社软件工程 (第二版),齐治昌,高
2、等教育出版社软件测试教程,宫云战,机械工业出版社软件测试技术概论,古乐,清华大学出版社软件性能测试与LoadRunner实战,于涌,人民邮电出版社6/130一、软件测试的目的测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试 根据这个测试目的,应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。7/130 “软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误”。事实上这是不可能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。
3、例:程序P有两个整型输入量 X、Y,输出量为Z,在32位机上运行。所有的测试数据组(Xi,Yi)的数目为:232232= 264,1毫秒执行1次,共需5亿年。PXYZ8/130 “程序测试是证明程序正确地执行了预期的功能”。实际上,一个程序不仅要完成它所需完成的功能,而且不应完成它不该做的事。如不能把边长为0、0、0的三条边判断为等边三角形。9/130Davis提出了一组指导软件测试的基本原则:1.所有的测试都应可追溯到客户需求2.应在测试工作开始前的较长时间就进行测试计划3. Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码4.测试应从“小规模”开始,逐步转向“大规模”5
4、.穷举测试是不可能的6.为达到最有效的测试,应由独立的第三方来承担测试10/130其他的测试原则:1.在设计测试用例时,应包括合理的输入条件和不合理的输入条件2.严格执行测试计划,排除测试的随意性3.应当对每一个测试结果做全面检查4.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便5.检查程序是否做了应做的事仅是成功的一半,另一半是检查程序是否做了不该做的事6.在规划测试时不要设想程序中不会查出错误11/130软件测试方法1.静态分析方法 指以人工的、非形式化的方法对程序进行分析和测试。 主要形式:审查、评审和走查。静态分析动态测试12/130评审(Review) 评审是由若
5、干开发人员、项目经理、测试人员、用户或领域专家等组成一个会审小组,通过阅读、讨论和争议,对工作制品进行静态分析的过程。 类型:需求评审、设计评审和代码评审。 评审过程 小组负责人先把需求规格说明、设计说明或程序代码及有关要求、规范等分发给小组成员,作评审依据; 在充分阅读有关材料后召开评审会议,主要开发人员进行讲解,其他成员提出问题并展开讨论,审查是否存在错误; 评审小组形成产品评审的书面报告。13/130走查(Walkthrough) 走查是由设计人员或编程人员组成一个走查小组,通过阅读一段文档或代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。 类型:设计走查、代码走查。
6、走查过程 与评审过程类似,即先把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会; 与评审的区别:评审通常是简单地读程序或对照错误检查表进行检查;走查则是按照所提交的测试用例,人工模仿计算机运行一遍,并记录跟踪情况。14/130 无论Y 为何值,都不能够调用子程序。READYY0NX:=YX1) and (B=0) then X:=X/A ; if (A=2) or (X1) then X:=X+1 end; 该子程序接受A、B、X的值,并将计算结果x的值返回给调用程序。 与该子程序对应的流程图如下:23/130入口s(A1) and (B=0)a(A=2) or (x 1)c返回e
7、bx = x / Aftdx = x + 1ft24/130 语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次。 欲使每个语句都执行一次,只需执行路径L1(sabcde)即可。测试用例如下:测试数据预期结果x=4,A=2,B=0 x=3seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)25/130 判定覆盖(也称分支覆盖)是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次(即判定的每个分支至少经过一次) 判定覆盖将每个判定的所有可能结果都至少执行一次,所以,程序中的所
8、有语句也必定都至少执行一次。因此,满足判定覆盖标准的测试用例也一定满足语句覆盖标准。26/130 欲使每个分支都执行一次,只需执行路径L3(sacde)和L4(sabce) 即可。 或者,执行路径L1(sabcde)和L2(sace).seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)测试数据预期结果路径acx=1,A=2,B=1x=2sacdeftx=3,A=3,B=0 x=1sabcetf27/130 条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次。 28/130判定a中各种条件的所有
9、可能结果:A1, A 1 ,B=0, B 0。判定c中各种条件的所有可能结果:A=2, A 2 ,x1, x 1 。seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)测试数据预期结果路径覆盖的条件x=1,A=2,B=0 x=1.5sabcdeA1, B=0, A=2, x=1x=2,A=1,B=1x=3sacde, ,29/130 条件覆盖通常比判定覆盖强,但有时虽然每个条件的所有可能结果都出现过,但判定表达式的某些可能结果并未出现。上面的二个测试用例满足了条件覆盖标准,但判定c为“假”的结果并未出现。30/130 判定/条件覆盖是指选择足够的测试用例,使
10、得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次,并且,每个判定中的每个条件的所有可能结果都至少出现一次。 显然,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、语句覆盖标准。31/130seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)测试数据预期结果路径ac覆盖的条件x=4,A=2,B=0 x=3sabcdettA1,B=0, A=2,x=4x=1,A=1,B=1x=1saceff, ,x 32/130 条件组合覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中条件结果的所有可能组合都至少出现一次
11、 显然,满足条件组合覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、判定/条件覆盖、语句覆盖标准。33/130判定a中条件结果的所有可能组合:A1,B=0 ; A1,B 0;A 1,B=0 ; A 1,B 0 判定c中条件结果的所有可能组合: A=2, x1; A=2,x 1 ; A 2 ,x1; A 2 ,x 1seacbdtffta: (y1) and (z=0) c: (y=2) or (x1)34/130测试数据测试数据预期预期结果结果路径路径ac覆盖的条件覆盖的条件x=4,A=2,B=0 x=3sabcdettA1,B=0 A=2,x=4x=1,A=2,B=1x=2sacdeftA1
12、,B 0A=2,x 1x=2,A=1,B=0 x=3sacdeftA1,B=0 A2,x1x=1,A=1,B=1x=1saceffA1,B0A 2,x1seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)35/130 条件组合覆盖是上述五种覆盖标准中最强的一种,然而,条件组合覆盖仍不能保证程序中所有可能的路径都被覆盖。本例中,满足条件组合覆盖标准的测试用例就没有经过sabce路径。36/130 路径覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行到的路径都至少经过一次(如果程序中包含环路,则要求每条环路至少经过一次)。 37/130
13、本例中所有可能执行的路径有:L1 ( sabcde , a为“t”且c为“t”)L2 ( sace , a为“f”且c为“f”)L3 ( sacde , a为“f”且c为“t”)L4 ( sabce , a为“t”且c为“f”)seacbdtffta: (A1) and (B=0) c: (A=2) or (x1)测试数据测试数据预期结果预期结果路径路径acx=4,A=2,B=0 x=3sabcdettx=3,A=3,B=0 x=1sabcetfx=2,A=1,B=0 x=3sacdeftx=1,A=1,B=1x=1saceff38/130 路径覆盖实际上考虑了程序中各种判定结果的所有可能组合
14、,但它未必能覆盖判定中条件结果的各种可能情况。因此,它是一种比较强的覆盖标准,但不能替代条件覆盖和条件组合覆盖标准。39/130在实际问题中,一个不太复杂的程序,特别是包含循环的程序,其路径数可能非常大。因此测试常常难以做到覆盖程序中的所有路径,为此,希望把测试的程序路径数压缩到一定的范围内。基本路径测试是Tom McCabe提出的一种白盒测试技术,这种方法首先根据程序或设计图画出控制流图,并计算其区域数,然后确定一组独立的程序执行路径(称为基本路径),最后为每一条基本路径设计一个测试用例。40/130流图由结点和边组成,分别用圆和箭头表示。设计图中一个连续的处理框(对应于程序中的顺序语句)序
15、列和一个判定框(对应于程序中的条件控制语句)映射成流图中的一个结点,设计图中的箭头(对应于程序中的控制转向)映射成流图中的一条边。对于设计图中多个箭头的交汇点可以映射成流图中的一个结点(空结点)。41/130上述映射的前提是设计图的判定中不包含复合条件。如果设计图的判定中包含了复合条件,那么必须先将其转换成等价的简单条件设计图。123456c)对应的流图a)含复合条件的设计图a b or c dx = 1x = 2tfy = 0b)只含简单条件的设计图ttffx = 1x = 1a b c d x = 2123456y = 042/130把流图中由结点和边组成的闭合部分称为一个区域(regio
16、n),在计算区域数时,图的外部部分也作为一个区域。例如,右图所示的流图的区域数为3。独立路径是指程序中至少引进一个新的处理语句序列或一个新条件的任一路径,在流图中,独立路径至少包含一条在定义该路径之前未曾用到过的边。在基本路径测试时,独立路径的数目就是流图的区域数。 12345643/130 例如,对一个PDL程序进行基本路径测试,该程序的功能是:最多输入N个值(以-999为输入结束标志),计算位于给定范围内的那些值(称为有效输入值)的平均值,以及输入值的个数和有效值的个数。44/130value i minimumvalue i = maximumtotal.valid加1sum = sum
17、 + value i value i -999total.input ntotal.valid 0average = -999i加1total.valid加1赋初值average = sum / total.valid10111213987123456tffttttfff45/130其区域数为6,选取独立路径如下:路径1:1-2-10-11-13路径2:1-2-10-12-13路径3:1-2-3-10-11-13路径4:1-2-3-4-5-8-9-2-10-12-13路径5:1-2-3-4-5-6-8-9-2-10-12-13路径6:1-2-3-4-5-6-7-8-9-2-10-11-13为每
18、一条独立路径设计测试用例。假设:n=5;minimum=0;maximum=100。46/130路径1: 1-2-10-11-13测试数据:value = 90,-999,0,0,0预期结果:Average=90,total.input=1,total.valid=1路径2: 1-2-10-12-13测试数据:value = -999 ,0,0,0,0预期结果:Average=-999,total.input=0,total.valid=0路径3: 1-2-3-10-11-13测试数据:value = -1,90,70,-1,80预期结果:Average=80,total.input=5,to
19、tal.valid=347/130路径4: 1-2-3-4-5-8-9-2-10-12-13测试数据:value= -1,-2,-3,-4,-999预期结果:Average=-999,total.input=4,total.valid=0路径5: 1-2-3-4-5-6-8-9-2-10-12-13测试数据:value = 120,110,101,-999,0预期结果:Average=-999,total.input=3,total.valid=0路径6: 1-2-3-4-5-6-7-8-9-2-10-11-13测试数据:value = 95,90,70,65,-999预期结果:Average
20、=80,total.input=4,total.valid=448/130 值得注意的是,某些独立路径(如例中的路径1和路径3)不能以独立的方式进行测试,此时,这些路径必须在其他的独立路径测试中被覆盖。49/130循环分为4种不同类型:简单循环、嵌套循环、串接循环和非结构循环。 (1) 简单循环 按照下列规则设计测试用例: 零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环: 检查多次循环 最大次数循环 比最大次数多一次的循环 比最大次数少一次的循环50/13051/130按照下列规则设计测试用例: 先测试最内层循环:所有外层的循环变量置为最小值,最内层按简
21、单循环测试; 由里向外,测试上一层循环:测试时此层以外的所有外层循环的循环变量取最小值,此层以内的所有嵌套内层循环的循环变量取“典型”值,该层按简单循环测试;重复上一条规则,直到所有各层循环测试完毕;对全部各层循环同时取最小循环次数,或者同时取最大循环次数(2) 嵌套循环52/130(3) 串接循环 如果串接的各个循环互相独立,则可以分别用简单循环的方法进行测试;但如果第一个循环的循环变量与第二个循环控制相关,则两个循环不独立,此时,把第一个循环看作外循环,第二个循环看作内循环,然后用测试嵌套循环的办法来处理。(4) 非结构循环 这类循环应先将其结构化,然后再测试。53/130黑盒测试是依据软
22、件的需求规约,而不考虑程序的内部结构与特性,检查程序的功能是否符合需求规约的要求。主要的黑盒测试方法有:等价类划分等价类划分边界值分析边界值分析比较测试比较测试错误猜测错误猜测因果图因果图54/130等价类划分方法将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例。等价类是指输入域的某个子集,该子集中的等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这的,测试等价类的某个代表值就等价于对这一类其他值的测试。一类其他值的测试。等价类划分方法把输入数据分为有
23、效输入数等价类划分方法把输入数据分为有效输入数据和无效输入数据据和无效输入数据55/130确定等价类 根据软件的规格说明,对每一个输入条件(通常是规格说明中的一句话或一个短语)确定若干个有效等价类和若干个无效等价类。 可使用如下表格输入条件有效等价类 无效等价类56/130 确定等价类的规则: (1) 如果输入条件规定了取值范围,则可以确定一个有效等价类(输入值在此范围内)和两个无效等价类(输入值小于最小值及大于最大值) 例如,规定输入的考试成绩在0.100之间,则有效等价类是“0 成绩 100”,无效等价类是“成绩 0”和“成绩 100”。57/130 (2)如果输入条件规定了值的个数,则可
24、以确定一个有效等价类(输入值的个数等于规定的个数)和两个无效等价类(输入值的个数小于规定的个数和大于规定的个数) 例如,规定输入构成三角形的3条边,则有效等价类是“输入边数 = 3”,无效等价类是“输入边数 3”和“输入边数 3”。58/130 (3) 如果输入条件规定了输入值的集合(即离散值),而且程序对不同的输入值做不同的处理,那么每个允许的值都确定为一个有效等价类,另外还有一个无效等价类(任意一个不允许的值)。 例如,规定输入的考试成绩为优、良、中、及格、不及格,则可确定5个有效等价类和一个无效等价类。59/130 (4) 如果输入条件规定了输入值必须遵循的规则,那么可确定一个有效等价类
25、(符合此规则)和若干个无效等价类(从各个不同的角度违反此规则)。 例如,在Pascal语言中对变量标识符规定为“以字母开头的串”。那么有效等价类是“以字母开头的串”,而无效等价类有“以数字开头的串”、“以标点符号开头的串”等。60/130 (5) 如果输入条件规定输入数据是整型,那么可以确定三个有效等价类(正整数、零、负整数)和一个无效等价类(非整数)。 (6) 如果输入条件规定处理的对象是表格,那么可以确定一个有效等价类(表有一项或多项)和一个无效等价类(空表)。 以上只是列举了一些规则,实际情况往往是千变万化的,在遇到具体问题时,可参照上述规则的思想来划分等价类。61/130设计测试用例
展开阅读全文