Book ChapterDOI
State coverage: software validation metrics beyond code coverage
Dries Vanoverberghe,Jonathan de Halleux,Nikolai Tillmann,Frank Piessens +3 more
- Vol. 7147, pp 542-553
TLDR
State coverage as discussed by the authors is a metric that measures the ratio of state updates that are read by assertions with respect to the total number of updates, and presents efficient algorithms to measure state coverage.Abstract:
Currently, testing is still the most important approach to reduce the amount of software defects. Software quality metrics help to prioritize where additional testing is necessary by measuring the quality of the code. Most approaches to estimate whether some unit of code is sufficiently tested are based on code coverage, which measures what code fragments are exercised by the test suite. Unfortunately, code coverage does not measure to what extent the test suite checks the intended functionality.
We propose state coverage , a metric that measures the ratio of state updates that are read by assertions with respect to the total number of state updates, and we present efficient algorithms to measure state coverage. Like code coverage, state coverage is simple to understand and we show that it is effective to measure and easy to aggregate. During a preliminary evaluation on several open-source libraries, state coverage helped to identify multiple unchecked properties and detect several bugs.read more
Citations
More filters
Journal ArticleDOI
Software test-code engineering: A systematic mapping
TL;DR: The results of the systematic mapping can help researchers to obtain an overview of existing STCE approaches and spot areas in the field that require more attention from the research community.
Proceedings ArticleDOI
Improving oracle quality by detecting brittle assertions and unused inputs in tests
Chen Huo,James Clause +1 more
TL;DR: A new technique for automatically analyzing test oracles is presented, based on dynamic tainting and detects both brittle assertions—assertions that depend on values that are derived from uncontrolled inputs—and unused inputs—inputs provided by the test that are not checked by an assertion.
Proceedings ArticleDOI
Transferring an automated test generation tool to practice: from pex to fakes and code digger
TL;DR: The technology background, tool overview, impacts, project timeline, and lessons learned from the Pex project are discussed and it is hoped that the reported experiences can inspire more high-impact technology-transfer research from the research community.
Proceedings ArticleDOI
Interpreting Coverage Information Using Direct and Indirect Coverage
Chen Huo,James Clause +1 more
TL;DR: A new approach for interpreting coverage information is proposed, based on the concepts of direct coverage and indirect coverage, that is effective at helping testers improve the quality of their test suites by directing them to insufficiently tested code.
Journal ArticleDOI
Statement frequency coverage: A code coverage criterion for assessing test suite effectiveness
TL;DR: This paper incorporated the frequency of executed statements into statement coverage and created a coverage-based criterion for assessing test suite effectiveness named statement frequency coverage, which outperforms statement and branch coverage in terms of correlation with mutation score.
References
More filters
Book
A metrics suite for object oriented design
TL;DR: This research addresses the needs for software measures in object-orientation design through the development and implementation of a new suite of metrics for OO design, and suggests ways in which managers may use these metrics for process improvement.
Book
A complexity measure
TL;DR: In this paper, a graph-theoretic complexity measure for managing and controlling program complexity is presented. But the complexity is independent of physical size, and complexity depends only on the decision structure of a program.
Journal ArticleDOI
A Complexity Measure
TL;DR: Several properties of the graph-theoretic complexity are proved which show, for example, that complexity is independent of physical size and complexity depends only on the decision structure of a program.
Journal ArticleDOI
Constructing Induction Rules for Deductive Synthesis Proofs
TL;DR: It is shown that a combination of rippling and the use of meta-variables as a least-commitment device can provide novelty in induction rule construction techniques that can introduce novel recursive structures.
Journal ArticleDOI
Symbolic execution and program testing
TL;DR: A particular system called EFFIGY which provides symbolic execution for program testing and debugging is described, which interpretively executes programs written in a simple PL/I style programming language.
Related Papers (5)
State coverage: a structural test adequacy criterion for behavior checking
Kenneth Koster,David C. Kao +1 more
Optimizing compilation with preservation of structural code coverage metrics to support software testing
Raimund Kirner,Walter Haas +1 more