Recent leaps in the evolution of software development have tended to leave testing behind. But with QA still consuming at least a quarter of IT budgets, where’s the much needed innovation in testing? With Intelligent Quality Assistance it may have finally arrived.
Over the last decade or so industry commitments to improving software quality, like the proliferation of Continuous Delivery and DevOps strategies, have not been mirrored by similar advances in testing. The QA process remains stuck in the past, seemingly incapable of keeping pace with developments elsewhere. Software Testing accounts for 26% of total IT budgets, with that figure expected to rise to 30% over the next two to three years. An automated approach to testing is needed, one that should enable CI/CD rather than hinder it. Has it finally arrived?
# Traditional QA - a flawed approach
Nearly all businesses are saddled with old school QA, a process I suspect we’re all depressingly familiar with! We don’t begin until after development when QA teams are tasked with ensuring that products are functional and acceptable for release. They do this by verifying and validating the product's quality against predefined requirements and specifications. The QA people will then rubber stamp the software as “ready to release” or provide test results to show why it is not ready yet.
The traditional development-to-QA methodology has obvious drawbacks. It elongates the development lifecycle, adds unnecessary complexity, and creates efficiency-killing silos between technical teams. This is still the case in teams that follow Agile, DevOps or Continuous Delivery strategies.
So, why the stagnation in Quality Assurance? It’s at least partly to do with how we choose to define it. In the era of Waterfall delivery Quality Assurance did exactly what it said on the tin - it assured quality. Quality Assurance is little more than the software equivalent of a pat on the back for a developer, a shiny gold star at the end of the exercise.
But in today’s fast paced software engineering environments finding defects post-development with a single QA team is no longer fit for purpose. Dynamic development processes require an active software quality feedback loop. Siloed Quality Assurance implementations, facilitated by industry-standard testing tools, just aren’t up to scratch.
# Intelligent Quality Assistance: The future of testing
Intelligent Quality Assistance offers a fresh, automated approach to testing that complements the development of high-quality software. While old school QA is limited solely to the traditional QA/testing phase, Quality Assistance allows the whole software delivery team to contribute across the entire development lifecycle, from planning to post-deployment.
Quality Assistance is about encouraging greater collaboration, enabling cross-functional teams to play a more active role in the quality and testing process. In short, the biggest difference between Quality Assistance and Quality Assurance is that the former speeds up software delivery while the latter slows it down.
The end-to-end focus on quality that comes as a result of implementing a Quality Assistance approach has many benefits. An organisation that moves towards Quality Assistance will soon see improvements in the following areas:
One of the biggest motivations for moving from Quality Assurance to Quality Assistance is quality. Early collaboration between the QA professional and the product means that quality is built in at every stage of the software delivery life cycle. Furthermore, due to collaboration and sharing of insights, a developer's knowledge and understanding of quality aspects will increase, which will result in them writing better quality software.
The main driver of efficiency in the Quality Assistance approach lies in automation. An intelligent quality assistance platform will automate as much of the QA process as possible. Application exploration and mapping, test authoring, self-healing functional tests, user stories and acceptance criteria, and application snapshots are just some of the automated features that enable effective shift left and shift right strategies. And when quality is considered across the entire development process, the likelihood of identifying and preventing bugs before code is released is much higher than with traditional Quality Assurance methods. This reduces time and effort required to rewrite code at later stages of the development process, meaning teams can ship faster and with confidence. Furthermore, the time savings mean that teams can carry out more testing within their timeframe, which results in increased software quality.
As development and Quality Assistance efforts work in synergy, developers can feel confident in the quality of software they're producing. Testers/QA-professionals will also have more scope to focus on the root causes of quality issues and their symptoms, as well as outline strategies to overcome them going forward.
# What does an Intelligent Quality Assistance platform look like?
Intelligent Quality Assistance platforms combine the latest technological breakthroughs in AI to break free from traditional test automation and its heavy reliance on technical skill sets and long lead times. Some of these platforms use next-generation technologies, such as Machine Learning, to explore and interact with the software like a real user. This enables teams to take control of testing processes by automatically capturing and cataloguing all of the intelligence on how software behaves before testing it using a mix of system driven and human verification.
Where does this fit into the shift toward Quality Assistance? Well, it elevates Quality Assistance to a whole new level a viability, alleviating fears around adoption due to lack of time, internal tools expertise and complexities around up-skilling development teams. For developers, this comes as great news, as they will no longer be bogged down with having to invest hours testing software or educating themselves on quality standards.
Through systematic automation of repetitive test cases and scenarios, coupled with intelligence automatically gathered on application behaviour, QA teams can become superstars capable of ensuring software quality at an immense scale. Furthermore, they can focus their efforts on more strategic, creative ways of providing quality and increase their overall influence across the software development lifecycle.Contact us if you would like to learn more about how the shift toward Quality Assistance could benefit your organisation, or book a demo if would like to see our Intelligent Quality Assistance platform in action.