Bridging the Gap between Unit Test Generation and System Test Generation

06/04/2019
by   Alexander Kampmann, et al.
0

Common test generators fall into two categories. Generating test inputs at the unit level is fast, but can lead to false alarms when a function is called with inputs that would not occur in a system context. If a generated input at the system level causes a failure, this is a true alarm, as the input could also have come from the user or a third party; but system testing is much slower. In this paper, we introduce the concept of a test generation bridge, which joins the accuracy of system testing with the speed of unit testing. A Test Generation Bridge allows to combine an arbitrary system test generator with an arbitrary unit test generator. It does so by carving parameterized unit tests from system (test) executions. These unit tests run in a context recorded from the system test, but individual parameters are left free for the unit test generator to systematically explore. This allows symbolic test generators such as KLEE to operate on individual functions in the recorded system context. If the test generator detects a failure, we lift the failure-inducing parameter back to the system input; if the failure can be reproduced at the system level, it is reported as a true alarm. Our BASILISK prototype can extract and test units out of complex systems such as a Web/Python/SQLite/C stack; in its evaluation, it achieves a higher coverage than a state-of-the-art system test generator.

READ FULL TEXT

page 2

page 4

page 5

page 6

page 7

page 11

page 12

page 13

research
12/19/2018

Carving Parameterized Unit Tests

We present a method to automatically extract ("carve") parameterized uni...
research
05/07/2023

No More Manual Tests? Evaluating and Improving ChatGPT for Unit Test Generation

Unit testing is essential in detecting bugs in functionally-discrete pro...
research
07/01/2023

Automatic Unit Test Generation for Deep Learning Frameworks based on API Knowledge

Many automatic unit test generation tools that can generate unit test ca...
research
04/06/2023

Covering All the Bases: Type-Based Verification of Test Input Generators

Test input generators are an important part of property-based testing (P...
research
05/08/2023

ChatUniTest: a ChatGPT-based automated unit test generation tool

Unit testing is a crucial, yet often tedious and time-consuming task. To...
research
06/14/2021

JUGE: An Infrastructure for Benchmarking Java Unit Test Generators

Researchers and practitioners have designed and implemented various auto...
research
08/28/2018

Does the Testing Level affect the Prevalence of Coincidental Correctness?

Researchers have previously shown that Coincidental Correctness (CC) is ...

Please sign up or login with your details

Forgot password? Click here to reset