EverTest: Continual Learning for System level Software Testing
People
(Responsible)
Abstract
System-level testing is an essential activity to prevent critical issues from reaching the end users. Manually writing system-level tests is a laborious and expensive task, and automated test generators are promising tools that help to reduce the testing effort. However, current system-level test generators are not designed to deal with the evolution of the system they are testing. Moreover, they generate static tests consisting of sequences of precise instructions to interact with the system, which easily break when the system evolves and need to be manually maintained. Our project EverTest, aims to address both limitations, by proposing a testing agent that co-evolves with the system under test. Upon the system's evolution, the agent reuses its knowledge from its previous testing interactions with the system, to exercise the newly introduce features, while maintaining its ability to test the unchanged ones. The testing agent replaces the system-level test suite, allowing developers to exercise specific behaviors throughout the system's evolution. The testing agent is easier to maintain and update than a static test suite, as its internal knowledge is automatically updated during training.