Wednesday, 1 January 2014
Importance of the Software Testing Phase in Systems Development Life Cycle (SDLC)
Types of Testing Procedures
Testing software can benefit a company in more ways than can be imagined. Once the software developers' commitments towards testing have been realized, they should begin to explore what testing really incorporates. The testing process is a system of its own and requires time, effort and patience. Furthermore, the software developers should be qualified enough to tell when the respective component of a software should be cleared or when it needs more time to assess. Therefore, the testing process has to be comprehensive and conclusive. Here are some of the most crucial phases of the testing process that leading companies around the world can use to good effect:
Phase-Oriented Testing- This testing process evolves along with the software. The nature of a phase-driven testing process changes with the development of the software and the progress of the project. The smaller components of the software as well as the entire software system are checked for anomalies. Phase oriented testing process has the following salient features:
1. Unit testing- in this phase, the smaller components of the software are tested before they can be amalgamated together to form the bigger system.
2. Integration testing- this is the phase where the amalgamated units are examined in behaviour, functioning and compatibility so that it can be determined if they can all co-exist in harmony.
3. System testing- This process tests the amalgamated software in relation to the overall system it supports.
Goal-Oriented Testing- In this testing process, what is most important to the software team is the reason why the testing process is necessary and why it is being conducted.
These reasons fall in the following four categories:
A. Requirements- Requirement driven testing ensures that all the requirements defined and listed by the client have been met. By constructing test cases, all the requirements are reviewed at least one time before the software is forwarded for final approval. In general, software developers take the help of a custom-designed requirements-test platform so that each requirement can be reviewed with a corresponding test. As of late, testing the software for requirements is a necessary prerequisite for final approval of the software.
B. Structure- The logical structure of software also plays a crucial role in defining its behaviour. Therefore, software developers construct appropriate test cases that allow them to scrutinize the logical structure of the developed software. Although requirements-driven testing and structure-driven testing share strikingly similar characteristics, they do not supplement each other and are not interchangeable. Elaborate structure-testing usually involves careful examination of 70 percent of the logical structure of software although a higher examination rate of 95 percent can also be achieved with ease.
C. Stats- As the name suggests, stats testing requires comprehensive testing of all the facets of software so that a detailed report or log can be generated on its performance. This log records a wide range of statistical data represents how many times a particular component of a software malfunctioned or how frequently the software encountered a certain problem. The advantage of maintaining a log is that it serves as evidence to convince the customer that the software underwent comprehensive testing. In fact, stats-testing is the only method that actually successfully convinces the customer that the software is complete for dependable use.
D. Risk- Risk-driven testing is generally used for critical software. It involves subjecting the software to tests until the testers are convinced that it will pass all worst-case scenarios. The software developers also maintain a logged analysis of the highest risk occurrences. In the next phase, the software is forwarded for inspection so that it can be determined the frequency and regularity of its contributions to discovered risks. A final comprehensive testing of the software is then carried out.
Selecting which process to adopt when testing the software for anomalies is more a matter of choice than a decision as both have their pros and cons. In the end, it is only important to consider what aspects of the software need a more thorough examination. Once the software developers have successfully identified the various components of the software that require more careful scrutiny, the appropriate method may be selected.
Author: Bernard Shorthouse