Taming the Torrent


3. Perform impact analysis: Once you know what changed, you need to know what is affected. A critical business process can be adversely impacted by a number of changes, not all of them obvious but any single one potentially problematic. For instance, database changes can trip up any related application, an interface can have upstream and downstream implications, and so forth. Again, an automated approach is ideal. Using a relational repository to store your test assets helps enable impact analysis by allowing relationships to be queried. If you know where components or data are referenced in a test or process, you can make the updates rapidly enough to keep pace. The goal is to know which tests will target the areas most likely to be affected by changes so they can be selected for execution.

4. Automate test execution: Automation is vital to keeping up, simply because the frequency and timing of changes rarely permits the overhead of manual testing. Without a beefy team of testers standing by 24-7, it is a practical impossibility to execute even the most streamlined test cycle. The beauty of automation is that it can be executed on demand—even overnight—and quickly enough to catch errors so that an extra fix-test cycle can be performed when needed. The downside, as previously noted, is that most automated tests are too cumbersome to be maintained quickly enough. Making changes to complex script code introduces as much risk as application changes. The solution here is to find and adopt an automation strategy that implements tests as data instead of code and, whenever possible, employs a database instead of flat files. This allows you to use the power of a relational repository to automate impact analysis and updates.

If you follow these steps and apply the tenacity necessary to make progress every day, even just a little, you can achieve a measure of control and confidence over the torrent of changes raining down on you.

There are companies that have achieved rapid, comprehensive regression testing, and they report an astonishing acceleration in delivery, as opposed to a delay. The reason? By removing risks before they reach production, significantly less time and money is spent on emergencies. Those resources are freed to deliver faster and reduce the backlog. It's a beautiful thing.

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.