Saturday, July 4, 2009

General Testing Principles

Software testing is an extremely creative and intellectually challenging task. The following are some important principles that should be kept in mind while carrying software testing.

General Testing Principles

  • Testing should be based on user requirements
Testing is in order to uncover any defects that might cause the program or system to fail to meet the client’s requirements

  • Testing time and resources are limited
Avoid redundant tests

  • It is impossible to test everything
Exhaustive tests of all possible scenarios are impossible, simple because of the many different variables affecting the system and the number of paths a program flow might take

  • Use effective resources to test
This represents use of the most suitable tools, procedures and individuals to conduct the tests. The test team should use tools that they are confident and familiar with testing procedures should be clearly defined. Testing personnel may be a technical group of people independent of the developers.

  • Test planning should be done early.
This is because test planning can begin independently of coding and as soon as the client requirements are set.

  • Test for invalid and unexpected input conditions as well as valid conditions.
The program should generate correct messages when an invalid test is encountered and should generate correct results when the test in valid.

  • The probability of the existence of more errors in a module or group of modules to directly proportional to the number of errors already found.

  • Testing should begins at the module
The focus of testing should be concentrated on the smallest programming units first and then expand to other parts of the system.

  • Testing must be done by an independent party.
Testing should not be performed by the person or team that developed the software since they tend to defend the correctness of the program.

  • Assign best personnel to the task.
Because testing requires high creativity and responsibility only the best personnel must be assigned to design, implement, and analyze test cases, test data and test results.

  • Testing should not be planned under the implicit assumption that no errors will be found.
Testing is the process of executing software with the intent of finding errors.

  • Keep software static during test.
The program must not be modified during the implementation of the set of designed test cases.

  • Document test cases and test results.

  • Provide expected test results if possible.
A necessary part of test documentation is the specification of expected results, even if providing such results is impractical.

No comments: