By Kashif Zafar, VP Client Services and Justin Wang, Delivery Director
In principle, the task of testing software is not very different in Waterfall, Iterative, or Agile methodologies. Â However, the same Agile processes that have have transformed how teams plan and manage software projects require a different set of techniques for testing the software created.
For those not entirely familiar with Agile development (and specifically Agile Scrum, which our teams use), here is a quick review of some core Agile techniques:
- Software development proceeds as a single team (called Scrum) completing a series of Sprints, each of a standard duration (generally two, three, or sometimes four weeks)
- The Scrum includes the key roles of the Product Owner, who defines requirements as a set of backlog of user Stories, and the Scrum Master, who meets with the team daily and relentlessly works to communicate and clear any blocking issues or significant risks.
- At the beginning of each Sprint the Scrum selects which Stories they will complete in that Sprint. The Scrum must demonstrate to the Product Owner a Story’s working implementation at at the end of the Sprint to count it as successfully completed.
Working in this Agile environment requires a different mindset for testing. The best practices described in this post can help the Scrum Master and lead tester on a Scrum take advantage of Agile’s processes to improve testing efficiency and code quality.
Best Practices
- Rigorously Hold Stand-up Meetings Daily – Stand-ups are those crucial 15 minutes or less which help you get a quick health check of how the team is progressing. This can effectively grasp the project’s current issue, progress and risk.
- Take Charge: Go and Pick-up Stories –After selecting the top priority Stories for a Sprint, developers and testers should use their familiarity with the business to proactively pick-up related stories. Select as many as can be possibly completed in the Sprint. The goal is to front load the development and test cycle to make sure testers have sufficient time to test to ensure quality when a formal release nears.
- Be Nostradamus and Envision Requirements – A common Agile practice is to perform some high-level requirements early in the project to help come to a common understanding as to the scope of what you’re trying to accomplish. The goals at this point are to identify the business objective for the effort, develop a common vision, and swiftly identify the initial requirements for the system at a high-level. Very often this initial requirements modeling effort is done in hours or days, not weeks or months as we see on traditional projects. It helps Dev and QA teams understand what needs to be done and what can be done in the schedule.
- Team up! – Involve testers throughout the development cycle for meaningful discussion and to clarify questions. Accordingly, testers can spot issues early and prevent major problems down the line and also can provide valuable information/input that developers may not be considering.
- Get Your Backups Ready To Go – Having backup testing environment is very useful as it will help mitigate risk on unexpected issues that may cause testing to be put on hold or be behind schedule.
- Test and Do it Again- With frequent iterations, we need to retest often and unit tests aren’t enough. You don’t necessarily need to do a full regression test with each iteration. You may run parts in each iteration cycling through.
- Share Your Knowledge – Share assets at the end of each sprint and record it. An overall Sprint assessment. This will help teams to better understand what worked, what didn’t work and what were the areas to improve overall in suite of testing. The documented sharing at the end of each Sprint can be used as tribal knowledge for training of any new team members.
- Test Early – The key to Agile is iteration: developing, testing, and developing again. To get the most out of an Agile process, you have to test early. That means that you think about testing not just after the first couple of sprints, but at the very beginning of the development cycle. Catching defects as early as possible is the least expensive way to ensure software quality.
- Automate what you can – The best teams automate as much of their testing load as they can. Repeatedly testing the same case over and over is a waste of time. Locating new bugs is far more valuable for any tester.
Agile Testing at Dextrys
Dextrys is China’s leader in delivering new development and maintenance projects using distributed Agile processes. We have tailored tools and methods that can help you get a project ramped up quickly and executed on time and budget. For more information contact Misha Kalhin at misha.kalhin@dextrys.com


