(精品)Chapter13软件测试技术.ppt

上传人:s****8 文档编号:67587151 上传时间:2022-12-25 格式:PPT 页数:115 大小:517KB
返回 下载 相关 举报
(精品)Chapter13软件测试技术.ppt_第1页
第1页 / 共115页
(精品)Chapter13软件测试技术.ppt_第2页
第2页 / 共115页
点击查看更多>>
资源描述

《(精品)Chapter13软件测试技术.ppt》由会员分享,可在线阅读,更多相关《(精品)Chapter13软件测试技术.ppt(115页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1Chapter 13软件测试技术软件测试技术Software Testing Techniques213.1 Software TestingTesting is the process of exercising aTesting is the process of exercising aprogram with the specific intent of findingprogram with the specific intent of findingerrors prior to delivery to the end user.errors prior to delivery

2、to the end user.3TestabilityOperabilityOperabilityit operates cleanlyit operates cleanlyObservabilityObservabilitythe results of each test case are the results of each test case are readily observedreadily observedControlabilityControlabilitythe degree to which testing can be the degree to which tes

3、ting can be automated and optimizedautomated and optimizedDecomposabilityDecomposabilitytesting can be targetedtesting can be targetedSimplicitySimplicityreduce complex architecture and logic reduce complex architecture and logic to simplify teststo simplify testsStabilityStabilityfew changes are re

4、quested during testingfew changes are requested during testingUnderstandabilityUnderstandabilityof the designof the design4What Testing Showserrorserrorsrequirements conformancerequirements conformanceperformanceperformancean indicationan indicationof qualityof quality5Who Tests the Software?develop

5、erdeveloperindependent testerindependent testerUnderstands the system Understands the system but,will test gentlybut,will test gentlyand,is driven by deliveryand,is driven by deliveryMust learn about the system,Must learn about the system,but,will attempt to break itbut,will attempt to break itand,i

6、s driven by qualityand,is driven by quality6Exhaustive Testingloop 20 Xloop 20 XThere are 10 possible paths!If we execute oneThere are 10 possible paths!If we execute onetest per millisecond,it would take 3,170 years totest per millisecond,it would take 3,170 years totest this program!test this prog

7、ram!14147Selective Testingloop 20 Xloop 1 AND B=0)THEN X=X/A;IF(A=2 OR X1)THEN X=X+1;END;17L1(ace)L2(abd)L3(abe)L4(acd)181.语句覆盖语句覆盖就是设计若干个测试用例,语句覆盖就是设计若干个测试用例,运行被测程序,使得运行被测程序,使得每一可执行语句每一可执行语句至少执行一次至少执行一次。在图例中,正好所有的可执行语句在图例中,正好所有的可执行语句都在路径都在路径L1上,所以选择路径上,所以选择路径 L1设设计测试用例,就可以覆盖所有的可执计测试用例,就可以覆盖所有的可执行语句

8、。行语句。19测试用例的设计格式如下测试用例的设计格式如下【输入的【输入的(A,B,X),输出的输出的(A,B,X)】为图例设计满足为图例设计满足语句覆盖语句覆盖的测试用例的测试用例:【(2,0,4),(2,0,3)】或【(3,0,9),(3,0,4)】覆盖覆盖 a-c-e【L1】20?如果把 AND 误写成 OR,这组测试用例有效否?212.判定覆盖判定覆盖就是设计若干个测试用例,运行被判定覆盖就是设计若干个测试用例,运行被测程序,测程序,不仅每条语句至少执行一次,不仅每条语句至少执行一次,而且而且程序中每个判断的取真分支和取假分支至少程序中每个判断的取真分支和取假分支至少经历一次经历一次。

9、判定覆盖又称为判定覆盖又称为分支覆盖分支覆盖。对于图例,如果选择对于图例,如果选择路径路径L1和和L2,就可得满就可得满足要求的测试用例足要求的测试用例:【(2,0,4)(2,0,4),(2,0,3)(2,0,3)】覆盖覆盖覆盖覆盖 a-c-ea-c-e【L1L1】【(1,1,1)(1,1,1),(1,1,1)(1,1,1)】覆盖覆盖覆盖覆盖 a-b-da-b-d【L2L2】22如果选择如果选择路径路径L3和和L4,还可得另一组可用的还可得另一组可用的测试用例测试用例:【(2,1,1),(2,1,2)】覆盖覆盖 a-b-e【L3】【(3,0,3),(3,1,1)】覆盖覆盖 a-c-d【L4】2

10、33.条件覆盖条件覆盖就是设计若干个测试用例,运行被条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中测程序,使得程序中不仅每条语句至少执行不仅每条语句至少执行一次,一次,而且而且每个判断的每个条件的可能取值每个判断的每个条件的可能取值至少执行一次至少执行一次。在图例中,可事先对所有条件的取值加以标在图例中,可事先对所有条件的取值加以标记。例如,记。例如,24对于第一个判断对于第一个判断(A1 AND AND B0):条件条件条件条件 A A1 1 取真为取真为取真为取真为 ,取假为,取假为,取假为,取假为条件条件条件条件 B B0 0 取真为取真为取真为取真为 ,取假为,取假为,取假为

11、,取假为对于第二个判断对于第二个判断(A2 OR OR X1):条件条件A2 取真为取真为 ,取假为,取假为条件条件X1 取真为取真为 ,取假为,取假为25 测测测测 试试试试 用用用用 例例例例 覆盖分支覆盖分支覆盖分支覆盖分支 条件取值条件取值条件取值条件取值【(2,0,4)(2,0,4),(2,0,3)(2,0,3)】L1(a-c-e)L1(a-c-e)【(1,0,1)(1,0,1),(1,0,1)(1,0,1)】L2(a-b-d)L2(a-b-d)【(2,1,1)(2,1,1),(2,1,2)(2,1,2)】L3(a-b-e)L3(a-b-e)或或【(1,0,3)(1,0,3),(1,

12、0,4)(1,0,4)】L3(a-b-e)L3(a-b-e)【(2,1,1)(2,1,1),(2,1,2)(2,1,2)】L3(a-b-e)L3(a-b-e)满足条件覆盖是否一定满足判定覆盖?第二组满足条件覆盖但不满足判定覆盖264.判定/条件覆盖既满足判定覆盖又满足条件覆盖。即设计足既满足判定覆盖又满足条件覆盖。即设计足够的测试用例,使得够的测试用例,使得判断中每个条件的所有判断中每个条件的所有可能取值至少执行一次可能取值至少执行一次,同时,同时每个判断的所每个判断的所有可能判定结果至少执行一次有可能判定结果至少执行一次。例如,例如,27 测测 试试 用用 例例 覆盖分支覆盖分支 条件取值条

13、件取值【(2,0,4),(2,0,3)】L1(a-c-e)【(1,1,1),(1,1,1)】L2(a-b-d)并不一定比条件覆盖或判定覆盖更强。原因?28为避免条件之间的相互掩盖,可以分解为基本为避免条件之间的相互掩盖,可以分解为基本为避免条件之间的相互掩盖,可以分解为基本为避免条件之间的相互掩盖,可以分解为基本的判定,例如,的判定,例如,的判定,例如,的判定,例如,ANDOR295.条件组合覆盖条件组合覆盖就是设计足够的测试用例,运条件组合覆盖就是设计足够的测试用例,运行被测程序,使得行被测程序,使得每个判断的所有可能的条每个判断的所有可能的条件取值组合至少执行一次件取值组合至少执行一次。记

14、记 A1,B0 作作 A1,B0 作作 A 1,B0 作作 A 1,B0 作作30 A2,X1 作作 A2,X 1 作作 A2,X1 作作 A2,X 1 作作 测测测测 试试试试 用用用用 例例例例 覆盖条件覆盖条件覆盖条件覆盖条件覆盖组合覆盖组合覆盖组合覆盖组合【(2,0,4),(2,0,3)(2,0,4),(2,0,3)】(L1)L1),【(2,1,1),(2,1,2)(2,1,1),(2,1,2)】(L3)(L3),【(1,0,3),(1,0,4)(1,0,3),(1,0,4)】(L3)(L3),【(1,1,1),(1,1,1)(1,1,1),(1,1,1)】(L2)(L2),316.路

15、径覆盖路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,覆盖程序中所覆盖程序中所覆盖程序中所覆盖程序中所有可能的路径有可能的路径有可能的路径有可能的路径,即每条可能路径都至少执行一次。,即每条可能路径都至少执行一次。,即每条可能路径都至少执行一次。,即每条可能路径都至少执行一次。测测测测 试试试试 用用用用 例例例例 通过路径通过路径通过路径通过路径 覆盖条件覆盖条件覆盖条件覆盖条件【(2,0,4),(2,0,3)(2,0,4),(2,0,3)】a-c-e(a-c-e(L1L1)【(1,1,1),(1,1,1)(1,

16、1,1),(1,1,1)】a-b-d(a-b-d(L2L2)【(1,1,2),(1,1,3)(1,1,2),(1,1,3)】a-b-e(a-b-e(L3L3)【(3,0,3),(3,0,1)(3,0,3),(3,0,1)】a-c-d(a-c-d(L4L4)3213.4 Basis Path TestingFirst,we compute the cyclomatic complexity:number of simple decisions+1 ornumber of enclosed areas+1In this case,V(G)=433Cyclomatic ComplexityA num

17、ber of industry studies have indicated A number of industry studies have indicated that the higher V(G),the higher the probability that the higher V(G),the higher the probability or errors.or errors.V(G)V(G)modulesmodulesmodules in this range are modules in this range are more error pronemore error

18、prone34Basis Path TestingNext,we derive the Next,we derive the independent paths:independent paths:Since V(G)=4,Since V(G)=4,there are four pathsthere are four pathsPath 1:1,2,3,6,7,8Path 1:1,2,3,6,7,8Path 2:1,2,3,5,7,8Path 2:1,2,3,5,7,8Path 3:1,2,4,7,8Path 3:1,2,4,7,8Path 4:1,2,4,7,2,4,.7,8Path 4:1

19、,2,4,7,2,4,.7,8Finally,we derive testFinally,we derive testcases to exercise these cases to exercise these paths.paths.1 12 23 34 45 56 67 78 835Basis Path Testing Notesyou dont need a flow chart,you dont need a flow chart,but the picture will help when but the picture will help when you trace progr

20、am pathsyou trace program pathscount each simple logical test,count each simple logical test,compound tests count as 2 or compound tests count as 2 or moremorebasis path testing should be basis path testing should be applied to critical modulesapplied to critical modules36基本路径测试方法把覆盖的路径数压缩到基本路径测试方法把

21、覆盖的路径数压缩到一定限度内,一定限度内,程序中的循环体最多只执行程序中的循环体最多只执行一次一次。它是在程序控制流图的基础上,分析控制它是在程序控制流图的基础上,分析控制构造的环路复杂性,构造的环路复杂性,导出基本可执行路径导出基本可执行路径集合集合,设计测试用例的方法。设计出的测,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。执行语句至少要执行一次。371.1.程序图程序图程序图程序图(程序的控制流图程序的控制流图程序的控制流图程序的控制流图)符号符号为控制流图的一个结点,表示一个或为控制流图的一个结点,表示一

22、个或多个无分支的多个无分支的PDL语句或源程序语句。箭头语句或源程序语句。箭头为边,表示控制流的方向。为边,表示控制流的方向。38在选择或多分支结构中,分支的汇聚处应在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。计数时,图形外的区域也应记为一个区域。如果判断中的条件表达式是由一个或多个如果判断中的条件表达式是由一个或多个逻辑运算符逻辑运算符 (OR,AND,NAND,NOR)连连接的复合条件表达式,则需要改为一系列接的复合条件表达式,则需要改为一系列只有单个条件的

23、嵌套的判断。3940412.2.程序的基本路径集程序的基本路径集程序的环路复杂性给出了程序的环路复杂性给出了程序基本路径集程序基本路径集中的独立路径条数中的独立路径条数,这是确保程序中每个,这是确保程序中每个可执行语句至少执行一次所必需的测试用可执行语句至少执行一次所必需的测试用例数目的上界。例数目的上界。从控制流图来看,一条从控制流图来看,一条独立路径独立路径是至少包是至少包含有一条在其它独立路径中从未有过的边含有一条在其它独立路径中从未有过的边的路径。的路径。42基本路径示例一基本路径示例一234576891计算它的环形复杂度V(G)=判定数+1 =3+1=4求它的一组独立路径L1:1-9

24、L2:1-2-7-8-1-9L3:1-2-3-4-6-8-1-9L4:1-2-3-5-6-8-1-9433.3.导出测试用例导出测试用例导出测试用例,导出测试用例,确保基本路径集中的确保基本路径集中的每一条路径的执行每一条路径的执行。根据判断结点给出的条件,选择适当根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试的数据以保证某一条路径可以被测试到到 用逻辑覆盖方法用逻辑覆盖方法。44每个每个测试用例执行之后测试用例执行之后,与预期结果进与预期结果进行比较行比较。如果所有测试用例都执行完毕,。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至则可以确信程序中所有的可执

25、行语句至少被执行了一次。少被执行了一次。必须注意,一些独立的路径必须注意,一些独立的路径(如例中的如例中的路径路径1),往往不是完全孤立的,有时它往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试这些路径的测试可以是另一条路径测试的一部分。的一部分。45基本路径测试的步骤基本路径测试的步骤1.1.源程序,程序流程图等源程序,程序流程图等程序图程序图2.2.计算环域复杂度计算环域复杂度N N3.3.确定确定N N个独立路径个独立路径,即基本路径集即基本路径集4.4.设计测试数据设计测试数据46基本路径示例二基本路径示例

26、二PROCEDURE Average;/*计算100个以内的有效数(规定值域之内)的平均值;有效数的总和;有效数的个数。*/INTERFACE RETURNS average,total.input,total.valid;INTERFACE ACCEPTS value,minimum,maximum;TYPE value1,100 IS SCALAR ARRAY;TYPE average,total.input,total.valid,value,minimum,maximum IS SCALAR ARRAY;TYPE i IS INTEGER;471:1:i i=1;=1;total.in

27、put=total.valid=0;sum=0;total.input=total.valid=0;sum=0;2,3:2,3:DO WHILE DO WHILE valuevalue i i -999 AND -999 AND total.input100total.input=minimum minimum AND AND valuevalue i i=0total.valid 011:11:THEN THEN average=sum/average=sum/total.valid;total.valid;12:12:ELSE ELSE average=average=-999-99913

28、:13:ENDIFENDIF END END averageaverage48第一步:根据过程设计结果画出相应的程序图第一步:根据过程设计结果画出相应的程序图第一步:根据过程设计结果画出相应的程序图第一步:根据过程设计结果画出相应的程序图第二步:计算它的环形复杂度V(G)=判定数+1=5+1=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-路径5:1-2-3-4-5-6-8-9-2-路径6:1-2-3-4-5-6-7-8-9-2-27891101211133456第三步:求独立路径集合49第四步:设计

29、覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例路径1的测试用例(1-2-10-11-13):valuek=有效输入值,其中kivaluei=-999,其中2=i=100预期结果:基于k的正确平均值和总数27891101211133456讨论:路径1无法独立测试,必须作为路径4,5和6的一部分来测试?50第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例路径2的测试用例(1-2-10-12-13):va

30、luei=-999预期结果:average=-9992789110121113345651第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例路径3(1-2-3-10-11-13)测试用例:试图处理101个或更多的数前100个数值为有效输入值预期结果:前100个数值的平均值,总数为10027891101211133456讨论:路径3无法独立测试,必须作为路径4,5和6的一部分来测试?52第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试

31、用例第四步:设计覆盖各个独立路径的测试用例路径4(1-2-3-4-5-8-9-2-)的测试用例:valuei=有效输入值,其中i 100valuekminimum,其中k i预期结果:基于k的正确平均值和总数2789110121113345653第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例路径5(1-2-3-4-5-6-8-9-2-)的测试用例:valuei=有效输入值,其中i maximum,其中k i预期结果:基于k的正确平均值和总数2789110121113345654第四步:设计

32、覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例第四步:设计覆盖各个独立路径的测试用例路径6(1-2-3-4-5-6-7-8-9-2-)的测试用例:valuei=有效输入值,其中i 100预期结果:正确平均值和总数278911012111334565513.5 控制结构测试控制结构测试基本路径测试基本路径测试条件测试条件测试数据流测试数据流测试循环测试循环测试56条件测试路径选择条件测试路径选择当程序中判定多于一个时,形成的分支结构当程序中判定多于一个时,形成的分支结构可以分为两类:可以分为两类:嵌套型分支结构嵌套型分支结构和和连锁型分连锁

33、型分支结构支结构。对于对于嵌套型分支结构嵌套型分支结构,若有,若有n个判定语句,个判定语句,需要需要n+1个测试用例;个测试用例;对于对于连锁型分支结构连锁型分支结构,若有若有n个判定语句,个判定语句,需要有需要有2n个测试用例,覆盖它的个测试用例,覆盖它的2n条路径。条路径。当当n较大时将无法测试。较大时将无法测试。5758条件测试注意的问题条件测试注意的问题布尔算符错布尔算符错布尔变量错布尔变量错布尔括号错布尔括号错关系算符错关系算符错算术表达式错算术表达式错59循环测试路径选择循环测试路径选择循环分为循环分为4 4种不同类型:种不同类型:简单循环简单循环、连锁循连锁循环环、嵌套循环嵌套循

34、环和和非结构循环非结构循环。(1)简单循环简单循环 零次循环:从循环入口到出口零次循环:从循环入口到出口 一次循环:检查循环初始值一次循环:检查循环初始值 二次循环:检查多次循环二次循环:检查多次循环 m次循环:次循环:检查检查m多次循环多次循环 最大次数循环、比最大次数多一次、最大次数循环、比最大次数多一次、少一次的循环。少一次的循环。6061对最内层循环做简单循环的全部测试。所有其它层的对最内层循环做简单循环的全部测试。所有其它层的对最内层循环做简单循环的全部测试。所有其它层的对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;循环变量置为最小值;循环变量置为最小值;循环变量

35、置为最小值;逐步外推,对其外面一层循环进行测试。测试时保持逐步外推,对其外面一层循环进行测试。测试时保持逐步外推,对其外面一层循环进行测试。测试时保持逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内所有外层循环的循环变量取最小值,所有其它嵌套内所有外层循环的循环变量取最小值,所有其它嵌套内所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取层循环的循环变量取层循环的循环变量取层循环的循环变量取“典型典型典型典型”值。值。值。值。反复进行,直到所有层循环测试完毕。反复进行,直到所有层循环测试完毕。反复进行,直到所有层循环测试完毕。反复进行,

36、直到所有层循环测试完毕。对全部各层循环同时取最小循环次数,或者同时取最对全部各层循环同时取最小循环次数,或者同时取最对全部各层循环同时取最小循环次数,或者同时取最对全部各层循环同时取最小循环次数,或者同时取最大循环次数。大循环次数。大循环次数。大循环次数。可能的测试随嵌套层数的增加按照几何级数增长可能的测试随嵌套层数的增加按照几何级数增长可能的测试随嵌套层数的增加按照几何级数增长可能的测试随嵌套层数的增加按照几何级数增长(2)嵌套循环嵌套循环62(3)连锁循环如果各个循环如果各个循环互相独立互相独立,则可以用与简,则可以用与简单循环相同的方法进行测试。但如果几单循环相同的方法进行测试。但如果几

37、个循环不个循环不是互相独立是互相独立的,则需要使用测的,则需要使用测试嵌套循环的办法来处理。试嵌套循环的办法来处理。(4)(4)非结构循环这一类循环应该使用结构化程序设计方这一类循环应该使用结构化程序设计方法重新设计测试用例。法重新设计测试用例。6313.6 黑盒测试黑盒测试 Black-Box Testingrequirementsrequirementseventseventsinputinputoutputoutput64黑盒测试(Black-Box Testing)把测试对象看做一个黑盒子,测试人把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和员完全不考虑程序内部的逻辑

38、结构和内部特性,只依据程序的需求规格说内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的明书,检查程序的功能是否符合它的功能说明。功能说明。又叫做又叫做功能测试功能测试或或数据驱动测试数据驱动测试或或行行为测试为测试。一般用于综合测试、系统测试等。一般用于综合测试、系统测试等。65黑盒测试在程序接口上进行,主要是为黑盒测试在程序接口上进行,主要是为了发现以下错误了发现以下错误:是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受在接口上,输入能否正确地接受?能否输能否输出正确的结果出正确的结果?是否有数据结构错误或外部信息是否有数据结构错误或外部信息

39、(例如数据例如数据文件文件)访问错误访问错误?性能上是否能够满足要求性能上是否能够满足要求?是否有初始化或终止性错误是否有初始化或终止性错误?66用黑盒测试发现程序中的错误,必须用黑盒测试发现程序中的错误,必须在在所有可能的输入条件和输出条件所有可能的输入条件和输出条件中中确定测试数据,来检查程序是否都能确定测试数据,来检查程序是否都能产生正确的输出。产生正确的输出。对于黑盒测试来说,穷举测试是对于黑盒测试来说,穷举测试是不可不可能能的。的。67设计黑盒测试方案所考虑的问题设计黑盒测试方案所考虑的问题怎样测试功能的有效性?怎样测试功能的有效性?哪些类型的输入可以构成好的测试用例?哪些类型的输入

40、可以构成好的测试用例?系统是否对特定的输入值特别敏感?系统是否对特定的输入值特别敏感?怎样划定数据类的边界?怎样划定数据类的边界?系统能够承受什么样的数据率和数据量?系统能够承受什么样的数据率和数据量?数据的特定组合将对系统运行产生什么影响?数据的特定组合将对系统运行产生什么影响?68设计黑盒测试方案所满足的标准设计黑盒测试方案所满足的标准在达到合理测试要求的前提下,使得测试用在达到合理测试要求的前提下,使得测试用例总数尽量的少。例总数尽量的少。所设计的测试用例能够告诉我们,是否存在所设计的测试用例能够告诉我们,是否存在某些类型的错误某些类型的错误,而不是仅仅指出与特定测,而不是仅仅指出与特定

41、测试相关的错误是否存在。试相关的错误是否存在。69黑盒测试用例设计技术黑盒测试用例设计技术1.等价类划分等价类划分Equivalence PartitioningEquivalence Partitioning2.边界值分析边界值分析Boundary Value AnalysisBoundary Value Analysis3.错误猜测法错误猜测法Error guessing methodsError guessing methods4.因果图法因果图法Cause effect graphingCause effect graphing70一、等价类划分(Equivalence Partiti

42、oning)Equivalence Partitioning)等价类划分是一种典型的黑盒测试方法,等价类划分是一种典型的黑盒测试方法,使用这一方法时,使用这一方法时,完全不考虑程序的内部完全不考虑程序的内部结构,只依据程序的规格说明来设计测试结构,只依据程序的规格说明来设计测试用例用例。等价类划分方法等价类划分方法把所有可能的输入数据和把所有可能的输入数据和输出数据输出数据,即程序的输入域和输出域,即程序的输入域和输出域划分划分成若干部分成若干部分,然后,然后从每一部分中选取少数从每一部分中选取少数有代表性的数据做为测试用例有代表性的数据做为测试用例。71使用这一方法设计测试用例要经历使用这一

43、方法设计测试用例要经历划分等价划分等价类类(列出等价类表)和(列出等价类表)和选取测试用例选取测试用例两步。两步。划分等价类划分等价类等价类是指某个输入域的子集合。在该子集等价类是指某个输入域的子集合。在该子集合中,合中,各个输入数据对于揭露程序中的错误各个输入数据对于揭露程序中的错误都是等效的都是等效的。测试某等价类的代表值就等价。测试某等价类的代表值就等价于对这一类其它值的测试。于对这一类其它值的测试。72Equivalence Partitioninguseruserqueriesqueriesmousemousepickspicksoutputoutputformatsformatsp

44、romptspromptsFKFKinputinputdatadata73等价类的划分有两种不同的情况:等价类的划分有两种不同的情况:有效等价类有效等价类:是指对于程序的规格:是指对于程序的规格说明来说,是合理的,有意义的输入说明来说,是合理的,有意义的输入数据构成的集合。数据构成的集合。无效等价类无效等价类:是指对于程序的规格:是指对于程序的规格说明来说,是不合理的,无意义的输说明来说,是不合理的,无意义的输入数据构成的集合。入数据构成的集合。在设计测试用例时,要同时考虑有效在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。等价类和无效等价类的设计。74Sample Equivale

45、nce Classesuser supplied commandsuser supplied commandsresponses to system promptsresponses to system promptsfile namesfile namescomputational datacomputational data physical parameters physical parameters bounding valuesbounding values initiation valuesinitiation valuesoutput data formattingoutput

46、data formattingresponses to error messagesresponses to error messagesgraphical data(e.g.,mouse picks)graphical data(e.g.,mouse picks)data outside bounds of the program data outside bounds of the program physically impossible dataphysically impossible dataproper value supplied in wrong placeproper va

47、lue supplied in wrong placeValid dataValid dataInvalid dataInvalid data75划分等价类等价类的原则划分等价类等价类的原则(1)如果输入条件规定了取值范围,如果输入条件规定了取值范围,或值的个数,则可以确立一个有效或值的个数,则可以确立一个有效等价类和两个无效等价类。等价类和两个无效等价类。76例如,在程序的规格说明中,对输入条件有例如,在程序的规格说明中,对输入条件有“项数可以从项数可以从1到到999”的描述,则有的描述,则有效等价类是效等价类是“1项数项数999”两个无效等价类是两个无效等价类是“项数项数1”或或 “项数项

48、数999”。在数轴上表示成在数轴上表示成:77(2 2)如果输入条件规定了输入值的集合,或如果输入条件规定了输入值的集合,或者是规定了者是规定了“必须如何必须如何”的条件,这时可确立的条件,这时可确立一个有效等价类和一个无效等价类。一个有效等价类和一个无效等价类。例如,在例如,在Pascal语言中对变量标识符规定为语言中对变量标识符规定为“以字母打头的以字母打头的串串”。那么所有以字母打。那么所有以字母打头的构成有效等价类,而不在此集合内(不以头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。字母打头)的归于无效等价类。78(3)如果输入条件是一个布尔量,则可以确如果输入条件

49、是一个布尔量,则可以确定一个有效等价类和一个无效等价类。定一个有效等价类和一个无效等价类。(4)如果规定了输入数据的一组值,而且程)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。序要对每个输入值分别进行处理。这时可为这时可为 每一个输入值确立一个有效等价类,此外针每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,对这组值确立一个无效等价类,它是所有不它是所有不允许的输入值的集合。允许的输入值的集合。79例如,在教师上岗方案中规定对教授、副教例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处授、讲师和助教分别计算分数,做相应的处理。因此

50、可以确定理。因此可以确定4个有效等价类为教授、副个有效等价类为教授、副教授、讲师和助教;一个无效等价类,它是教授、讲师和助教;一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。所有不符合以上身分的人员的输入值的集合。80(5)如果规定了输入数据必须遵守的规则,如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。若干个无效等价类(从不同角度违反规则)。例如,例如,Pascal语言规定语言规定“一个语句必须以一个语句必须以分分号号结束结束”。这时,可以确定一个有效等价类。这时,可以确定一个有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com