《第九章 路径测试.ppt》由会员分享,可在线阅读,更多相关《第九章 路径测试.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章 路径测试路径测试东北大学软件学院东北大学软件学院程序图程序图东北大学软件学院东北大学软件学院定义定义 给给定定采采用用命命令令式式程程序序设设计计语语言言编编写写的的一一段段程程序序,其其程程序序图图是是一一种种有有向向图图,图图中中的的节节点点表表示示语语句句片片段段,边表示控制流。边表示控制流。(完整语句是完整语句是“默认默认”的语句片段的语句片段)。三三角角形形程程序序的的程程序序图图东北大学软件学院东北大学软件学院4567891011121321141516171819202223DD-路径东北大学软件学院东北大学软件学院结结构构性性测测试试最最著著名名的的形形式式以以叫
2、叫做做决决策策到到决决策策路路径径(DD-DD-路路径径)的结构为基础的结构为基础(MillerMiller,1977)1977)。这这个个名名称称指指语语句句的的一一种种序序列列,按按照照MillerMiller的的话话说说,从从决决策策语语句句的的“出出路路”开开始始,到到下下一一个个决决策策语语句句的的“入入路路”结结束束,在在这这种种序序列列中中没没有有内内部部分分支支,因因此此对对应应的的节节点点像像排排列列起起来来的的一一行行多多米米诺诺骨骨牌牌,当当第第一一张张牌牌推推倒倒后后,序序列列中中的的其其他他牌牌也会倒下。也会倒下。DD-路径与有向图的关系路径与有向图的关系东北大学软件
3、学院东北大学软件学院DD-DD-路路径径可可通通过过有有向向图图中中的的节节点点路路径径定定义义,可可以以叫叫做做路路径径链链,其其中中链链是是一一条条起起始始和和终终止止节节点点不不同同的的路路径径,并并且且每每个个节点都满足内度节点都满足内度=1 1和外度和外度=1 1。初始节点终止节点内部节点DD-路径的定义路径的定义东北大学软件学院东北大学软件学院定义定义 DD-路径是程序图中的一条链,使得:路径是程序图中的一条链,使得:情况情况1:由一个节点组成,内度:由一个节点组成,内度=0。情况情况2:由一个节点组成,外度:由一个节点组成,外度=0。情况情况3:由一个节点组成,内度:由一个节点组
4、成,内度 2或外度或外度2。情况情况4:由一个节点组成,内度:由一个节点组成,内度=1并且外度并且外度=1。情况情况5:长度:长度1的最大链。的最大链。三三角角形形问问题题的的DDDD-路路径径类类型型东北大学软件学院东北大学软件学院程序图节点DD-路径名称定义情况4第一15-8A59B310C411D412E313F314H315I416J317K418L419M320N321G422O323最后2三三角角形形程程序序的的DD-路路径径图图东北大学软件学院东北大学软件学院第一第一ABCDEFGHIJKLMNO最后最后程序的程序的DD-路径图路径图东北大学软件学院东北大学软件学院定义定义 给给
5、定定采采用用命命令令式式语语言言编编写写的的一一段段程程序序,其其DD-DD-路路径径图图是是有有向向图图。其其中中,节节点点表表示示其其程程序序图图的的DD-DD-路路径径,边边表表示示连续连续DD-DD-路径之间的控制流。路径之间的控制流。测试覆盖指标测试覆盖指标东北大学软件学院东北大学软件学院测测试试覆覆盖盖指指标标,是是度度量量一一组组测测试试用用例例覆覆盖盖(或或执执行行)某某个个程程序程度的工具。序程度的工具。指标覆盖描述C0所有语句C1所有DD-路径(判断分支)C1P所有判断的每种分支C2C1覆盖+循环覆盖CdC1覆盖+DD-路径的所有依赖对偶CMCC多条件覆盖Cik包含最多k次
6、循环的所有程序路径(通常k=2)Cstat路径具有“统计重要性”的部分C所有可能的执行路径语句与判断测试语句与判断测试东北大学软件学院东北大学软件学院这这些些覆覆盖盖指指标标要要求求找找出出一一组组测测试试用用例例,使使得得当当执执行行时时,程程序图的所有节点都至少走过一次。序图的所有节点都至少走过一次。DD-DD-路径测试路径测试东北大学软件学院东北大学软件学院如如果果每每条条DD-路路径径都都被被遍遍历历(C1指指标标),则则我我们们知知道道每每个个判判断断分支都被执行,这要求遍历分支都被执行,这要求遍历DD-路径图中的每条边。路径图中的每条边。DD-DD-路径的依赖对偶路径的依赖对偶东北
7、大学软件学院东北大学软件学院C Cd d涉涉及及第第1010章章将将要要讨讨论论的的问问题题,即即数数据据流流测测试试。DD-DD-路路径径对对偶偶之之间间的的最最常常见见的的依依赖赖关关系系是是定定义义/引引用用关关系系,其其中中变变量量在一个在一个DD-DD-路径中定义路径中定义(接受值接受值),在另一个,在另一个DD-DD-路径中引用。路径中引用。多条件覆盖多条件覆盖东北大学软件学院东北大学软件学院不不是是直直接接遍遍历历判判断断是是到到其其真真或或假假分分支支,而而应应该该研研究究可可能能出现分支的不同方式。出现分支的不同方式。这这里里可可以以看看到到一一种种有有意意思思的的折折衷衷:
8、语语句句复复杂杂性性和和路路径径复复杂性。杂性。多多条条件件覆覆盖盖可可保保证证这这种种复复杂杂性性不不会会被被DD-路路径径覆覆盖盖所所掩掩盖。盖。循环覆盖循环覆盖东北大学软件学院东北大学软件学院串联循环是不相交的简单循环序列。串联循环是不相交的简单循环序列。嵌套循环是一个循环包含在另一个循环中的循环。嵌套循环是一个循环包含在另一个循环中的循环。Beizer所所说说的的复复杂杂循循环环,如如果果跳跳转转到到某某个个循循环环内内(或或跳跳转转出出),而而这这个个分分支支位位于于其其他他循循环环的的内内部部,就就是是复复杂杂循循环。环。循环覆盖示意图循环覆盖示意图东北大学软件学院东北大学软件学院
9、第一第一ABCD最后最后第一第一ABCD最后最后第一第一ABCD最后最后测试覆盖分析器测试覆盖分析器东北大学软件学院东北大学软件学院覆盖分析器是一类测试工具,可用于自动化测试支持。覆盖分析器是一类测试工具,可用于自动化测试支持。基路径测试基路径测试东北大学软件学院东北大学软件学院空空间间中中的的一一切切都都可可以以用用基基表表示示,并并且且如如果果一一个个基基元元素素被被删除,则这种覆盖特性也会丢失。删除,则这种覆盖特性也会丢失。对对测测试试的的潜潜在在意意义义是是,如如果果可可以以把把程程序序看看做做是是一一种种向向量量空空间间,则则这这种种空空间间的的基基就就是是要要测测试试的的非非常常有
10、有意意义义的的元元素素集合。集合。如如果果基基没没有有问问题题,则则可可以以希希望望能能够够用用基基表表述述的的一一切切都都是是没有问题的。没有问题的。McCabe的的控制图控制图 东北大学软件学院东北大学软件学院ABDEFCG线性独立路径数是:线性独立路径数是:V(G)=e-n+2p=10-7+2*1=5McCabe的强连接图的强连接图 东北大学软件学院东北大学软件学院线线 性性 独独 立立 环环 路路 的的 数数 量量:V(G)=e-n+p=11-7+1=5ABDEFCG12345678910McCabe的基路径方法的基路径方法 东北大学软件学院东北大学软件学院ABDEFCG1234567
11、8910p1:A,B,C,Gp2:A,B,C,B,C,G p3:A,B,E,F,Gp4:A,D,E,F,Gp5:A,D,F,G 路路径径A、B、C、B、E、F、G是基和是基和p2+p3-p1路路径径A、B、C、B、C、B、C、G是线性合并是线性合并2p2-p1 McCabe的路径的路径/边的关联矩阵边的关联矩阵 东北大学软件学院东北大学软件学院所经过的路径/边12345678910p1:A,B,C,G1001000010p2:A,B,C,B,C,G 1012000010p3:A,B,E,F,G1000100101p4:A,D,E,F,G0100010101p5:A,D,F,G 01000010
12、01Ex1:A,B,C,B,E,F,G1011100101Ex2:A,B,C,B,C,B,C,G 1023000010McCabe的基路径算法的基路径算法东北大学软件学院东北大学软件学院McCabe接接下下来来开开发发了了一一种种算算法法过过程程(叫叫做做基基线线方方法法),用用于于确确定定基基路路径径集集合合。这这种种方方法法首首先先选选择择一一个个基基线线路路径径,应应该该对对应应某某个个“正正常常案案例例”程程序序执执行行。这这种种方方法法有有一一定定的的随随意意性性,McCabe建建议议选选择择都都有有尽尽可可能能多多的的判判断断节节点点的的路路径径。接接下下来来重重新新回回溯溯基基线
13、线路路径径,依依次次“翻翻转转”每每个个判判断断点点,即即当当节点的外度节点的外度2时,必须取不同的边。时,必须取不同的边。McCabe的基路径算法举例的基路径算法举例东北大学软件学院东北大学软件学院1.A、B、C、B、E、F、G的的路路径径为基线为基线 ABDEFCG123456789102.A、D、E、F、G 3.A、D、F、G 4.A、B、E、F、G 5.A、B、C、G 三三角角形形问问题题应应用用McCabe的的基基路路径径方方法法东北大学软件学院东北大学软件学院第一第一ABCDEFGHIJKLMNO最后最后原始p1:A-B-C-E-F-H-J-K-M-N-O-最后不等边三角形在B处翻
14、转p1p2:A-B-D-E-F-H-J-K-M-N-O-最后不可行在F处翻转p1p3:A-B-C-E-F-G-O-最后不可行在H处翻转p1p4:A-B-C-E-F-H-I-N-O-最后等边三角形在J处翻转p1p5:A-B-C-E-F-H-J-L-M-N-O-最后等腰三角形三角形问题应用三角形问题应用McCabe的方法的问题的方法的问题东北大学软件学院东北大学软件学院McCabe的的过过程程成成功功地地标标识识了了在在拓拓扑扑结结构构上上独独立立的的基基路路径径,但但是是如如果果存存在在矛矛盾盾的的语语义义依依赖赖关关系系,拓拓扑扑结结构构上上可可行行的的路路径在逻辑上有可能不可行。径在逻辑上有
15、可能不可行。三角形问题应用三角形问题应用McCabe的方法解决方法的方法解决方法东北大学软件学院东北大学软件学院如果仔细考虑到这个问题,可以找出两条规则:如果仔细考虑到这个问题,可以找出两条规则:如果经过节点如果经过节点C,则必须经过节点则必须经过节点H。如果经过节点如果经过节点D,则必须经过节点则必须经过节点G。p1:A-B-C-E-F-H-J-K-M-N-O-最后不等边三角形p6:A-B-D-E-F-G-O-最后非三角形p4:A-B-C-E-F-H-I-N-O-最后等边三角形p5:A-B-C-E-F-H-J-L-M-N-O-最后等腰三角形结构化程序设计构造结构化程序设计构造东北大学软件学院
16、东北大学软件学院串行IF-ThenIF-Then-Else条件前测试环路后测试环路三角形问题结构化程序设计构造压缩三角形问题结构化程序设计构造压缩东北大学软件学院东北大学软件学院第一第一ABCDEFGHIJKLMNO最后最后a第一第一AaFGHIJKLMNO最后最后b三角形问题结构化程序设计构造压缩三角形问题结构化程序设计构造压缩东北大学软件学院东北大学软件学院第一第一AaFGHIbNO最后最后c第一第一AaFGcO最后最后d第一第一Aad最后最后e第一第一e非结构化程序的测试非结构化程序的测试东北大学软件学院东北大学软件学院测测试试人人员员的的基基本本原原则则是是:具具有有高高圈圈复复杂杂度
17、度的的程程序序需需要要更更充充分的测试。分的测试。采采用用圈圈复复杂杂度度指指标标的的机机构构,大大多多数数都都确确定定了了某某种种最最大大可可接接受复杂度指导方针,一般都选择受复杂度指导方针,一般都选择V(G)=10。如如果果单单元元的的基基本本复复杂杂度度超超过过了了指指导导方方针针规规定定,则则最最好好的的选选择常常是解决非结构化问题。择常常是解决非结构化问题。指导方针与观察指导方针与观察 东北大学软件学院东北大学软件学院基路径测试给出了必须进行的测试的下限。基路径测试给出了必须进行的测试的下限。如如果果发发现现同同一一条条程程序序路路径径被被多多个个功功能能性性测测试试性性用用例例遍遍历历,就可以怀疑这种冗余不会发现新的缺陷。就可以怀疑这种冗余不会发现新的缺陷。如如果果没没有有达达到到一一定定的的DD-路路径径覆覆盖盖,则则可可以以知知道道在在功功能能性性测试用例中存在漏洞。测试用例中存在漏洞。利利用用源源代代码码的的性性质质标标识识合合适适的的覆覆盖盖指指标标,然然后后再再使使用用这这些些指标交叉检查功能性测试用例。指标交叉检查功能性测试用例。总结总结 东北大学软件学院东北大学软件学院 DD-路径路径 基路径测试,基路径测试,McCabe基路径测试方法基路径测试方法
限制150内