A Strategic Approach to Software Testing

Generic characteristics of software testing

  • To perform effective testing, you should conduct effective technical reviews. By doing this, many errors will be eliminated before testing commences.

  • Testing begins at the component level and works “outward” toward the integration of the entire computer-based system.

  • Different testing techniques are appropriate for different software engineering approaches and at different points in time.

  • Testing is conducted by the developer of the software and (for large projects) an independent test group.

  • Testing and debugging are different activities, but debugging must be accommodated in any testing strategy.

1. Verification and validation

Verification and validation are two important aspects of the software testing process. Though these two phrases seem to have similar definitions, but there exists huge difference between them.

Verification is the process of ensuring that the given software satisfies almost all the credentials which were laid prior to its (software’s) development.
Validation is the process of ensuring that the given software satisfies the customer requirements.

Verification

It checks whether a product is being built in right way or not.

Validation

It checks whether the right product is being developed or not.

Hence, in order to ensure that the given software is correct in all aspects, then it has to satisfy the verification and validation process successfully.

Verification and Validation or V and V activities for developing a software include,

  • (i) Formal Technical Reviews (FTR)

  • (ii) Performance monitoring

  • (iii) Quality and configuration audits

  • (iv) Feasibility study

  • (v) Simulation

  • (vi) Algorithm analysis

  • (vii) Database review

  • (viii) Documentation review

  • (ix) Usability, qualification and installation testing

The equation depicting the relation between verification and validation with respect to testing is,

T = V + Va
Where,
T – Testing process
V – Verification
Va – Validation

However, testing is highly validation oriented. Both verification and validation use test case design methods and test strategies for software testing.
The unit and integration testing strategies are used for verification purpose, whereas the validation and system testing strategies are used for validation purpose.

2. Organizing for software testing

  • The software developer is always responsible for testing the individual units of the program

  • The developer also conducts integration testing

  • Only after the software architecture is complete does an independent test group become involved

  • The role of an independent test group (ITG) is to remove the inherent problems associated with letting the builder test the things that have been built

  • Independent testing removes the conflict of interest that may otherwise be present

  • The developer and the ITG work closely throughout a software project to ensure that thorough tests will be conducted

  • While testing is conducted, the developer must be available to correct errors that are uncovered

3. Software testing strategy

software testing

4. Criteria for completion of testing

  • The Cleanroom software engineering approach suggests statistical use of techniques, that executes a series of tests derived from a statistical sample of all possible program executions by all users from a targeted population.