scispace - formally typeset
Book ChapterDOI

State coverage: software validation metrics beyond code coverage

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

Content maybe subject to copyright    Report

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

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

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)