- 11
- 0
- 约 15页
- 2016-12-02 发布于湖北
- 举报
E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 E. Angel and D. Shreiner: Interactive Computer Graphics 6E ? Addison-Wesley 2012 * 内容 (1)逻辑覆盖 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖 * 逻辑覆盖 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x3)(z10) ) { k=x*y-1; j=sqrt(k); } //语句块1 if ( (x==4)||(y5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 } * 逻辑覆盖 X3 z10 执行语句块1 执行语句块2 X==4 || y5 执行语句块3 F F T T a b d c e * 逻辑覆盖 语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次。 要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。 测试用例输入为:{ x=4、y=5、z=5 } 程序执行的路径是:abd 分析: 语句覆盖可以保证程序中的每个语句都得到执行,但发现不了判定中逻辑运算的错误,即它并不是一种充分的检验方法。例如在第一个判定((x3)(z10))中把“”错误的写成了“||”,或者把x3误写成x 2,这时仍使用该测试用例,则程序仍会按照流程图上的路径abd执行。可以说语句覆盖是最弱的逻辑覆盖准则。 * 逻辑覆盖 判定覆盖:通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。 要实现DoWork函数的判定覆盖,需要设计两个测试用例。 测试用例的输入为:{x=4、y=5、z=5};{x=2、y=5、z=5} 程序执行的路径分别是:abd;ace 分析: 上述两个测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这点看似乎判定覆盖比语句覆盖更强一些,但仍然无法确定判定内部条件的错误。例如把第二个判定中的条件y5错误写为y5,使用上述测试用例,照样能按原路径执行而不影响结果。因此,需要有更强的逻辑覆盖准则去检验判定内的条件。 * 逻辑覆盖 条件覆
原创力文档

文档评论(0)