- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过从汇结点到源结点添加一条边,便可创建强连接有向图。其复杂度是: (G) = e – n + 1=11-7+1=5 以下给出用结点序列表示的五条线性独立路径: 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 c A E B D C F G a b d e f g h i 控制图导出的强连通图 e j k 独立路径是指从程序入口到出口的多次执行中,每次至少有一个语句(包括运算、赋值、输入、输出或判断)是新的,未被重复的。 路径 p6=A、B、C、B、E、F、G p7=A、B、C、B、B、C、G 不是独立路径。 很明显,从测试角度来看,如果某一程序的每一独立路径都测试过了,那么可以认为程序中的每个语句都已检验过了. 但在实际测试中,要真正构造出程序的每条独立路径,并不是一件轻松的事。 独立路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出可执行的独立路径集合,从而设计测试用例的方法。 设计出的测试用例要保证被测程序的每条可执行的独立路径至少执行一次。 路径测试考虑以下几个方面: 程序的控制流图。 程序环境复杂性。借助McCabe复杂性度量,可以从程序的环路复杂性导出程序路径集合中的独立路径数。 设计测试用例,确保独立路径集中的每一条路径被执行。 Computer Architecture and Structure 第五章 白盒测试 概述 逻辑覆盖法 路径分析 数据流测试 程序插桩技术 白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提。白盒子测试分静态和动态两种:静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时也称为结构分析。动态白盒测试也称结构化测试,通过查看并使用代码的内部结构,设计和执行测试。 逻辑覆盖法 程序控制流图是白盒测试的主要依据。对于一个程序,其程序控制流图G=(V,E,I,O)是一个有向图,其中V是结点的集合,E是边的集合,I是唯一的源结点(入口结点),而O是唯一的汇结点(出口结点)。 ● 结点表示语句,以标有编号的圆圈表示。 ● 边表示语句间可能的控制流向 ● I, O相应于程序的开始语句和结束语句。 如果i和j是程序控制流图中的结点,从结点i到结点j存在一条边,当且仅当对应结点j的语句可以在对应结点i的语句之后立即执行。 三角形问题类C语言实现 /* PROGRAM TRIANGLE */ mian () { 1 int a,b,c; 2 boolean IsTraingle 3 sacnf(“Enter 3 integer which is sides of a triangle. %d%d%d”,a,b,c); 4 printf(“Side a is %d”, a); 5 printf(“Side b is %d”, b); 6 printf(“Side c is %d”,c); 7 if ((ab+c) AND (ba+c) AND (ca+b)) 8 then IsTraingle=True; 9 else IsTraingle=False; 10 if (IsTraingle) 11 then if ((a=b) AND (b=c)) 12 then printf(“Equilateral”) 13 else if (a!=b) AND (a!=c) AND (b!=c) 14 then printf(“Scalene”) 15 else printf(“Isosceles”) 16 else printf(“Not a Triangle”) } 程序控制流图 结点3到7是一个序列,结点7到10是一个if-then-else结构,结点11到16是一个嵌套的if-then-else结构。结点3和16是程序源结点和汇结点,对应于单入口、单出口准则。该程序没有循环,因此控制流图是一个有向非循环图。 例:P=3,4,5,6,7,8,10,11,12,16是一条程序路经。 程序控制流图的重要性在于,程序的执行对应于从源结点到汇结点的路径。 检验程序从入口开始,执行过程中经历的各个语句,直到出口,是白盒测试最为典型的问题。 逻辑覆盖 逻辑覆盖是一种使用最广泛的结构测试方法。逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,
原创力文档


文档评论(0)