7 principles of software testing

Sonu Tewatia
2 min readJan 13, 2021

--

Software testing is a critical component of the software engineering process. It is an element of software quality assurance and can be described as a process of running a program in such a manner as to uncover any errors. This process, while seen by some as tedious, tiresome, and unnecessary, plays a role in software development.

The process of software testing involves creating test cases to “break the system” but before these can be designed, a few principles have to be observed:

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.

  • Testing should be based on user requirements. This 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, simply 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 the 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 peoples independent of the developers.
  • Test planning should be done early. This is because test planning can begin independently of coding and soon as the client requirements are set.
  • The probability of the existence of more errors in a module or group of modules is directly proportional to the number of errors already found.
  • Testing should begin 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 the 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 the software with the intent of finding errors.
  • Keep software static during tests. 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 the test documentation is the specification of expected results, even if providing such results is impractical.

Originally published at https://www.csmates.com.

--

--

Sonu Tewatia

Software Engineer | Content Writer | Programmer | System Admin | Linux Administration |