SEAINEOct 26, 2021

Automated Support for Unit Test Generation: A Tutorial Book Chapter

arXiv:2110.13575v12 citations
Originality Synthesis-oriented
AI Analysis

This is an incremental tutorial for developers and testers on using AI to automate repetitive unit testing tasks.

The chapter tackles the time-consuming process of unit test generation by introducing search-based techniques that frame it as an optimization problem, resulting in algorithms that generate pytest-formatted tests to cover source code statements.

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.

Foundations

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

Your Notes