O'Reilly logo

Software Testing: Concepts and Operations by Fairouz Tchier, Ali Mili

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6 Failures, Errors, and Faults

To the extent that software testing is the task of finding and removing faults in programs, the study of software testing requires that we study the nature and properties of faults; these are usually viewed as part of a hierarchy that also includes errors and failures; hence the subject of this chapter.

6.1 FAILURE, ERROR, AND FAULT

Now that we know what a correct program is, we can easily define what a program failure is: it is any behavior of the program that belies, or is in contradiction with, its claim of correctness with respect to a given specification. Defining errors or faults is more complicated, because it relies on detailed design knowledge that has no officially sanctioned existence (in the way that a specification is an officially sanctioned document, which is part of the lifecycle deliverables), except possibly in the mind of the designer.

We use a simple example to introduce these concepts and then we present tentative definitions thereof. Let S be the space defined by a variable of type integer, and let R be the following specification:

images

and let p be the following program on space S:

{s=s+1;    // line 1
  s=2*s;   // line 2
  s = s % 3; // line 3
  s=s+12;}   // line 4

Given the expression that the specification mandates to compute, we would expect the candidate program to add 1 to s, then compute the square of the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required