Software QA FYI - SQAFYI

An Overview of Common System and Software Testing Pitfalls

By: Donald G. Firesmith

1.1 What Is Testing?
Testing is the activity of executing a system, subsystem, or component under specific preconditions (for example, pretest mode, states, stored data, and external conditions) with specific inputs so that its actual behavior (outputs and postconditions) can be compared with its required or expected behavior.

Testing differs from other verification and validation methods (for example, analysis, demonstration, and inspection) in that it is a dynamic, as opposed to a static, analysis method that involves the actual execution of the thing being tested.

Testing has the following goals:
Primary goal:
Enable the system under test (SUT) to be improved by:
“Breaking” it (that is, by causing faults and failures)
Exposing its defects so that they can be fixed

Secondary goals:
Provide adequate confidence based on sufficient objective evidence regarding the SUT’s:

A system’s quality is not just its lack of defects or its correctness (in terms of meeting its requirements). A system must also have the necessary levels of relevant quality characteristics and attributes; for example, availability, capacity, extensibility, maintainability, performance, portability, reliability, robustness, safety, security, and usability.

Fitness for purpose
Readiness for shipping, deployment, or being placed into operation

1.2 Testing and the V Models
Figure 1.1 illustrates a common way of modeling system engineering: the traditional V Model of system engineering activities.1 On the left side of the V are the analysis activities that decompose the users’ problem into small, manageable pieces. Similarly, the right side of the V shows the synthesis activities that aggregate (and test) these pieces into the system that solves the users’ problem.

Full article...

Other Resource

... to read more articles, visit

An Overview of Common System and Software Testing Pitfalls