Errors get introduced during the software process for various reasons, such as missed or misunderstood requirements, poor processes, and undetected mistakes. The errors that reach the customers are called ‘defects’. From the customer’s perspective, defects indicate poor quality of the product. For delivering good-quality software products, it is, therefore, necessary to detect and remove the errors.
Testing is a useful quality filter for detecting errors so that they can be removed. It is an integral part of the software process and is considered necessary for producing good-quality software.
An Introduction to Software Testing course includes:
- The Importance of Software Testing
- The Objectives and Principles of Software Testing
- The Limitations of Software Testing
This course has been co-authored by the internationally recognized consultant and authority on software engineering—Dr. Roger S. Pressman.
This course will enable you to:
- Explain the importance of software testing.
- Explain the objectives and principles of software testing.
- Explain the limitations of software testing.
You receive a certificate of completion after successfully completing this course.
Software testing is an integral part of the software process. Software testing course includes four core activities—analysis, design, coding, testing—required to build software.
The primary objective of testing is to detect errors while executing code. Tests are considered successful when they detect a high number of errors. Testing can also be used to demonstrate that requirements are met. However, if no errors are detected while testing software, it does not mean that the code is error-free.
Testing should be planned for based on certain principles. These principles are:
- Testing must be traceable to the requirements.
- Testing should be planned for early in a software process.
- Testing efforts should be based on data about the errors detected.
- Testing should be incremental.
- Testing should focus on exceptions.
- Debugging should be planned for separately so that there is enough time and budget to understand and resolve bugs.
Testing also has some limitations that should be taken into account to set realistic expectations about its benefits.
Testing has to be selective because there are too many possible paths and test cases for any program to be tested exhaustively. Selective testing could result in some aspects remaining untested and some errors not being uncovered. The tests themselves may have bugs and result in errors remaining undetected. Although testing detects errors, it cannot be used to build quality. Quality has to be built into the software by using good software engineering practices such as reviews during analysis, design, and coding. Testing is not cost-effective because by the time tests can be executed, the errors introduced in the earlier phases amplify. Removing the errors later in the software process is more expensive.
Software testing is a very important quality filter and needs to be planned taking into account its objectives, principles, and limitations. Planning for testing is essential because it is often performed at a stage when the project schedule and budget pressures are high. If testing is not planned for, it may be skipped, resulting in poorer quality of the software being delivered.