最近在研究OOT,classbench methodology,一边看paper,一边记录思考的半成品,顺便贴出来吧:
软件测试就是证明一个命题:被测软件的质量达到一定标准。
我们都知道数学命题证明都是用逻辑推理的方法,把一个复杂的命题等价转换为一个若干个更为简单的命题,最后等价为一系列公理和定理。推导的方向是从复杂到简单。测试也是如此,如果用于证明上述测试命题的等价命题比原命题更复杂,这个推导就没有什么现实意义。
在classbench methodology中,就我目前的理解,测试者为了测试一个class(CUT,class under test),需要开发test graph, test oracle, test driver, 并且测试结论的正确性基于test graph, test oracle, test driver的正确性。 如前所述,如果证明test graph, test oracle, test driver的正确性并不比证明CUT的质量标准容易的话,这个方法论的有效性就是值得置疑的。