论文标题
用于自动软件测试的生成神经网络框架
A Generative Neural Network Framework for Automated Software Testing
论文作者
论文摘要
基于搜索的软件测试(SBST)是一种流行的自动化测试技术,它使用反馈机制来搜索软件中的故障。尽管它很受欢迎,但它仍面临与反馈的设计,构建和解释有关的基本挑战。近年来,神经网络(NN)在各种任务中都非常受欢迎。我们认为,他们可以解决常见SBST方法固有的许多问题。不幸的是,NNS需要大型且代表性的培训数据集。 在这项工作中,我们介绍了基于反逆处生成神经网络的SBST框架。它不仅保留了使NN适合SBST任务的有益品质,而且还产生了自己的培训数据,从而避免了获取限制NNS使用的培训数据集的问题。 我们通过一系列实验证明了这种体系结构是可能的和实用的。它在探索程序行为的空间时会产生多样化的明智的程序输入。它还可以对程序行为产生有意义的订购,并能够找到崩溃的执行。这一切都是在没有任何计划的任何先验知识的情况下完成的。 我们认为,此概念证明为在SBST和神经网络的交集中为未来工作打开了新的方向。
Search Based Software Testing (SBST) is a popular automated testing technique which uses a feedback mechanism to search for faults in software. Despite its popularity, it has fundamental challenges related to the design, construction and interpretation of the feedback. Neural Networks (NN) have been hugely popular in recent years for a wide range of tasks. We believe that they can address many of the issues inherent to common SBST approaches. Unfortunately, NNs require large and representative training datasets. In this work we present an SBST framework based on a deconvolutional generative neural network. Not only does it retain the beneficial qualities that make NNs appropriate for SBST tasks, it also produces its own training data which circumvents the problem of acquiring a training dataset that limits the use of NNs. We demonstrate through a series of experiments that this architecture is possible and practical. It generates diverse, sensible program inputs, while exploring the space of program behaviours. It also creates a meaningful ordering over program behaviours and is able to find crashing executions. This is all done without any prior knowledge of the program. We believe this proof of concept opens new directions for future work at the intersection of SBST and neural networks.