DRIFT: Deep Reinforcement Learning for Functional Software Testing
  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.
