When you create test plans and estimate the testing effort and schedule, you must keep these factors in mind otherwise your plans and estimates will mislead you at the beginning of the project and betray you at the middle or end.
The test strategies or approaches you pick will have a major influence on the testing effort. In this section, let’s look at factors related to the product, the process and the results of testing.
In Product factors the presence of sufficient project documentation is important so that the testers can figure out what the system is, how it is supposed to work and what correct behavior looks like. This will help us do our job more efficiently.
The factors which affect the test effort are:
- While good project documentation is a positive factor, it’s also true that having to produce detailed documentation, such as meticulously specified test cases, results in delays. During test execution, having to maintain such detailed documentation requires lots of effort, as does working with fragile test data that must be maintained or restored frequently during testing.
- Increasing the size of the product leads to increases in the size of the project and the project team. Increases in the project and project team increases the difficulty of predicting and managing them. This leads to the disproportionate rate of collapse of large projects.
- The life cycle itself is an influential process factor, as the V-model tends to be more fragile in the face of late change while incremental models tend to have high regression testing costs.
- Process maturity, including test process maturity, is another factor, especially the implication that mature processes involve carefully managing change in the middle and end of the project, which reduces test execution cost.
- Time pressure is another factor to be considered. Pressure should not be an excuse to take unwarranted risks. However, it is a reason to make careful, considered decisions and to plan and re-plan intelligently throughout the process.
- People execute the process, and people factors are as important or more important than any other. Important people factors include the skills of the individuals and the team as a whole, and the alignment of those skills with the project’s needs. It is true that there are many troubling things about a project but an excellent team can often make good things happen on the project and in testing.
- Since a project team is a team, solid relationships, reliable execution of agreed-upon commitments and responsibilities and a determination to work together towards a common goal are important. This is especially important for testing, where so much of what we test, use, and produce either comes from, relies upon or goes to people outside the testing group. Because of the importance of trusting relationships and the lengthy learning curves involved in software and system engineering, the stability of the project team is an important people factor, too.
- The test results themselves are important in the total amount of test effort during test execution. The delivery of good-quality software at the start of test execution and quick, solid defect fixes during test execution prevents delays in the test execution process. A defect, once identified, should not have to go through multiple cycles of fix/retest/re-open, at least not if the initial estimate is going to be held to.