- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 路径测试 结构性测试是基于源代码,不是基于定义。 ? 定义: 给定采用命令式程序设计语言编写的一段程序,其程序图是一种有向图,图中节点表示语句片段,边表示控制流。 如果i和j是程序图中的节点,从节点i到节点j存在一条边,当且仅当对应节点j的语句片段可以在节点i的语句片段后立即执行。 0. /*this is a program for testing */ 1. int i, j, k 2. scanf(“%d,%d”,i,j); 3. if (i10) 4. k=i*2+j 5. else 6. k=i+j; 7. printf(“k=%d”,k); 8.printf(“end”); 测试所有的测试路径,在实际处理中会出现不可能性。例如,下图是简单程序的完备测试是不可能的例子(Schach,1993)。在该程序中,循环范围内从节点B到节点F有5条路径,如果循环18次,则存在4.77万亿次不同的程序执行路径。 9.1 DD-路径 决策到决策路径(DD-路径)是结构性测试最著名的形式结构。Miller,1977年。 DD-路径,可以叫做路径链,链是起始和终止节点不同的路径,内部节点内度=1,外度=1,初始节点与链中的其他节点2-连接。 定义: DD-路径是程序图中的一条链,使得: (1)情况1:由一个节点组成,内度=0 (2)情况2:由一个节点组成,外度=0 (3)情况3:由一个节点组成,内度=2,或外度=2 (4)情况4:由一个节点组成,内度=1并且外度=1 (5)长度=1的最大链。 在图9-1中,情况1对应节点0,情况2对应节点8,节点1-2是情况5,节点3和7对应情况3,情况4对应节点4和5/6。 定义: 给定采用命令式语言编写的一段程序,其DD-路径图是一有向图。其中,节点表示其程序图的DD-路径,边表示连续DD-路径之间的控制流。 9.2测试覆盖率指标 功能性测试的局限:未测试的功能漏洞和冗余. DD-路径能够非常精确地描述测试覆盖。表9-2列出的指标被广泛接受使用,来自E.F.Miller,1977的研究工作,其中C1指标是覆盖测试最低可接受级别。 9.2.1 基于指标的测试 (1)?? 语句与判断测试 (2) ?? DD-路径测试 (3)??? DD-路径的依赖对偶 (4)?? 多条件覆盖 (5) 循环覆盖:循环变量的最小,一般,最大进行测试,一旦测试了循环就压缩为一个节点。 9.2.2 测试覆盖分析器 覆盖分析器是一类测试工具,可提供自动化测试管理。 通过覆盖分析器,测试人员可以在经过覆盖分析器“处理”的程序上执行一组测试用例。分析器再使用处理代码所生成的信息生成覆盖报告。 补充4级MODE-S应答机的RTCA/DO-178B,LEVEL-B结构覆盖测试内容。 9.3 基路径测试 ?“基”,数学上用“向量空间”的结构来定义,是元素的一个集合(称为向量),以及对该向量定义的对应乘法和加法操作。 9.3.1 McCabe基路径方法? McCabe将他的测试观点放在图论的主要结果上:强连接图的圈数量是图中线性独立环路的数量。 圈复杂度,V(G)=e-n+p,有些地方使用V(G)=e-n+2p,其中e是边数,n是节点数,p是连接区域数。 下图是单入口和单出口的,McCabe,1982年给出。 ? 强连接图增加了一条边,会影响计算值,但不应影响圈数。 (1)?????? 对于控制图:V(G)=e-n+2p=10-7+2=5 (2)?????? 对于强连接图:V(G)=e-n+p=11-7+1=5 ? 图9-7的强连接图的圈复杂度是5,因此有5个线性独立环路,现在删除从节电G到A所加的边,则这5个环路就成为A到G的线性独立路径。路径如下: P1:A-B-C-G P2:A-B-C-B-C-G P3:A-B-E-F-G P4:A-D-E-F-G P5:A-D-F-G 9.3.2 关于McCabe基路径方法的观察 9.3.3 基本复杂度 McCabe在圈复杂度上的工作,在改进程序设计方面的作用明显大于在改进测试方面的作用。基本复杂度是压缩度的唯一圈复杂度。 基本思想: 寻找一种结构化程序设计构造图,将其压缩成单一节点,重复这种处理,直到不能再找出其他结构化程序设计构造为止。 一般来说,如果程序具有很好的结构性,总是可以压缩为只有一条路径的图。图9-9,9-10 9.4 指导方针 1.在研究功能性测试过程中,观察到漏洞和冗余都存在,而且不能同时被发现。原因是: 1)功能性测试使我们离代码太远。 2)结构性测试的路径测试方法又在另一方向上太远。将代码采用有向图表示和程序路径公式化,掩盖了代码中的重要信息,即可行
原创力文档


文档评论(0)