Test effectiveness refers to the capability of a test suite in exposing faults in software. It is crucial to be aware of factors that influence this capability. We aim at inferring the causal relationship between the two factors (i.e., Cover/Exec) and the capability of a test suite to expose and discover faults in software. Cover refers to the number of distinct test cases covering the statement and Exec equals the number of times a test suite executes a statement. We analyzed 459166 software faults from {12} Java programs. Bayesian statistics along with the back-door criterion was exploited for the purpose of causal inference. Furthermore, we examined the common pitfall measuring association, the mixture of causal and noncausal relationships, instead of causal association. The results show that Cover is of more causal association as against \textit{Exec}, and the causal association and noncausal one for those variables are statistically different. Software developers could exploit the results to design and write more effective test cases, which lead to discovering more bugs hidden in software.
翻译:测试效果涉及测试套件在暴露软件故障方面的能力。了解影响这种能力的因素非常重要。我们旨在推断两个因素(分别为Cover/Exec)与测试套件在发现和暴露软件故障方面的能力之间的因果关系。Cover指覆盖语句的不同测试用例数量,Exec等于测试套件执行语句的次数。我们分析了{12}个Java程序的459166个软件故障。利用拟因识别法和贝叶斯统计模型用于因果推断。此外,我们还检查了常见的测量关联性的问题,即混合因果和非因果关系,而不是因果关联性。结果表明,Cover与Exec相比更具因果关联性,并且这些变量的因果关联和非因果关联是统计上不同的。软件开发人员可以利用这些结果来设计和编写更有效的测试用例,从而发现隐藏在软件中的更多错误。