为了应对软考,今天学习了一下语句覆盖,判定覆盖,条件覆盖,路径覆盖
语句覆盖:设计用例,使程序中的每个可执行语句至少执行一次。
判定覆盖:设计用例,使得程序中的每一个判断的取真分支和取假分支至少经历一次。
条件覆盖:设计用例,使每个判断中的每个条件的可能取值至少满足一次。
路径覆盖:设计测试用例,来覆盖程序中的所有可能执行的路径。
光看定义可能你还是有点懵,那么就来看一个简单的例题吧
语句覆盖 :根据定义,我们要设计个用例让每个可执行语句至少执行一次
当 A=2,B=0,X=4 时满足
判定覆盖:根据定义,我们要设计用例让程序中的每一个判断的取真分支和取假分支至少经历一次
看流程图我们知道肯定要设计多组用例,假设第一个判断框编号为1,第二个判断框编号为2(从上往下),当第一个判断框为真时记作 T1,第一个判断框为假时记作 F1
用例1:A=2,B=0,X=4 有 T1,T2
用例2:A=1,B=1,X=1 有 F1,F2
条件覆盖:根据定义,我们要设计用例让每个判断中的每个条件的可能取值至少满足一次
比如 boolean b = A>1 我们的用例要有b取true和取false的情况
用例1:A=2,B=0,X=4 有 A>1取true,B=0取true,X>1取true
用例2:A=1,B=1,X=1 有 A>1取false,B=0取false,X>1取false
路径覆盖:根据定义,我们要设计用例覆盖程序中的所有可能执行的路径
这个相比上面两种覆盖较复杂点,当然如果你理解了,会觉得也不过如此,为了让大家看的更清楚,我就做了个表格,注意当 A>1 AND B=0 为 true 时要执行 X=X/A 语句
编号 | A | B | X | A>1 | B=0 | A=2 | X>1 | A>1 AND B=0 | A=2 OR X>1 |
1 | 2 | 0 | 4 | true | true | true | true | true | true |
2 | 1 | 1 | 1 | false | false | false | false | false | false |
3 | 2 | 1 | 1 | true | false | true | false | false | true |
4 | 4 | 0 | 2 | true | true | false | false | true | false |
软考一般就考上面几种覆盖,所以一定要搞懂。如果上面写的不好的地方或者有错误,欢迎留言指出,我将及时改正,谢谢。