Appendix A: Testing Terminology

Industry-accepted definitions exist for software errors and defects (faults), found in the ANSI/IEEE, Glossary of Software Engineering Terminology, are listed in Table A1.

Table A1 - IEEE Software Engineering Terminology [1]

Category Definition
Error The difference between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition.
Fault An incorrect step, process, or data definition in a computer program.
Debug To detect, locate, and correct faults in a computer program.
Failure The inability of a system or component to perform its required functions within specified performance requirements. It is manifested as a fault.
Testing The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software items.
Static analysis The process of evaluating a system or component based on its form, structure, content, or documentation.
Dynamic analysis The process of evaluating a system or component based on its behavior during execution.
Correctness $\bullet$ The degree to which a system or component is free from faults in its specification, design, and implementation.
$\bullet$ The degree to which software, documentation, or other items meet specified requirements.
$\bullet$ The degree to which software, documentation, or other items meet user needs and expectations, whether specified or not.
Verification $\bullet$ The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.
$\bullet$ Formal proof of program correctness.
Validation The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.

esmf_support@ucar.edu