Using a neural network in the software testing process

Meenakshi Vanmali, Mark Last, Abraham Kandel

Research output: Contribution to journalArticlepeer-review

93 Scopus citations

Abstract

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.

Original languageEnglish
Pages (from-to)45-62
Number of pages18
JournalInternational Journal of Intelligent Systems
Volume17
Issue number1
DOIs
StatePublished - 1 Jan 2002
Externally publishedYes

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Human-Computer Interaction
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Using a neural network in the software testing process'. Together they form a unique fingerprint.

Cite this