Mark Last

Senior Academic

Using a neural network in the software testing process

Meenakshi Vanmali, Mark Last, Abraham Kandel

Software testing forms an integral part of the software development life cycle. Since the objective of testing is to ensure the conformity of an application to its specification, a test "oracle" is needed to determine whether a given test case exposes a fault or not. Using an automated oracle to support the activities of human testers can reduce the actual cost of the testing process and the related maintenance costs. In this paper, we present a new concept of using an artificial neural network as an automated oracle for a tested software system. A neural network is trained by the backpropagation algorithm on a set of test cases applied to the original version of the system. The network training is based on the "black-box" approach, since only inputs and outputs of the system are presented to the algorithm. The trained network can be used as an artificial oracle for evaluating the correctness of the output produced by new and possibly faulty versions of the software. We present experimental results of using a two-layer neural network to detect faults within mutated code of a small credit approval application. The results appear to be promising for a wide range of injected faults.

Publication language English
Pages 45-62
Journal International Journal of Intelligent Systems
Volume 17
Issue number 1
Publication status Published - 01.01.2002

ASJC Scopus subject areas

Software
Theoretical Computer Science
Human-Computer Interaction
Artificial Intelligence
Access to Document
10.1002/int.1002
Other files and links
Link to publication in Scopus