Automated Support for Unit Test Generation
Book chapter, 2023

Unit testing is a stage of testing where the smallest segment of code that can be tested in isolation from the rest of the system—often a class—is tested. Unit tests are typically written as executable code, often in a format provided by a unit testing framework such as pytest for Python. Creating unit tests is a time and effort-intensive process with many repetitive, manual elements. To illustrate how AI can support unit testing, this chapter introduces the concept of search-based unit test generation. This technique frames the selection of test input as an optimization problem—we seek a set of test cases that meet some measurable goal of a tester—and unleashes powerful metaheuristic search algorithms to identify the best possible test cases within a restricted timeframe. This chapter introduces two algorithms that can generate pytest-formatted unit tests, tuned towards coverage of source code statements. The chapter concludes by discussing more advanced concepts and gives pointers to further reading for how artificial intelligence can support developers and testers when unit testing software.

Author

Afonso Fontes

University of Gothenburg

Gregory Gay

University of Gothenburg

Francisco Gomes

University of Gothenburg

Robert Feldt

University of Gothenburg

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering (Chalmers)

Natural Computing Series

1619-7127 (ISSN)

Vol. Part F1169 179-219

Subject Categories

Software Engineering

Computer Science

DOI

10.1007/978-981-19-9948-2_7

More information

Latest update

7/11/2024