第9章 路径测试_第1页
第9章 路径测试_第2页
第9章 路径测试_第3页
第9章 路径测试_第4页
第9章 路径测试_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章路径测试基本概念DD-路径测试覆盖指标基路径测试举例小结结构性测试——回顾白盒测试(White-boxtesting)(白盒的)实现是已知的,并被用来标识测试用例程序的结构和处理过程象白盒子一样透明。允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。输入输出结构性测试——回顾结构性测试基于被测程序的源代码结构性测试方法支持严格定义、数学分析和精确度量结构性测试——回顾结构性测试主要想对程序模块进行如下检查对程序模块的所有独立的执行路径至少测试一次所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次在循环的边界和运行界限内执行循环体测试内部数据结构的有效性等结构性测试——回顾结构性测试用例标识方法的比较S:规格说明(预期的)P:程序(观察的)测试用例集合完全局限在已编程实现的行为集合中测试用例(方法A)SPT测试用例(方法B)SPT结构性测试什么时候测试可以停止?时间用光继续测试未产生新的失效继续测试未发现新的缺陷无法考虑新的测试用例回报很小

达到所要求的覆盖所有缺陷都已经清除太常见无法保证软件可靠性模型支持该选择若已遵循测试规则和指导方针,则该选择是很好的,否则类似选择1好的选择非常好的选择

路径测试路径测试:从程序入口开始,执行过程中经历各个语句,直至程序出口是结构性测试最为典型的问题理想情况:实现路径覆盖问题:对于简单的小程序可实现路径覆盖对于程序中出现多个判定和多个循环,路径数目将急剧增长

路径测试路径从图的构造中得来当执行测试用例时,将通过路径不同执行路径数达520条,所有路径测试完需3170年。庞大的执行路径暗示着需要简化

路径测试在单元测试中,路径是指函数代码的某个分支,而实际上如果我们将软件系统的某个流程也看成路径的话,我们将可以尝试着用路径分析的方法来设计测试用例。

路径测试路径测试的好处降低了测试用例设计的难度,只要搞清了各种流程,就可以设计出高质量的测试用例来,而不用太多测试方面的经验在测试时间较紧的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍

路径测试基本概念DD-路径测试覆盖指标基路径测试举例小结

路径测试——基本概念程序图圈复杂度给定采用命令式程序设计语言编写的一段程序,其程序图是一种有向图,其中:传统定义:如果i和j是程序图中的节点,从节点i到j存在一条边,当且仅当对应节点j的语句可以立即在节点i对应的语句之后执行。改进的定义:节点要么是整个语句,要么是语句的一部分,边表示控制流(从节点i到j有一条边,当且仅当对应节点j的语句或语句的一部分,可以立即在对应节点i的语句或语句的一部分之后执行。)程序图的重要性在于:程序的执行对应于从源节点到汇节点的路径。ABCDEFGfirstlast

路径测试——基本概念测试用例要完成某条程序路径的执行,所以程序图明确描述了测试用例和测试用例所执行的程序部分之间的关系程序图能很好地以理论上可预期的方式,来处理程序中潜在的大量执行路径ABCDEFGfirstlast

路径测试——基本概念类似程序的控制流图例

路径测试——基本概念键盘屏幕三角形程序三角形的边提示和三角形类型数据字典

三角形的边:

a+b+c

a,b,c是非负整数

类型码:等边/等腰/不等边/非三角形

提示

:'Enterthreeintegerswhicharesidesofatriangle'

三角形类型:等边/等腰/不等边/非三角形

1.得到输入2.是三角形吗?a,b,c4.输出控制器a,b,c假3.三角形类型真类型码提示三角形类型三角形的边

路径测试——基本概念Output("Isosceles")Programtriangle2'StructuredprogrammingversionDima,b,cAsInteger

DimIsATriangleAsBoolean'Step1:GetInput1.Output("Enter3integerswhicharesidesofatriangle")2.Input(a,b,c)3.Output("SideAis",a)4.Output("SideBis",b)5.Output("SideCis",c)'Step2:IsATriangle?6.If(a<b+c)AND(b<a+c)AND(c<a+b)7.ThenIsATriangle=True8.ElseIsATriangle=False9.EndIf

'Step3:DetermineTriangleType10.IfIsATriangle

11.ThenIf(a=b)and(b=c)12.

ThenOutput("Equilateral")13.

ElseIf(ab)AND(ac)AND(bc)14.

ThenOutput("Scalene")15.

Else16.

EndIf

17.

EndIf

18.

ElseOutput("NotaTriangle")19.EndIf

20.Endtriangle2三角形程序的伪码

路径测试——基本概念三角形程序的程序图1324657891018111314151612171920

路径测试——基本概念程序图圈复杂度V(G)=e-n+pV(G)=e-n+2pAEe7e2e5DBCFGe1e4e3e6e8e9e10e11例

e=10,n=7,p=1,V=e-n+2p=5

e=11,n=7,p=1,V=e-n+p=5

V(G)=图所在平面被划分为的区域数

路径测试——基本概念圈复杂度(V=e-n+2)例n1n5n2e2e1e5n4e6e4n3e3n1n3n2e2e1e3n1n3n2e2e1n1n2e2e1e3n3n1n2e2e1e3n3

e=6,n=5,V=e-n+2=3

e=3,n=3,V=e-n+2=2

e=2,n=3,V=e-n+2=1

e=3,n=3,V=e-n+2=2

e=3,n=3,V=e-n+2=2程序越复杂,圈复杂度越高,路径数越多。

路径测试基本概念DD-路径测试覆盖指标基路径测试举例小结DD路径的定义是程序图中的一条链,使得:

Case1:由一个节点组成,入度

=0,

Case2:

Case3:

Case4:

Case5:长度>=1的最大链

InitialNodeTerminalNodeInteriorNodesa2-connectedchain

路径测试——DD路径由一个节点组成,出度

=0,由一个节点组成,入度>=2或出度>=2,由一个节点组成,入度=1且出度=1,对应唯一的源节点对应唯一的汇节点对应条件语句用于短分支对应串行语句

路径测试——DD路径DD路径图的定义

本质上是一种压缩图给定采用命令式语句编写的一段程序,其DD路径图是有向图,其中,节点表示程序图的DD-路径,边表示连续DD-路径之间的控制流。

2-连接组件被压缩为对应case5DD-路径的单个节点

DD-路径能够精确描述测试覆盖

路径测试——DD路径1324657891018111314151612171920三角形问题的程序图三角形问题的DD-路径图BACDEFGHJKLMINOEndBegin

路径测试基本概念DD-路径测试覆盖指标基路径测试举例小结

路径测试——测试覆盖指标功能性测试的基本局限性测试用例(方法A)SPT测试用例之间可能存在严重的冗余

还可能存在未测试的软件漏洞

受软件规格说明书的限制测试覆盖指标是度量一组测试用例覆盖(或执行)某个程序扩展的工具。

路径测试——测试覆盖指标测试覆盖指标(基于程序图)

C0

所有语句

C1

所有DD-路径(判断分支)C1p

所有判断的每种分支C2

C1覆盖

+循环覆盖Cd

C1覆盖

+DD-路径的所有依赖对偶CMCC

Cik

Cstat

多条件覆盖包含最多k次循环的所有程序路径(通常k=2)路径具有“统计重要性”的部分所有可能的执行路径指标覆盖描述C语句覆盖(点覆盖)判定覆盖(边覆盖)条件覆盖路径测试循环覆盖

路径测试——测试覆盖指标语句与判断测试

要求找出一组测试用例,使得当执行时,程序图的所有节点至少执行一次BBeginCDEFGHJKLMINOEnd

路径测试——测试覆盖指标DD-路径测试对于C1指标,要求执行每个判断分支,则应遍历DD-路径图中每条边,对于C1p覆盖,若为条件语句,则应覆盖真、假分支;若为CASE语句,应覆盖每个子句,对于较长的DD-路径,代表复杂计算,应采用多个功能性测试,尤其是边界值和特殊值测试,

路径测试——测试覆盖指标DD-路径的依赖对偶即数据流测试;

DD-路径对偶之间最常见的依赖关系是定义/引用关系,变量在一个DD-路径中定义(接受值),在另一个DD-路径中引用;这种依赖关系与不可行路径问题有关;简单的DD-路径覆盖可能不会遍历这些依赖关系。例BBeginCDEFGHJKLMINOEnd执行路径…BDEFH…:是不可行路径

路径测试——测试覆盖指标循环覆盖串联循环嵌套循环非结构循环串联循环嵌套循环非结构循环例

路径测试基本概念DD-路径测试覆盖指标基路径测试举例小结

路径测试——基路径测试覆盖所有路径不可能只能从大量可能路径中选择一部分作为测试用例基路径测试基本思想:找出一组独立路径进行测试数学基础:将程序看作一种向量空间,该空间的基是要测试的非常有意义的元素集合。若基无问题,则用基表述的一切都无问题什么是向量空间?什么是基?路径测试——基路径测试点线面基向量空间向量空间的基是相互独立的一组向量,基覆盖整个向量空间,使得该空间中的任何其他向量都可用基向量表示。一组基向量在一定程度上可表示整个向量空间的“本质”:空间中的一切都可用基表示,如果一个基元素被删除,则这种覆盖特性也会丢失。向量空间的一组基不是唯一的。

路径测试——基路径测试穷举测试不可能只能从大量可能数据中选择一部分作为测试用例输入域划分互不相交的子集子集的并是整个集合1234选择代表元素等价类测试

路径测试——基路径测试输入域划分互不相交的子集子集的并是整个集合1234选择代表元素路径集合路径相互独立选择独立路径元素独立路径的并是整个向量空间

路径测试——基路径测试确保程序中每个可执行语句至少执行一次所必需的测试用例数目的下限

路径测试——基路径测试基路径测试的步骤从程序代码生成程序图计算圈复杂度确定基路径集合设计测试用例第一ACDEFBGJKLMNHIO最后选择一个基线路径,对应某个“正常案例”程序执行,使得该路径具有尽可能多的判断节点重新回溯基线路径,依次“翻转”每个判断点不同的人选择的基路径可能不会相同,但这没有影响,因为不要求唯一基。

基路径测试——McCabe基路径方法McCabe的基路径方法:强连通图的圈数量就是图中线性独立环路的数量

基路径测试——McCabe基路径方法McCabe的基路径方法ABEDEGC

基路径P1:A,B,C,GP2:A,B,C,B,C,GP3:A,B,E,F,GP4:A,D,E,F,GP5:A,D,F,G其它路径P:A,B,C,B,E,F,Gp2+p3-p1P:A,B,C,B,C,B,C,G2p2-p1e=10,n=7,p=1,V(G)=5

基路径测试——McCabe基路径方法利用关联矩阵加强理解ABEDEGC所经过的路径/边12345678910P1:A,B,C,G1001000010P2:A,B,C,B,C,G1012000010P3:A,B,E,F,G1000100101P4:A,D,E,F,G0100010101P5:A,D,F,G0100001001ex1:A,B,C,B,E,F,G1011100101

1

436

5

10798

2

基路径测试——McCabe方法的讨论McCabe的基路径方法的优点保证可经过所有决策分支,与DD-路径覆盖相同是对现实世界问题的学术性的过分简化测试基路径集合是充分的为使程序路径看起来像向量空间,强制进行扭曲但McCabe基不充分路径加法是一条路径后接另一条路径,乘法对应于路径的重复McCabe的基路径方法的不足

基路径测试——McCabe方法的讨论McCabe的基路径方法的讨论ABEDEGCP:A,B,C,B,E,F,Gp2+p3-p1P:A,B,C,B,C,B,C,G2p2-p1

基路径测试——McCabe方法的讨论McCabe的基路径方法的讨论确定基路径集合选择一个基线路径,对应某个“正常案例”程序执行,使得该路径具有尽可能多的判断节点重新回溯基线路径,依次“翻转”每个判断点这样得到的路径实际可行吗?

基路径测试——McCabe方法的讨论基路径测试的步骤第一ACDEFBGJKLMNHIO最后P1:A,B,C,E,F,H,J,K,M,M,O,最终P2:A,B,D,E,F,H,J,K,M,M,O,最终P3:A,B,C,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,最终原始在B处翻转p1在F处翻转p1在H处翻转p1在J处翻转p1不等边三角形等边三角形等腰三角形不可行不可行确定基路径集合非三角形情况没有基路径例

基路径测试——McCabe方法的讨论基路径测试的步骤如果经过节点C,必须经过节点H如果经过节点D,必须经过节点GP1:A,B,C,E,F,H,J,K,M,M,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,最终不等边三角形非三角形等边三角形等腰三角形第一ACDEFBGJKLMNHIO最后确定基路径集合为什么存在不可行路径?基路径测试——McCabe方法的讨论功能性测试中,输入数据定义域中的依赖关系给边界值和等价类测试带来问题功能性测试中采用决策表测试方法;结构性测试中,输入数据定义域中的依赖关系与独立基路径的隐含假设发生冲突,导致拓扑结构上可行的路径在逻辑上可能不可行结构性测试中,寻求基路径时可通过翻转语义可行路径的判断点,或找出逻辑依赖性的原因,设置一定的约束条件;如果基路径必须可行,则逻辑依赖关系将压缩基路径集合。基路径测试——基本复杂度McCabe的圈复杂度在改进程序设计方面起到较大作用基本复杂度的概念基路径测试——基本复杂度基本复杂度BACDEFGHJKLMINOEndBegin是另一种形式压缩图的唯一圈复杂度

DD-路径图—程序图的压缩

对结构化程序设计构造的压缩例1324657891018111314151612171920基路径测试——基本复杂度基本复杂度是另一种形式压缩图的唯一圈复杂度

DD-路径图—程序图的压缩

对结构化程序设计构造的压缩n1n3n2e2e1e3n1n3n2e2e1n1n4n2e2e1e3n3e4n1n5n2e2e1e5n4e6e4n3e3n1n2e2e1e3n3n1n2e2e1e3n3基路径测试——基本复杂度对结构化程序设计构造的压缩基本思想:寻找结构化程序设计构造图,将其压缩成单一节点,重复该处理直至不能找出其它结构化程序设计构造为止。基路径测试——基本复杂度BACDEFGHJKLMINOEndBeginAFGHJKLMINOEndBeginaAFGHbINOEndBeginaFGcOEndBeginaAadOEndBeginAeBegin基路径测试——基本复杂度对结构化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论