Agile testing: easy to underestimate, critical to success
Global business is changing at a staggering pace. As new technologies disrupt traditional business models and liquid expectations change how consumers view the world, businesses must pick up the pace to remain relevant. As a result, many organizations are now adopting Agile methodologies.
One of the most common questions they ask themselves is when the testing process should start. The answer is deceptively simple, but the implications are far-reaching: testing in Agile environments should start immediately and continue indefinitely. Agile testing is a continuous process, which starts on day one and never ends
While this is easy to understand on the face of it, it is also easy to underestimate the consequences. Agile testing processes differ dramatically from those used in waterfall methodologies. Implementing them correctly requires significant changes in how your organization approaches its testing protocols and release management. But the most significant change lies in the talent you need to make it work.
The importance of soft skills and hybrid expertise in Agile testing
In traditional waterfall paradigms, testing followed a mass-production mindset. Being able to run enough tests before the release deadline was the primary objective, which meant that managers only had to focus on supplying sufficient resources in a short time frame. As a result, QA departments were composed mainly of low-cost employees under hierarchical, top-down management. These testers generally had limited skills and were considered highly replaceable.
In Agile models, however, testing profiles are significantly more complex. Agile testers play an active, recurring role in the dynamics of Scrum and Kanban. They are essentially in charge of maintaining and increasing the quality of applications on an ongoing basis. Ideally, they should be able to build a release, test it, and validate business assumptions with the Product Owner and business users at any time.
Agile model requires a pivot to a highly-qualified workforce with a diverse skill set
Agile testers must be versatile and autonomous. In addition to ‘hard skills’ in programming, software architecture and development best practices, testers must therefore also possess specific soft skills to be effective.
1. Empathy and insight
Because Agile testers have such a deep understanding of the software they work on, Product Owners frequently rely on them to act as proxies for the total user experience. This additional role requires empathy and insight. To maintain focus on UX objectives, Agile testers must be able to not only understand the User Stories and effectively enforce the acceptance criteria to the development team, but also to advise the product owner on any adjustments necessary.
Agile testers are uniquely positioned to facilitate prioritization decisions between the Scrum Master and the release manager. They are often the first to feel the effects of infrastructure and build stability, and must therefore be adept at prioritization themselves.
Throughout any given acceptance phase, Agile testers will be the main point of contact for the users involved. In addition to being in close contact with users, their reports are also critical to the business’ ability to decide whether software is ready to be deployed to production. This clearly demonstrates why communication skills are an essential part of the Agile tester’s skill set.
4. Planning and coordination
Certain aspects of testing may be outsourced, especially in larger projects (e.g. security, performance or usability testing). These activities must be properly planned and coordinated, and it falls to the Agile testers to ensure everything goes according to plan, in line with the Product Owner roadmap.
Understanding the implications of automation
From a technical perspective, testing in an Agile environment has two simple objectives: testers must stabilize existing code and validate new code. However, they must also meet the demands of an increasingly dynamic global market. Clients expect rapid delivery and high quality, while shifts in user expectations have increased project complexity. As a result, automation has now become an integral part of Agile testing.
1. Implications for stabilizing existing code
In the past, testers in waterfall environments would generally execute large sets of regression test cases to assess stability. Historically, the Agile testing process relies on a simple regression checklist combined with exploratory stability tests. Testing each new iteration allows Agile testers to become familiar with the strengths and weaknesses of the software. As a result, they can assess stability in less time, using less resources.
Unfortunately, maintaining software stability can become extremely time-consuming as projects grow in complexity. Automating Unit Tests, System Tests and Build Smoke Tests is necessary to achieve ease-of-maintenance while also monitoring stability continuously.
2. Implications for validating new code
Under the Agile methodology, User Stories can only be considered complete when they have been thoroughly tested. Therefore, any new features added during a sprint need to be tested immediately to keep the development process from stalling out. New builds must be deployed quickly on request, allowing Agile testers to perform Functional Testing and User Acceptance Testing which ensures the software has no defects and matches business needs.
To address the inherent contradictions in this process, Agile testers must be involved in User Stories from an early stage and collaborate closely with the business users. This will enable them to generate automated test cases which solidify business needs as guidelines for coding, allowing both objectives to be met without unnecessary delays.
3. Implications for cloud-native development
As more and more organizations transition to the cloud, Agile testing now faces new challenges. Testers must have reliable access to new builds when necessary, but this becomes more complicated when software is integrated in architecture connected to multiple servers and clients.
To avoid regression into waterfall release models, it is imperative that applications can be deployed easily in various environments. The best-in-class organization build is to have cloud-native applications, which allows for faster deployment speeds.
Using easily deployable containers and micro-services architecture also allows developers to move applications into testing environments with minimal effort. It also greatly facilitates the testing process, reducing the timeline on system testing while enabling end-to-end tests without hardware dependency issues. This approach not only allows automation to realize its full potential in the cloud, but also contributes to the realization of continuous delivery.
Why talent should be your top priority for Agile testing
Embracing Agile delivery offers many distinct benefits: shorter loops, reduced time to market, improved quality, greater flexibility and responsiveness, faster feature development and lower costs. Tapping into the potential of automation only enhances these advantages, allowing you to transform your development processes and deliver real-world value continuously. But you will only be able to seize these opportunities if you can successfully implement Agile testing within your organization.
As coding becomes a smaller part of the development cycle, testing will require more creative thought, commitment and effort. Already, we are seeing interesting shifts in development activities. For its Office products, Microsoft has made the decision to balance its coding with proactive testing. Increasingly, these activities are centered on automation and DevOps. With Netflix, we see similar developments. Instead of fielding an army of low-skill offshore testers, they rely on small teams with a limited number of hybrid testing specialists. This not only allows them to move faster, but also to do much more for much less.
Unfortunately, true talent for Agile testing is rare. The historical realities and perceptions of testing in waterfall models have had a chilling effect on the workforce. Many skilled testers transitioned to development because it offered greater creative freedom, and many who remained at their posts had little incentive or opportunity to hone their skill sets. As a result, qualified Agile testers are few and far between. This makes it all the more essential to understand their importance to your company and value them accordingly.
This article has been co-written with Hichem Hamou.