SEAug 29, 2017

Freeing Testers from Polluting Test Objectives

arXiv:1708.08765v131 citations
Originality Incremental advance
AI Analysis

This addresses the challenge for software testers in designing efficient test suites by reducing wasted effort on infeasible objectives, though it is incremental as it builds on existing verification methods.

The paper tackles the problem of inefficient test suites by introducing a formal technique that prunes infeasible and redundant test objectives, achieving up to 27% reduction in objectives and scaling to 200K lines of code.

Testing is the primary approach for detecting software defects. A major challenge faced by testers lies in crafting efficient test suites, able to detect a maximum number of bugs with manageable effort. To do so, they rely on coverage criteria, which define some precise test objectives to be covered. However, many common criteria specify a significant number of objectives that occur to be infeasible or redundant in practice, like covering dead code or semantically equal mutants. Such objectives are well-known to be harmful to the design of test suites, impacting both the efficiency and precision of testers' effort. This work introduces a sound and scalable formal technique able to prune out a significant part of the infeasible and redundant objectives produced by a large panel of white-box criteria. In a nutshell, we reduce this challenging problem to proving the validity of logical assertions in the code under test. This technique is implemented in a tool that relies on weakest-precondition calculus and SMT solving for proving the assertions. The tool is built on top of the Frama-C verification platform, which we carefully tune for our specific scalability needs. The experiments reveal that the tool can prune out up to 27% of test objectives in a program and scale to applications of 200K lines of code.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes