软件测试能够为软件可靠性提供一种运行前评估.为减少达到一定可靠性目标所需要的测试用例的数量,普遍认为可以将软件的先验知识综合到基于测试的可靠性估计模型中.目前已经提出几种理论模型但是少有试验验证.本文对测试系统的定义进行了扩展,从规范、实现和测试之间的关系,研究了影响软件测试有效性的因素,并通过试验验证了基于贝塔分布模型的先验知识和基于PAC模型的先验知识在可靠性估计中的作用.本文的结论认为是软件的易测性特征而不是先验知识的多少决定了达到一定可靠性目标所需的测试用例数量.该结论有助于理解软件设计对于测试有效性的影响.
Software testing can provide a priori-operation reliability assessment. It is generally accepted that priori knowledge about the software can decrease the number of test cases to achieve certain reliability goal. Several models have been proposed to address this problem. But few empirical works have been done to validate their result. In this paper we refine the definition of software testing system and make a comparison of the input space of specification,implementation and testing, investigate the factors that affect the effectiveness of testing. Then we conduct experiment to validate whether priori knowledge decreases the numbers of test cases to certain reliability goal. Our conclusion is that not priori knowledge but the testability characterics of certain software determines the number of cases to certain reliability goal. The conclusion helps to understand the impact of software design to testing effectiveness.