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

Full description

Saved in:
Bibliographic Details
Main Authors: Harries, Luke, Clarke, Rebekah Storan, Chapman, Timothy, Nallamalli, Swamy V. P. L. N, Ozgur, Levent, Jain, Shuktika, Leung, Alex, Lim, Steve, Dietrich, Aaron, Hernández-Lobato, José Miguel, Ellis, Tom, Zhang, Cheng, Ciosek, Kamil
Format: Journal Article
Language:English
Published: 16-07-2020
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary: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.
DOI:10.48550/arxiv.2007.08220