Software Testing
Definition of Testing
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.
The purpose of software testing is to ensure whether the software functions appear to be working according to specifications and performance requirements.
Testing Objectives
According to Glen Myers the testing objectives are
- Testing is a process of executing a program with the intend of finding an error.
- A good test case is one that has high probability of finding an undiscovered error.
- A successful test is one that uncovers an as-yet undiscovered error.
The major testing objective is to design that systematically uncover types of errors with minimum time and efforts.
Testing Principles
Every software engineer must apply following testing principles while performing the software testing :
- All tests should be traceable to customer requirements.
- Tests should be planned long before testing begins.
- The Pareto principle can be applied to software testing – 80% of all errors uncovered during testing will likely be traceable to 20% of all program modules.
- Testing should begin “in the small” and progress toward testing “in the large”.
- Exhaustive testing is not possible.
- To be most effective, testing should be conducted by an independent third party.
Why Testing is important ?
§ Generally, testing is a process that requires more efforts than any other software engineering activity.
§ Testing is a set of activities that can be planned in advance and conducted systematically.
§ If it is conducted haphazardly, then only time will be wasted and more even worse errors may get introduced.
§ This may lead to have many undetected errors in the system being developed. Hence performing testing by adopting syst5ematic strategies is very much essential in during development of software.