Estimating software testability can crucially assist software managers to optimize test budgets and software quality. In this paper, we propose a new approach that radically differs from the traditional approach of pursuing testability measurements based on software metrics, e.g., the size of the code or the complexity of the designs. Our approach exploits automatic test generation and mutation analysis to quantify the evidence about the relative hardness of developing effective test cases. In the paper, we elaborate on the intuitions and the methodological choices that underlie our proposal for estimating testability, introduce a technique and a prototype that allows for concretely estimating testability accordingly, and discuss our findings out of a set of experiments in which we compare the performance of our estimations both against and in combination with traditional software metrics. The results show that our testability estimates capture a complementary dimension of testability that can be synergistically combined with approaches based on software metrics to improve the accuracy of predictions.
翻译:估计软件可测试性对于软件管理者优化测试预算和软件质量具有关键辅助作用。本文提出了一种全新方法,其根本区别于传统基于软件度量(如代码规模或设计复杂度)进行可测试性测量的方式。该方法利用自动测试生成与变异分析技术,量化了开发有效测试用例的相对难度证据。我们详细阐述了支撑可测试性估计方案的理论直觉与方法论选择,介绍了据此实现具体估计的技术及原型系统,并讨论了一组实验的发现——在这些实验中,我们既将所提估计方法与传统软件度量进行性能对比,也考察了二者的组合应用效果。结果表明,我们的可测试性估计捕捉到了可测试性的互补维度,能够与基于软件度量的方法协同融合,从而提升预测精度。