Testing is an integral phase of every project. What is not necessary, is the procrastination and anxiety that often accompany testing. The negative feelings surrounding testing are often the result of business pressures that do not give this phase due consideration, through lack of planning, neglect or poor monitoring. Making the testing phase a priority at a project’s beginning, combined with effective measuring, can make a project’s testing phase more effective and less panic-inducing.
When The Project Begins, Testing Begins: It’s never too early to start developing test phase artifacts. Assigning a Test Lead early in the project starts resources planning and sends a clear message that testing is important! Testing requirements can be captured from key stakeholders while developing business and functional requirements. This includes items, such as:
- Unit testing, component testing, smoke testing
- Regression testing, functional testing, integration testing
- Operational readiness / user acceptance testing
Effort-Based Planning: Ensure projects have allocated adequate time for each testing phase. Create an effort-based test plan and avoid “backing-in” to the due date. As project milestones are missed, the first suggestion to get back on schedule will be to reduce testing. The Test Lead should be ready to explain why testing resources should not be cut by detailing the risks of serious defects finding their way to production and affecting end users.
Measure to Manage: When a project runs behind schedule, the testing phase usually pays the price. Test cases and testing time are frequently cut to make a deadline. While cutting testing may enable the project team to make the implementation date, the decision invariably leads to increased production issues and rework during the warranty period.
Test coordinators need to argue effectively against this common practice. Recorded statistics on the time needed for regression, as well as an observed average for testing new functionality are effective data points a test coordinator can use to make their case. Metrics that can be captured include average time to write a test case, execute a test case, and analyze a defect. Armed with these data points, the testing team can make an informed decision between cutting testing time or moving a milestone.
Prepare the Testers: Testers should be informed of the different testing processes and make sure that success criteria are understood and agreed upon. Train your testers to be defect detectives, seeking out failures instead of validating the system works as designed.
Keep What Works: Test cases developed for new functionality can be kept and added to future test phases or test plans for future projects. Be sure to also include key data values for successful execution and validation such as dates, dollar amounts, and product codes. Maintaining a robust inventory of test cases and test data will save both time and effort in testing.
The testing phase of a project frequently produces unique challenges, but the stress of procrastination, confusion and detrimental cuts can largely be avoided. While these tips do not guarantee a successful testing phase, they can help the testing team avoid many self-created pitfalls and approach future testing prepared, clear and confident.