- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程概论参考课件55白盒法
第5章 编程与测试 测试(方法)技术 (测试用例设计) 关于“测试用例设计” 测试方案包括: ①测试目的 ②拟定的输入数据 ③预期的结果 测试数据和预期结果,被称为“测试用例” 最困难是选择检错能力强的测试输入数据。 关于“测试用例设计” 不同的测试方案,发现错误的能力有差别,为提高效率、降低测试成本,应选用高效的测试数据。所以,测试用例设计是测试的关键技术; 因为不可能进行穷尽的测试,所以测试用例设计的目标是,选用少量“最有效的”测试数据,做到尽可能完备的测试。 白盒法、黑盒法,是两种设计测试用例的方法 5.5 测试技术(方法)(测试用例设计) 5.5.1 白盒测试法 5.5.2 黑盒测试法 5.5.1 白盒测试技术 5.5.1.1 逻辑覆盖 5.5.1.2 控制结构覆盖 基本路径覆盖 条件覆盖 循环覆盖 5.5.1.1 逻辑覆盖 测试无法做到穷举,所以,选择有代表性的通路,拟定高效的测试数据,以减少测试量,提高测试的有效性,是沿测试方案设计追求的目标。 一系例依据模块的内部逻辑设计测试用例的策略,就构成了白盒法测试技术; 逻辑覆盖是白盒法的策略之一,是指测试数据对模块内部的所有语句、分支、路径等逻辑,能测试到多少的一种说法。 5.5.1.1 逻辑覆盖 按不同的策略设计的测试数据的检错能力差别很大,换言之,有的测试(数据)会漏掉一些模块内部逻辑而测不到,从这个角度讲,不同的测试数据,具有不同的逻辑覆盖强度。 使用逻辑覆盖策略设计测试用例,有6种方法,每种方法有着不同的逻辑覆盖强度,这也构成了6个逻辑覆盖的标准: 5.5.1.1 逻辑覆盖 (1)语句覆盖法 (2)判定覆盖法 (3)条件覆盖法 (4)判定/条件覆盖法 (5)条件组合覆盖法 (6)路径覆盖法 (1)语句覆盖法 为了暴露错误,应选择足够多的测试数据,使被测模块中每个语句至少执行一次。 图5.1 被测试模块的流程图 语句覆盖似乎全面地检验了每个语句。但它只测试了逻辑表达式为“T”的情况; 如果将第一个逻辑表达式中的“AND”错写成“OR”,第二个逻辑表达式中将“X1”错写成“X1”,仍用上述数据进行测试,是不能发现错误的。 因此,语句覆盖是比较弱的覆盖标准。 分析 从本例可以看出,语句覆盖,只关心有没有测到判定语句,而没有强调分别考虑判定表达式取“真”“假”的两种情况,因此,语句覆盖是较弱的逻辑覆盖标准; 为了更充分地测试,白盒法的逻辑覆盖策略又提出了“判定覆盖法”,要求选用的测试数据,不仅要做到语句覆盖,还要满足判定覆盖的标准。 (2)判定覆盖 判定覆盖又叫分支覆盖,关注判定表达式的不同取值情况; 不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,即至少取“真”“假”两个分支 图5.2 被测试模块的流程图 分析 判定覆盖比语句覆盖强; 但是对程序逻辑的覆盖程度仍然不高,只关注到整个判定表达式的结果,没有关注到表达式中的每个条件的不同取值; (3)条件覆盖 关注到表达式中每个条件! 不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。 图5.3 被测试模块的流程图 分析 一般地,”条件覆盖“强于“判定覆盖”,但也有例外: A=1,b=0,x=3 (满足a≤1,b=0,a≠2,x1) A=2,b=1,x=1 (满足a1,b≠0,a=2,x ≤1) 分析 由此可见,但条件覆盖,不一定涵盖判定覆盖; 白盒法又提出了将两都结合的标准“判定/条件覆盖” (4)判定/条件覆盖 既然条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖,自然会提出一种能同时满足这两种覆盖标准的逻辑覆盖,这就是判定/条件覆盖。 它的含义是,选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。 测试用例: A=2,B=0,X=3 A=1,B=1,X=1 分析 表面上看,判定/条件覆盖,测试了所有条件的取值,但实际上条件组合中的某些条件,会抑制其他条件。 例如,在有“与”运算的判定表达式中,第一个条件取“假”值是,第二个条件永远不起作用;在有“或”运算的判定表达式中,第一个条件取“真”值时,第二个条件永远不起作用。 (5)条件组合覆盖 条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。 上述四个条件,可组合八种情况: A1,B=0 A1,B≠0 A≤1,B=1 A≤1,B≠0 分析 显然,满足条件组合覆盖标准的测试数据,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。因此,条件组合覆盖是前述几种覆盖标准中最强的。 但是,满足条件组合覆盖标准的测试数据并不一定能使程序中的每条路径
文档评论(0)