We know that project cost can be reduced if there is low number of Bugs/Changes as well as if these bugs/changes can be detected early in S/W Development Life Cycle. This topic talks about how we can reduce the number of bugs passed to testing team from development team.
During the development, one should not surprise seeing the bugs. They are byproduct of entire development cycle. Bugs cause rework which consequently increases the cost of the project as well as schedule. This topic is about save rework and reduces cost of the software.
Though bug free system cannot be developed in a multimember team but the number of bugs found during the testing and production can be reduced by detecting the bugs early, before releasing the Build to testing team.
Adding the below mentioned activities in your development and testing cycle will definitely help in reducing the project cost as well as help in quality delivery. You may get an impression that most of the activities are suggested for developers. Let me clarify that as they are the people
- Right Process and Right Tools: Implement the right lightweight processes since beginning of the software development. Anything which has to be done repetitively, automate it.
- Clarify Assumptions: For all functionality, if there are any assumptions are made, clarify them with client, test engineers, Business analyst and other stake holders.Actor (Development and Testing Team)
Why: Impact of declination of an assumption later will cause rework in either design, coding, testing or in all phases.
- During the implementation, if you are considering any behavior as implicit, obvious, or understood, then better to document/communicate it and verify with stakeholders.
Actor (Development Team/Test Engineers)
Why: It will help in developing what is required by customer rather than investing time in development of features which is luxury to have but not required.
- Test Engineers should develop test cases component wise and release them to Development team asap for Review (Design phase is recommended).
Actor (Testing Team/Development Team)
Why: Developer understands what test engineer is going to test beforehand including special cases. Also another advantage is that most of the test cases are User’s action on system; hence the usability and interface problems can be detected during design and coding.
- Each developer should Review the test cases related to his component. Test engineers should add missing test cases as detected by development team.
Actor (Development Team/Testing Team)
Why: To learn more about the functionality. Also it will expose the understanding gaps between Development and Testing team. This activity needs more time to be allocated to development team. Remember cost of bug is low in early phases of development.
- Unit Testing: It will help in identifying the issues, which may be missed by Blackbox test engineers.
Actor (Development Team/Testing Team (white box testing experts))
- Testing team should develop a set of test cases called ‘Development Smoke Test cases’. Development team should execute the ‘Development Smoke Test cases’ before releasing build to Testing Team.
Actor (Development Team/Testing Team)
Why: There are cases where build gets rejected by QA in their smoke testing because of broken major features. Development/Testing team has to do rework.
- Find the Test cases effectiveness. How?, check how many bugs can be mapped to test cases. If the effectiveness is <80%, review the test cases development approach of testing team.
Actor (Testing Team)
WHY: All stakeholders are relying on testing team’s test cases to detect the bugs. Find technique to improve the testing effectiveness. (See my blogs on this topic).
- Configuration Testing and Load Testing should be done asap as later detection of performance issues does not leave enough time to do something substantive.