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 ,
  • ,
  • 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.