The fix to broken software? Proper testing

‘Broken software’ has been a hot topic at many software development conferences around the world in recent years, with stakeholders pondering why the agile approach to development is not meeting expectations and fixing bugs fast enough.

The agile approach of taking risks, failing fast and iterating may help to optimise solutions, but failing at all is not an option in certain industries and mission-critical applications. For example, where the entertainment industry might have the risk appetite to take a chance on a new music feature, the financial sector cannot afford any glitch in key applications. Organisational risk management depends increasingly on risk management in the development and testing environment.

Cognisant of this, organisations are questioning how to achieve a balance between rapid releases and quality software.

One answer is to address problems such as having proper test environments and test data. Currently, testing is meant to shift left in agility, but there is still a lack of integrated and user experience testing in place. The notion of built-in quality is more than just introducing unit tests. The moments of involvement of testers are generally sporadic, and often too late to prevent broken software.

Many organisations today do not have fully agile environments. They combine waterfall and agile intro hybrid environments and expect testers to deal with the organisation's version of best practices. For instance, some organisations work in a hybrid environment with limited collaboration and yet expect testers to figure out the test requirements with limited to no documentation in place.

Testing is often viewed as a practice that can be scaled down with the assumption of built-in quality delivery at speed.

But organisations skimping on testing put additional pressure on testers, with the result that they must switch context repeatedly and wear multiple hats. It’s common to find a ratio of one tester to eight to 10 developers, and everyone under pressure to push new applications into development. The result of this is that testers are facing burnout, anxiety is on the rise and many people don’t have the depth of knowledge they should have.

Of necessity, testers often focus on the high priority and high risk tickets and end up doing high level testing across the rest of the testing scope. This is in stark contrast with what testers should be doing: approaching testing at breadth and depth, investigating, analysing and exploring.

To address these challenges, testers need to be collaborating with the agile development team from day one, with a focus on continuous quality assurance. Organisations need to shift left and start testing early, enabling testers to understand all the application complexities, dependencies and risks, and check whether the organisation is ‘building the right product and building the product right’. This includes checking the design of the solution, checking the source code, checking every build and deployment, and controlled testing and monitoring in production. They need to implement continuous testing feedback loops to gain better practical ideas on where and what to improve in future.

The future of testing in scaled agile models requires a number of changes: skills gaps must be addressed, critical system thinking must be enabled, test processes must be improved and cross-testing team collaboration needs to be enhanced. Collaboration among testers should be reinforced through test leadership and coaching. In scaling agile testing practices, performance and security testing will be critical to ensure resilience of systems in production.

In an era of global digital transformation and agility, testing must be non-negotiable and prioritised. Testing has to be embraced and evolved in its practice with proper governance and structure to overcome the risks of broken software.

Original Article