Author Nimit Solanki explains the major differences between testing projects and development projects, and the life cycle of a testing project. He then identifies key areas that need change in order to better execute testing projects.
When the music changes, so does the dance.
Most of you will agree that software testing has changed from many perspectives over the period of time. It has changed in the way testing is being carried out; also, the importance of the phase itself has increased.
Most importantly, software testing has emerged as an area with a huge business potential. A few years ago, software testing was considered just as a phase of software development, which it exits to be at present also. But, as the software community has matured with time, it has discovered the importance of leasing software testing to third-party vendors. Now, we see that many companies get their software developed, and tested by different vendors. As a result, we see a lot many Software Testing Projects in the market.
With this development, it becomes important to understand the life cycle of a testing project.
This paper is an attempt towards
- Understanding that testing projects are different from development projects, and finding out the major differences between them
- Understanding the life cycle of a testing project.
- And identifying key areas needing change for better execution of testing projects.
Note: The paper does not aim at explaining technical matters related to testing.
The need to understand STPLC
We know that testing is a phase of Software Development Life Cycle (SDLC). But, when testing is leased to a third-party vendor, it becomes a project in itself for that vendor. And, it is very natural that a testing project is treated like most of the other development /maintenance projects. Most of the companies would be following a certain customized set of standards for executing projects, and would tend to enforce the same set of proven standards on the testing projects too.
But, at times they may find that the standards do not seem to work as well as they worked for other kind of projects.
Here arises the need to understand how testing projects are different from other projects, and then, going further, how they should be tackled for better results.
The most evident difference between a development project or a maintenance project, and a testing project is the phases of the projects. The phases of a testing project are completely different from the phases of a development or a maintenance project. This is the reason why methodologies, and standards need changes for better execution of testing projects.
The life cycle of a testing project is completely different from the life cycle of other projects. So, let us first understand Software Testing Project Life Cycle (STPLC).
Understanding Software Testing Project Life Cycle is not as difficult as the term itself. Most of you, who have worked on testing projects, know it very well either consciously or unconsciously.
For understanding STPLC, we just need to divide a testing project into logical phases. The phases of a general testing project are:
- Requirement /Spec Understanding
- Test case creation
- Test execution, and defect reporting
- Defect fixing by development-vendor
- Retesting fixed defects, and reporting
Let us understand each phase in detail:
1. Requirement /Spec Understanding
The first phase of any software-testing project is "requirement understanding" or "specification understanding". This phase involves going through the requirements document/functional specification document, and understanding the expected functioning of the software to be tested.
Adapting to the changes:
The requirements /specifications should be well documented. The client or developing vendor might have prepared these documents. If these documents are not available or not up-to-date, some mechanism should be devised to clarify what you really understand about the project you are going to test, and what and how