Error, Bug, Fault, Defect, Failure, Test case, Test suite in software engineering
Error : Error is a discrepancy between actual value of the output given by the software and the specified correct value of the output for that given input. That is, error refers to the difference between the actual output of software and the correct output. Error is also used to refer to the decision in a given case as compared to what is expected to be the right one. Error also refers to human actions that result in software containing a defect or fault.
Errors can be classified in two categories :
- Syntax Error : A syntax error is a program statement that violates one or more rules of the language in which it is written.
- Logic Error : A logic error deals with incorrect data fields, out of range terms and invalid combinations.
The number of faults in software is the difference between the number introduced and the number removed. Faults are introduced when the code is being developed by programmers. They may introduce the faults during original design or when they are adding new features, making design changes or repairing faults that have been indentified.
Failure : Failure is the inability of the software to perform a required function to its specification. In other words, when software goes ahead in processing without showing error or fault even though certain input and process specification are violated, then it is called software failure.
A software failure occurs when the behavior of software is different from the required behavior. A failure is produced only when there is a fault in the system. In other words, faults have the potential to cause failures and their presence is a necessary but not a sufficient condition for failure to occur. Defect : A software defect is a variance from a desired product attribute. They can appear in -
- The Code.
- The supporting manuals,
- The documentation.
- Variance of the software product from its specifications.
- Variance of the software product from customer/user requirement
- Wrong : Incorrect implementation of product specification gives rise to this categories of defects ( Error due to Omission).
- Extra : Incorporation of a feature that does not appear on software specification ( Error due to Commission ).
- Missing : Absence of a product specification feature or of a requirement that was expressed by the customer/user late in the development phase (Error due to Ignorance ).
A bug is not the only king of problem a program can have. A program can run bug free and still be difficult to use or fail in some major objective. This kind of flow is more difficult to test.
Test Case : A test case is a set of inputs execution conditions and expected results. The term input is used in a very broad sense which may include all kinds of stimuli that contribute to determining program behavior. For example, An interrupt is as much an input as is a file.
Test Suite : A test suite is a set of test cases typically, a method for functional testing is concerned is used with creating a test suit. A test suite for a program, a system or an individual unit may be made up of several suite for individual ITFs.