Where the rubber meets the road in an enterprise adopting Agile practices
About the Blog
Software is our business, and perfecting the art and science of delivering it is our mission. The contributors to this blog are passionate about the impact that great teams and good software can have on an organization’s bottom line. They bring decades of experience designing, developing and delivering great software, and each is playing a critical role in Borland’s own transformation.
Hello again. This is the second in a three-part series on the most critical issues in Agile testing. In my first post, I talked about how people are affected by a change to the Agile paradigm focusing on team integration and the required skill sets (Agile Testing: what does it take? Pt. 1). Now let's look at the role of testing tools, and more specifically the importance of test automation.
Striving for a high percentage of test automation is indeed another important aspect of Agile testing. In order to keep up - or accelerate -- the velocity of Agile teams, test automation becomes an absolute must. I'd even say it's impossible to keep up with quality in an Agile environment without test automation.
In Agile environments there is a serious need for speed! The best way to accelerate the Code-and-Test Process is with fast, automated test scripts. Automated testing enables you to achieve "Simplicity - the art of maximizing the amount of work not done," which is considered essential in an Agile environment.
Once tests no longer have to be performed manually, teams can test much more rapidly and achieve more in less time. Automation also enables testers to create simple, reusable scripts, which they can deploy to save time and increase the consistency of testing across similar user stories, or requirements within and across projects. And, finally, automated testing allows "sponsors, developers, and users … to maintain a constant pace, indefinitely." It significantly lightens the workload of testers and eliminates the need for late-night and weekend testing marathons that can that burn teams out.
In addition to automating the more common areas of unit testing and functional testing, automated performance testing gives teams the ability to address fundamental issues in the architecture of their application early on when it is easy to make changes.
So, I've covered two key concepts: integrating and automating. In the last post in this series, I will expand on this in the context of the "test early and often principle," which not only works well in Agile environments but is a key contributing factor to keeping quality levels high.