判定测试,判定测试是一种针对判定结果设计测试用例的技术。判定覆盖指的是执行测试套件能够覆盖的判定结果的百分比,即被执行的判定和总的判定比值。在低级别的测试中,判定覆盖可以作为出口准则之一。例如,测试出口准则可以要求测试对象达到100%的判定覆盖,而100%的判定覆盖可以保证100%的语句覆盖。
继续以图所示的控制流图为例,程序中有两个判定。假定第1个判定(a > 0 && b> 0)
取真用T1表示,取假用F1表示;第2个判定(a > 1 || c > 1)
取真用T2表示,取假用F2表示。即黑体的T和F分别表示判定的真假。可以得到满足100%判定覆盖的两条路径abdegh(T1T2)和acfh(F1F2),即设计两个测试用例即可满足100%的判定覆盖准则。表所示为满足100%判定覆盖的测试用例。
除了上面的两条路径可以满足100%的判定覆盖之外,还可以选择其他路径组合。即abdfh(T1F2)和acegh(F1T2)来满足覆盖要求,如表所示。
将判定测试得到的测试用例和语句测试得到的测试用例相比较,发现100%的判定覆盖可以保证100%的语句覆盖。即语句覆盖中的测试用例1 是判定测试中的测试用例1 和2中的一个子集;而判定测试中的测试用例3和4与语句测试中的测试用例2和3相同。
尽管判定测试可以发现程序中的逻辑错误(见语句覆盖中的例子),但是并不能保证发现判定中原子条件的错误。例如,开发人员将判定(a > 1 || c > 1)
错误地写为(a < 1 || c> 1)
,那么通过判定测试用例3和4并不能发现这个错误(读者可分析其中的原因)。
酷客教程相关文章:
评论前必须登录!
注册