- 1、本文档共129页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
下面计算图中的环路复杂性图中共有条边个节点因此程序的环路复杂性为方法二通过控制流图中判定节点数计算若设为控制流图中的判定节点数则有在图的控制流图中有个判定节点因此其环路复杂性为注意对于语句其判定节点数的计算需要转化将语句转换为语句后再判断判定节点个数方法三将环路复杂性定义为控制流图中的区域数需要注意的是控制流图的外面也要算一个区域在图的控制流图中有个区域因此其环路复杂性为独立路径所谓独立路径是指包括一组以前没有处理的语句或条件的一条路径控制流图中所有独立路径的集合就构成了基本路径集在图所示的控制
下面计算图5-1-2(b)中的环路复杂性。图中共有8条边,7个节点,因此E=8,N=7,V(G)=E-N+2=8-7+2=3,程序的环路复杂性为3。 方法二:通过控制流图中判定节点数计算。若设P为控制流图中的判定节点数,则有V(G)=P+1。 在图5-1-2(b)的控制流图中有2个判定节点,因此其环路复杂性为V(G)=P+1=2+1=3。 注意:对于switch-case语句,其判定节点数的计算需要转化。将case语句转换为if-else语句后再判断判定节点个数。 方法三:将环路复杂性定义为控制流图中的区域数。 需要注意的是:控制流图的外面也要算一个区域。 在图5-1-2(b)的控制流图中有3个区域:R1、R2、R3,因此其环路复杂性为3。 2.独立路径 所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。控制流图中所有独立路径的集合就构成了基本路径集。在图5-1-2(b)所示的控制流图中,一组独立的路径是: path1:1-2-7; path2:1-2-3-4-6-2-7; path3:1-2-3-5-6-2-7。 路径path1、path2、path3就组成了控制流图的一个基本路径集(独立路径集)。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个判定的取真分支和取假分支也能得到测试。 需要注意的是基本路径集并不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。 例如图5-3-1的控制流图,由圈复杂度计算方法可知该控制流图的圈复杂度为5,因此有5条独立路径。 path1:1-2-3-5-6-7-15; path2:1-2-3-5-6-8-9-14-15; path3:1-2-3-5-6-8-10-11-13-14-15; path4:1-2-3-5-6-8-10-12-13-4-15; path5:1-2-4-5-6-7-15。 路径path1、path2、path3、path4、path5组成了图5-3-1所示控制流图的一个基本路径集。 图5-3-1 控制流图 显然,我们还可以找出另一组独立路径集: path6:1-2-3-5-6-7-15; path7:1-2-4-5-6-7-15; path8:1-2-4-5-6-8-9-14-15; path9:1-2-4-5-6-8-10-11-13-14-15; path10:1-2-4-5-6-8-10-12-13-4-15。 path6、path7、path8、path9、path10组成了图5-3-1所示控制流图的另一个基本路径集。 由于基本路径集可能不唯一,因此在测试中就需要考虑如何选择合适的独立路径构成基路径集,以提高测试的效率和质量。选择独立路径的原则如下: (1) 选择具有功能含义的路径。 (2) 尽量用短路径代替长路径。 (3) 从上一条测试路径到下一条测试路径,应尽量减少变动的部分(包括变动的边和节点)。 (4) 由简入繁,如果可能,应先考虑不含循环的测试路径,然后补充对循环的测试。 (5) 除非不得已(如为了覆盖某条边),不要选取没有明显功能含义的复杂路径。 3.基路径测试方法 基路径测试法是通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 基本路径测试法包括以下5个方面: (1) 根据详细设计或者程序源代码,绘制出程序的程序流程图。 (2) 根据程序流程图,绘制出程序的控制流图。 (3) 计算程序环路复杂度。环路复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本独立路径数目。 (4) 找出独立路径。通过程序的控制流图导出基本路径集,列出程序的独立路径。 (5) 设计测试用例。根据程序结构和程序环路复杂性设计用例输入数据和预期结果,确保基本路径集中的每一条路径的执行。 1.简单程序 请用基路径测试法测试下面的代码: public void sort(int iRecordNum, int iType { int x = 0; int y = 10; while (iRecordNum 0) { if (iType == 0) { x = y + 2; } else { if (i
文档评论(0)