DRIFT: Deep Reinforcement Learning for Functional Software Testing
- Luke Harries ,
- Rebekah Storan-Clarke ,
- Timothy Chapman ,
- Swamy V. P. L. N. Nallamalli ,
- Levent Ozgur ,
- Shuktika Jain ,
- Alex Leung ,
- Steve Lim ,
- Aaron Dietrich ,
- Jose Miguel Hernandez Lobato ,
- Tom Ellis ,
- Cheng Zhang ,
- Kamil Ciosek
NeurIPS 2019 |
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.