


Agile development projects may come in many flavors, but all of them are characterized by short release cycles, deploying working software quickly and adapting to change. In the Agile environment, the testing team needs to bring in quick learning, minimal documentation, rapid turnaround and working closely with developers. Trigent offers some practical tips on Agile testing, gleaned from its own experience.
Each of these tips is not a 'prescription' for Agile testing. These are intended to expand the possibilities and allow the tester to adapt and not necessarily conform to traditional 'test practices'
Agile projects do not have heavy and comprehensive documentation. So, to understand the expected behavior, the tester needs to go through various alternative inputs to understand the application. Some of these can be:
"Pair programming" is a proven concept in Agile projects especially in Extreme Programming (XP) projects. The first order reaction that this is lower productivity has been proven wrong with visible gains in productivity when two programmers work together. In a testing situation, a pair of testers can generate far more test ideas than the sum of their individual outputs, especially when the module is complex. This can help uncover important bugs. It must also be recognized that buddy testing can be motivating only when the two testers can work well together.
The tester sometimes has a set of test scenarios for testing the product and needs agreement with the development team. Writing test scenario documents and circulating to developers is one approach, but there is very little chance that the developers would read and provide written feedback. A tester needs to actively improve developer-tester interaction and not restrict themselves to writing documents and handing over to developers.
So, compile the test ideas in a presentation, gather the developers for a short meeting and take live feedback. This not only gets feedback, the developers also start thinking about whether their software will pass such tests.
With continuous integration and incremental development, test teams need to be prepared to receive a build in the morning with a "test this today" directive. The ability to scope the work, ask the right questions, and deliver a valuable output within a few hours is the service that is needed.
In such situations, test teams need to cultivate the practice of being able to do exploratory testing which in one line is the practice of simultaneous learning, test design and test execution where the tester adapts and brings in new test ideas as they experience the product. This is in contrast to scripted testing where the test planning is done ahead of the actual testing.
(refer http://www.satisfice.com/articles/et-article.pdf for a more thorough reading).
In Agile projects, each iteration includes new functionality. In the rush of testing the new features, testers tend to miss out evaluating the performance. Deferring performance tests to the end runs a risk of finding bottlenecks that need changes across the product. Instead, plan for testing the performance in each iteration and log the bottlenecks identified. The development team now gets an opportunity to fix these problems in earlier iterations. This could directly improve overall product release schedules.
Test automation is a double edged sword. With dynamic or evolving features, the cost of automation and maintenance could be high, sometimes higher than the value it offers. Yet, Agile projects embrace a test driven development methodology and test team can provide real value by embracing the methodology.
If test automation is planned, it needs to be designed with the 'ability to change easily' as a design criteria. Writing data driven test scripts can enable changes quickly, and keyword driven acceptance tests are effective techniques to consider.
Agile test practices are evolving and the body of knowledge is growing. The tips presented above are just a handful and the tester can bring up newer ways to handle Agile projects if the Agile manifesto and Agile principles are well understood. And certainly these tips can be applied to traditional development projects as well. The bottom line is to improve the value of testing while reducing the cost.
http://www.satisfice.com/articles/et-article.pdf by James Bach
http://www.testing.com/agile/agile-testing-essay.html by Brian Marick
http://www.ddj.com/development-tools/196603549 by Scott Ambler
http://www.methodsandtools.com/archive/archive.php?id=57 by Lisa Crispin
Contact Us to learn more.
Copyright © 2007 Trigent Software.