A Generative Neural Network Framework for Automated Software Testing

06/29/2020
by   Leonid Joffe, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/25/2019

Testing Neural Program Analyzers

Deep neural networks have been increasingly used in software engineering...
research
05/27/2019

Towards Automated Boundary Value Testing with Program Derivatives and Search

A natural and often used strategy when testing software is to use input ...
research
12/12/2018

Differentially Testing Soundness and Precision of Program Analyzers

In the last decades, numerous program analyzers have been developed both...
research
04/15/2020

Evaluation of Generalizability of Neural Program Analyzers under Semantic-Preserving Transformations

The abundance of publicly available source code repositories, in conjunc...
research
12/21/2020

Program State Abstraction for Feedback-Driven Fuzz Testing using Likely Invariants

Fuzz testing proved its great effectiveness in finding software bugs in ...
research
09/24/2021

Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning

Past research has proposed numerous hardware prefetching techniques, mos...
research
04/21/2017

Making Neural Programming Architectures Generalize via Recursion

Empirically, neural networks that attempt to learn programs from data ha...

Please sign up or login with your details

Forgot password? Click here to reset