Put simply, Agile testing describes methods of website and app testing that are flexible and scalable enough to keep pace with the velocity of an Agile development process.
As the goal of an Agile team is to deliver new features of sufficient quality, in a sustainable, continuous cycle of improvement and optimisation - testing can and should be a critical part of this process. But teams that move to Agile often struggle with how to incorporate a testing timetable that matches the new speed of delivery that comes with it. And that’s because traditional testing approaches and methods often don't fit into an Agile context.
Waterfall Vs Agile - a QA challenge
Traditional Waterfall project management divides development and testing into two distinct phases: developers build a feature and then hand it over to the quality assurance team (QA) for testing.
The QA team writes and executes detailed test plans. They then file defects and check for regressions in existing features that may have been caused by the introduction of new features. Only then is a release put live. This method of working made sense when updates and upgrades happened in annual or bi-annual, ‘major release’ cycles. Test scripts could be written well in advance, and testing sequences planned ahead of time because development processes were linear and finite in their nature.
But Agile recognises the pace of change in the modern market place is too fast to wait for months on end for the new functionality that customers want. Agile throws out the long and rigid cycles of design, development, testing and delivery of Waterfall, in favour of living in a more iterative state of continual delivery.
Thanks to Agile digital businesses can introduce new features more quickly that more exactly meet customer requirements. Meanwhile, every part of a business (both technical and commercial) become involved in making real-time decisions about existing and future functionality.
What is the Agile Manifesto, and what does it mean for QA?
The radical ideas of the Agile manifesto developed in the 90s have now reached mainstream adoption, with Agile practices being embraced by most development teams as a way of delivering results quickly in a hyper-competitive marketplace.
The manifesto for Agile development - the four values of Agile:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
This approach is intended to maximise flow, velocity and collaboration in the delivery of products to the marketplace that truly reflect what customers want and need.
Commercial teams now don’t just brief developers and wait for a finished, tested website to be delivered to them in six months time. In Agile they are actively involved with the tech team in a process of continuous development, helping them prioritise bugs fixes and the optimisation of new and existing web/app features.
What does all this mean for testing?
So, the Agile environment is one of constant change, and in this world, new feature release cycles have been shortened by faster-moving sprints that deliver change incrementally.
Website/app upgrades and updates now happen monthly, weekly and even on an hourly basis.
But making changes so quickly means that businesses have to find new ways of balancing quality and velocity. If changes are being made so fast, smaller, traditional QA teams used to working in a Waterfall world can struggle to keep up. And the priority to release working software as quickly as possible can lead to the accrual of ‘Technical Debt’, where some element of technical thoroughness in dev or testing is sacrificed to facilitate the speedy delivery of new releases:
“A little debt speeds development so long as it is paid back promptly. The danger occurs when the debt is not repaid. Every minute spent on code that is not quite right for the programming task of the moment counts as interest on that debt. Entire engineering organisations can be brought to a stand-still under the
Ward Cunningham - co-author of the Agile Manifesto
Agile testing is the answer
In Agile, you need testing methods that support the entire team to control the potential build-up of technical debt and deliver quality on an ongoing basis through:
Business facing testing
Ensuring sites function exactly as they should even in the face of constant change (ongoing functional and regression testing).
Ensuring sites are subject to a process of continual optimisation (ongoing usability and exploratory testing).
Technology facing testing
Ensuring sites function effectively beyond the GUI (performance, load and security testing).
Agile testing requires a fast and flexible, multi-faceted approach
With all this in mind, the testing tools and approaches which an Agile business needs to deploy are characterised by speed, flexibility and access to scale; as well as a high level of customer insight and technical understanding to drive an exploratory agenda.
- Agile businesses need to have functional testing capabilities that can quickly and continually test new functionality as it is released in a rapid succession of sprints, including comprehensive manual and automated regression testing (when the build is stable enough to allow this).
- At the same time, the need for continual improvement inspired by user feedback fuels the need for comprehensive usability testing. Testing undertaken at scale by target demographic groups is a fantastic way of reflecting the ‘voice of the customer’ back into the optimisation process. Finding the right tools to lever this kind of ‘community of testers’ should be a key part of your Agile testing strategy.
- Exploratory testing is yet another facet of Agile testing that is central to success. This is the ability for skilled professional testers with a strong technical grasp, to range across a site following their hunches and uncovering, hidden bugs and issues that lie deep in customer journeys or particular features.
- The ability to analyse performance through load and stress testing, as well as sophisticated security tests, is another key requirement to ensure that constant changes are not adversely affecting website and app speed or creating cybersecurity risks.
Most importantly, an Agile testing approach needs a way of outputting its findings that are meaningful and actionable for all parts of a business. This might include tools that offer lists of aggregated and prioritised recommendations for fixes and optimisation work, as well as videos and photos of real-world test experiences to illustrate problems. These kinds of outputs can give commercial and technical teams the insight they need to contribute to Agile development decisions.
Internal QA teams built for a Waterfall world need the right set of tools to help them tackle the Agile challenge more effectively. Their vital skills can be complemented and their velocity increased by accessing performance managed testing communities like Digivante’s.