How can agile testing improve your software development?

Par Marie Krust

31 Mar 2015

by Christian Baumann, test automation expert and Agile practitioner at q-leap

Agile software engineering methods continue to evolve as a different way of developing software compared to the traditional planning and documentation-heavy approaches. 
Gartner and Forrester statistics indicate that 60-80% of software development teams now use Agile as their primary method for creating software. Although testing often is difficult to implement in a classic environment, it is actually easy to implement in an agile environment. However, in a framework based on some agile method, the role of the tester must evolve as to unlock the advantages of the flexible development process.

In agile projects, testers need to wear several hats

The tester’s role in Agile is more than “just testing”[1]. In the traditional software development methodologies, the role of a software tester includes analysis, test script design, and execution from the project initiation stage up to when the project is “closed” – and unfortunately the tester’s skills are often put to work only once development has delivered the system “ready for testing” – at a late stage in the process.

In agile environments, the tester has to be highly interactive & analytical. He has a significant role to play, he works as integrated part of the whole team, together with developers and business representatives.

In many ways the tester and the business analyst roles are converging to share some responsibilities and build quality into the product as early as possible. The convergence between tester and analyst reduces uncertainty inherent in the development process and quickly ferrets out hidden assumptions and unarticulated requirements. This means that development can continuously and efficiently hunt for a right solution (as judged by the customer), strengthening the output of the process.

A good testing practice in Agile focuses on product quality (as well as risk reduction) to deliver best “value to satisfy the customer through early delivery”[2]. Converging the roles of tester, developer and business analyst helps create shared knowledge in the team, which in turn enables one to get the work completed with higher quality. Above all, people need to be open minded and willing to share and collaborate.

Automated testing is essential for fast feedback and continuous integration

Initiating, developing and maintaining test automation processes and scripts is often viewed as an overly complex and costly effort relative to perceived advantages. This may be a justified critique for test automation within a classic development approach; but in an agile project automated tests at all levels of detail (function, component and system) can rein in the growth of problems that development teams leave “for later” (what is called “technical debt”) and provide rapid feedback on current product quality. They also tell the development that that the latest modification has not made the product “go off the rails” and that all the functionality that has been built in so far is still working as intended. Investment in test automation pays off and provides assurance but it is important to run automated tests as often as possible, at least after every code change and after every bug fix.

Speed, quality, feedback, efficiency, are benefits that you gain from using test automation. Additionally, for every automated test that has been implemented, one can run it again and again in a controlled manner. This frees up mind share time of the testers: they can now do additional manual, exploratory testing, thus promoting better end user advocacy and better software quality.

To conclude, once an agile process has been put in place, concomitant agile testing will improve software development, as it makes adapting and responding to rapid and unexpected change controllable. Automated testing is closely coupled with the process of programming in an agile environment, so delivered software is of high quality from the very beginning. And because automated tests are executed so often, regression to problematic behavior fixed earlier practically never occurs. But you have to keep in mind that agile testing is also a mindset, and not just about applying a set of rules. Business users appreciate software developed in an agile manner because they receive a usable product earlier and fitting their changing requirements better than would otherwise be possible. Agile testing can therefore help you to improve your software development, to bring a maximum of benefits.

—————————-

[1] Dele Oluwole – The Tester’s Role in Agile is More than “Just testing” 
[2] Agile Manifesto principles

Leave a Reply