Abstract

Unit tests are becoming popular. Are there ways to automate the generation of good unit tests? Parameterized unit tests are unit tests that depend on inputs. PUTs describe behavior more concisely than traditional unit tests. We use symbolic execution techniques and constraint solving to find inputs for PUTs that achieve high code coverage, to turn existing unit tests into PUTs, and to generate entirely new PUTs that describe an existing implementation's behavior. Traditional testing benefits from these techniques because test inputs - including the behavior of entire classes - can often be generated automatically from compact PUTs

Keywords

Unit testingParameterized complexityComputer scienceSymbolic executionUnit (ring theory)Keyword-driven testingProgramming languageWhite-box testingConstraint (computer-aided design)Concolic testingIntegration testingTest strategyCode coverageCode (set theory)Software engineeringSoftwareAlgorithmEngineeringSet (abstract data type)Software developmentSoftware constructionMathematics

Affiliated Institutions

Related Publications

<i>Gaia</i>Data Release 1

Context. Before the publication of the Gaia Catalogue, the contents of the first data release have undergone multiple dedicated validation tests. Aims. These tests aim to provid...

2017 Astronomy and Astrophysics 383 citations

Publication Info

Year
2006
Type
article
Volume
23
Issue
4
Pages
38-47
Citations
74
Access
Closed

Social Impact

Social media, news, blog, policy document mentions

Citation Metrics

74
OpenAlex
2
Influential
45
CrossRef

Cite This

Nikolai Tillmann, Wolfram Schulte (2006). Unit tests reloaded: parameterized unit testing with symbolic execution. IEEE Software , 23 (4) , 38-47. https://doi.org/10.1109/ms.2006.117

Identifiers

DOI
10.1109/ms.2006.117

Data Quality

Data completeness: 77%