DRIFT: Deep Reinforcement Learning for Functional Software Testing
This addresses the problem of inefficient and expensive human testing for software developers, though it appears incremental as it applies existing RL methods to a specific domain.
The authors tackled automated functional software testing by proposing DRIFT, a reinforcement learning framework that uses Q-learning with a Graph Neural Network on symbolic UI representations, and demonstrated it can robustly trigger desired functionalities in Windows 10 applications.
Efficient software testing is essential for productive software development and reliable user experiences. As human testing is inefficient and expensive, automated software testing is needed. In this work, we propose a Reinforcement Learning (RL) framework for functional software testing named DRIFT. DRIFT operates on the symbolic representation of the user interface. It uses Q-learning through Batch-RL and models the state-action value function with a Graph Neural Network. We apply DRIFT to testing the Windows 10 operating system and show that DRIFT can robustly trigger the desired software functionality in a fully automated manner. Our experiments test the ability to perform single and combined tasks across different applications, demonstrating that our framework can efficiently test software with a large range of testing objectives.