Production Monitoring to Improve Test Suites
This work addresses the problem of improving test suite quality for developers by leveraging production execution data, which is an incremental improvement to existing testing methodologies.
This paper introduces PANKTI, a system that monitors Java applications in production to automatically generate differential unit tests and oracles. PANKTI successfully generates tests that improve the quality of existing test suites for methods not covered or poorly tested.
In this paper, we propose to use production executions to improve the quality of testing for certain methods of interest for developers. These methods can be methods that are not covered by the existing test suite, or methods that are poorly tested. We devise an approach called PANKTI which monitors applications as they execute in production, and then automatically generates differential unit tests, as well as derived oracles, from the collected data. PANKTI's monitoring and generation focuses on one single programming language, Java. We evaluate it on three real-world, open-source projects: a videoconferencing system, a PDF manipulation library, and an e-commerce application. We show that PANKTI is able to generate differential unit tests by monitoring target methods in production, and that the generated tests improve the quality of the test suite of the application under consideration.