Your Ad Here

Wednesday, January 20, 2010

How to Incorporate Manual Testing in Agile


Agile Methodology is applied when a product development requirements change frequently and, the shippable product needs to go to the market regularly and rapidly. Inherently, testing in Agile should be automated with the help of unit testing, regression test suit, performance test scripts and smoke tests with the continuous integration at check-in of the releasable code. It does not necessarily mean that a team with only manual testers won’t make the product development a big success. Let me share some thoughts on how manual testers can actually make the methodology a big success.


The Challenge

System testers will wait for the entire code being checked-in before they can execute manual test scripts. Considering Scrum (my favourite one!) as the method you are following in the project, the Sprint lasts for four weeks (say). The challenge is that three weeks developers work on the code and fourth week testers test it, letting the developers idle in the fourth week. This may not be acceptable to your management, as they dislike keeping resources idle, of course.

The Solution

In the iteration planning meeting, product owner shall prioritize tasks based on their mutual exclusion and collective completeness. Means, there must be some tasks which finish in the first week and it does not have any dependency on any other part of code coming in the later stage of the release. This part of the code can be checked-in and manual testers can start integration/ system testing on it from the second week itself. Iterate the same process for the entire sprint.

Additionally, developers must not have full week’s task in the 4th week. They can utilize rest of the week in addressing the defects raised by the testers and reviewing the current Sprint’s tasks.

You may follow the sprint schedule as below:

Week 1: Iteration Planning (day 1) done by the entire team, coding done by the developers, test scripts are prepared by the testers.

Week 2: Developers switch over to 2nd week’s tasks after delivering the first week’s code. Testers start manual testing on the 1st week’s code.

Week 3: Developers switch over to 3rd week’s tasks after delivering the 2nd week’s code. Testers start manual testing on the 3rd week’s code.

Week 4: Developers complete the 4th week’s tasks and resolve all the issues raised by testers. Testers complete manual testing on the 3rd and 4th week’s code.

The Conclusion

Testing to improve the quality of the product is prudent. In Agile we can perform both – manual as well automation testing. Each of them has its own virtues. Automation helps in unit, regression, performance, mundane and repetitive testing. Whereas, testing of complex scenarios, usability and exploratory testing can be best done through manual process. Functional testing automation can only be successful if the UI (User Interface) of the product is stable. In case of unstable UI, ROI (Return on Investment) of functional automation is really high. There are chances that you would not get the value addition of functional automation in Agile because the requirement may change drastically.

Understanding the prudence of manual testing and its value, try the above method and let me know if your experience.


No comments:

Post a Comment