Testing: the key to agile success

Traditional competitive advantages like offering lower prices are no longer sustainable. What is sustainable is the ability to learn quickly – quicker than competitors – and use the information gathered to meet customer demands and deliver superior customer experiences. This shifting competitive landscape is why so many businesses have embraced agile methodologies.

Agile is the ability to pivot quickly based on customer need and is spurred by tight feedback loops where developers, product owners and UX specialists, can understand what they are doing, how they are being successful, and where they can improve.

Agile frameworks enable teams to chunk up work into smaller pieces, thus creating less work, and release updates in a matter of weeks or even days, as opposed to the months it takes with traditional approaches.

Dealing with bottlenecks

In software development, moving and reacting quickly is easier said than done. There always seems to be a bottleneck slowing down development and consequently slowing down innovation.

Too often, that bottleneck is testing and quality assurance. The main reason testing and QA has slowed down the development process is that the traditional model had a few professionals testing every aspect of a digital property, so nowadays, many organisations look to other functions to pick up the slack.

More often than not, developers are tapped to take on QA responsibilities. This is problematic for a number of reasons. The first being that developers are too close to the software (having worked on it in the first place), potentially leading to some bugs being overlooked.

Second, developers are transferring their time, effort, and resources into working on QA when they otherwise would be spending it on software development. Clearly, this can slow progress to a crawl as time spent on testing is time spent away from development.

It’s not that companies haven’t tried to solve this conundrum. They have. It’s just been a fruitless exercise to this point. Automation is a key enabler of agile, but many companies aren’t utilising it correctly, or are relying on it too much as opposed to human feedback in tandem with automation. And, offshoring QA responsibilities can be slow, pricey, and inadequate substitutes for real-world personas and experiences.

Rethink quality assurance

QA and testing can be aligned with agile. Companies need to rethink QA and understand it from a new perspective, one that takes advantage of real-world situations and real people to deliver real results. That’s where crowd testing comes in.

Crowd testing takes the community-based concept of crowdsourcing and applies it to digital experiences – things like websites, mobile apps, and connected devices – to understand how audiences are engaging with products and find out what software bugs exist. The aim of agile is to fulfil the high expectations and demands of users and do so quickly, and crowd testing is the best way to achieve this.

With crowd testing, products are not tested in a remote laboratory, but on real devices in target markets. They’re tested by QA experts and digital natives that represent the target demographics of the app, website, etc. The results reflect the actual or possible user experience much better than would be possible in a lab, or in-house.

Additionally, this method is compatible with the speed of agile because it allows many testers to test an application at the same time. Each tester providing just a few hours of testing can add up to hundreds of hours of testing activity delivered in a matter of a single day. Plus, the global nature of crowd testing allows for testing at any time, anywhere. 

Testing at the speed of agile

To align with agile, companies need to test early and they need to test often, throughout all parts of the software development lifecycle (SDLC). If a company is planning sprints every two weeks, it needs to be testing almost constantly to keep up with its rapid delivery plans.

Crowdtesting makes this easy. Instead of waiting on slow offshore methods, or taking time away from developers, crowd testing allows companies to test their products on their target market, in the locations that are important to them, and on the devices they anticipate will be used.

It is essential that every relevant test procedure is planned early on and implemented at all levels. This helps to identify and resolve problems as quickly as possible, and regression tests ensure that any new software enhancements do not interfere with existing functions.

Software is subject to frequent and often profound changes and so the advantages of regular evaluation and feedback are obvious: short development cycles with fast implementation sequences.

Leverage automation where it makes sense

For products that are changing rapidly with each innovation and iteration, maintaining automation scripts can take as much effort as the product programming itself. When an automated script fails, they need to be investigated, fixed, and bug reports need to be written every single time, so choosing the right time and approach to test automation is critical.

In addition, to test case execution, automated or not, it is important to run exploratory tests, in which the software is tested without a predetermined test plan. Human instinct and creativity are needed to find both superficial and critical errors that cannot be planned for in advance. The quality of these test activities ultimately determines the quality of the final product.

This isn’t to say automation shouldn’t play a role in QA. It absolutely should. But, it shouldn’t take up all of a company’s time. Crowdtesting vendors can curate a group of automation experts that can handle all of the toughest and time-constraining parts of automation, taking the strain off of internal teams to find, investigate, and fix broken scripts.

Manage your data

Test data management is underestimated, but essential. Testers provide valuable information and insights, and this should all be recorded so that companies can visibly understand what problems arise when testers are using their products, and how they can recreate them perfectly so that they can be fixed in a timely manner.

At its core, agile exists to optimise workflows – if data is collected and shared with other departments, companies have the tools to improve on existing practices and work as efficiently as possible. 

While it requires a rethink of operations, the change to an agile methodology holds enormous potential for software development and frees up resources for other areas. In order to minimise obstacles in the implementation stages, companies need to understand Agile as a holistic approach which includes testing.

The close cooperation between developers and testers is an absolute prerequisite – developers need full technical support and testers need to be involved in the respective processes as part of the sprint planning. Therefore, reacting to changes in the short-term ends up being more important than following a long-term plan.

Ultimately, if a digital product – no matter how shiny and new – doesn’t work, users will drop it immediately for an alternative. By investing in agile, companies are investing in the quality, security, and user-friendliness of their products to safeguard against potential user disappointment and create a much faster, better performance.

Written by Dean Vittum, Senior Technical Sales Engineer at Applause