(精品)Chapter13软件测试技术.ppt
《(精品)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基本路径示例二基本路径示例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 Chapter13 软件 测试 技术
限制150内