- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4个测试用例覆盖了所有的条件组合,同时也覆盖了4个分支. 但只覆盖了3条路径,漏掉了路径acd。 测试用例 age sex comm 所走路径 覆盖组合 覆盖条件 Test1 Test6 Test7 Test8 50 M 2500 20 M 2000.0 50 F 1500.0 20 M 1500 a c e a b e a b e a b d 4) 8) T1 , T2 , T3 , T4 1 T T2 3 T T4 T1 2 T T3 4 T 1 T 2 T 3 T 4 T 3)7) 1) 5) 2) 6) 路径能否被全面覆盖在软件测试中是一个重要的问题,因为程序要取得正确的结果,就必须消除遇到的各种障碍,沿着特定的路径顺利执行。 如果程序中的每一条路径都得到考验,才能说程序受到了全面检验。 路径覆盖 路径覆盖要求设计足够多 测试用例,覆盖程序中所有 可能的路径。 针对上述程序段中的4条可能路径 P1: ace P2: abd P3: abe P4: acd 4个测试用例: Test1,test 3,test4和test7, 可以分别覆盖这4条路径。 讨论路径数目的计算方法,分析程序中到底有 多少条路径?有多少条线性独立路径数? 如果程序中出现了多个判断和多个循环,可能的路径数目将会急剧增长,以至实现路径覆盖不可能的。 实际上我们可以做到的只是有选择地测试程序中某些有代表的性路径。 弧序列表示 结点序列表示 进入循环次数 abdhkl abcfkl abcfkmbcfkl abcfkmbeikl I-A-B-D-F-G-O I-A-B-C-F-G-O I-A-B-C-F-G-A-B-C-F-G-O I-A-B-C-F-G-A-B-E-F-G-O 0 0 1 1 程序控制流图是一个有向图,如果图中任何两个结点之间都至少存在一条路径,这样的图便是强连通图。McCabe提出,如果程序控制流图是一个强连通图,其复杂度V(G)可按以下公式计算: V(G) = e – n + 1 e为图G中的边数,n为图G中的结点数。 强连通图的复杂度V(G) 是图中线性独立环路的数量。 McCabe的程序独立路径数 通过从汇结点到源结点添加一条边,便可创建强连接有向图。其复杂度是: (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复杂性度量,可以从程序的环路复杂性导出程序路径集合中的独立路径数。 设计测试用例,确保独立路径集中的每一条路径被执行。 在路径测试中,最关键的问题仍然是如何设计测试用例,使之既能够避免测试的盲目性,又能有较高的测试效率。 一般有三个途径可得到测试用例: (1)通过非路径分析得到测试用例 (2)对未测试的路径生成相应的测试用例 (3)生成指定路径的测试用例 小结 白盒测试方法基于被测程序的源代码开发测试用例。常见的白盒测试方法有逻辑覆盖、数据流测试、域测试、符号测试、路径分析、程序变异以及程序插装等。 逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的结构作到一定程度的覆盖,如语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。路径覆盖是最强的逻辑覆盖准则,实际上我们只能有选择地测试程序中某些有代表的性路径。 第四章 白盒测试 概述 词法分析与语法分析 代码检查法 静态结构分析 程序插桩技术 逻辑覆盖法 路径分析 白盒
文档评论(0)