Assessing test quality
Assessing test quality
复制标题
评估测试质量
DOI:
--
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
David Schuler
中科院分区:
文献类型:
--
作者:
David Schuler
When developing tests, one is interested in creating tests of good quality that thoroughly test the program. This work shows how to assess test quality through mutation testing with impact metrics, and through checked coverage. Although there a different aspects that contribute to a test’s quality, the most important factor is its ability to reveal defects, because software testing is usually carried out with the aim to detect defects. For this purpose, a test has to provide inputs that execute the defective code under such conditions that it causes an infection. This infection has to propagate and result in a failure, which can be detected by a check of the test. In the past, the aspect of test input quality has been extensively studied while the quality of checks has received less attention. The traditional way of assessing the quality of a test suite’s checks is mutation testing. Mutation testing seeds artificial defects (mutations) into a program, and checks whether the tests detect them. While this technique effectively assesses the quality of checks, it also has two drawbacks. First, it places a huge demand on computing resources. Second, equivalent mutants, which are mutants that are semantically equivalent to the original program, dilute the quality of the results. In this work, we address both of these issues. We present the JAVALANCHE framework that applies several optimizations to enable automated and efficient mutation testing for real-life programs. Furthermore, we address the problem of equivalent mutants by introducing impact metrics to detect non-equivalent mutants. Impact metrics compare properties of tests suite runs on the original program with runs on mutated versions, and are based on abstractions over program runs such as dynamic invariants, covered statements, and return values. The intention of these metrics is that mutations that have a graver influence on the program run are more likely to be non-equivalent. Moreover, we introduce checked coverage, an alternative approach to measure the quality of a test suite’s checks. Checked coverage determines the parts of the code that were not only executed, but that actually contribute to the results checked by the test suite, by computing dynamic backward slices from all explicit checks of the test suite.
DOI:
10.1109/icstw.2011.57
发表时间:
2011-03
期刊:
2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops
影响因子:
--
作者:
Jaechang Nam;David Schuler;A. Zeller
通讯作者:
Jaechang Nam;David Schuler;A. Zeller
DOI:
10.1109/icst.2011.32
发表时间:
2011-03
期刊:
2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
影响因子:
--
作者:
David Schuler;A. Zeller
通讯作者:
David Schuler;A. Zeller