#1. The rapid rise in AI software testing
The biggest change in quality assurance over the last five years is undoubtedly the integration of AI generative technology into testing activities. The level of sophistication we now see in quality engineering tools has accelerated beyond expectation – and will continue to exponentially.
For instance, we are now able to predict where defects will occur in the development system, using plug-in tools to make accurate predictions. With machine learning, the model learns about the application under test, and after just three iterations it can recognise, and then detect where the defect will occur in software development. So, it is a great way to prevent defects before they happen, saving considerable time and money.
How does it work in practical terms? Let’s say you are developing an insurance application. You want a functionality that allows a customer to declare a claim. The customer has crashed their car and they want a replacement vehicle the next day. This functionality means a new evolution in the next sprint or next version of the software. You define the requirements and write the code. How will that impact the rest of the system? The AI tool helps to identify any dangerous aftershocks on other functions across the application.
Previously, you needed to perform manual regression testing on the system and then make changes. Or you could use heuristics and probabilities to predict the impact. But both these approaches are time intensive, with considerable checking of system components. Now, it is automated by AI and the calculations happen in less than the blink of an eye.
In terms of productivity, a tool like this can reduce 40% of the effort, allowing the tester to spend more time on exploratory activities.
#2. QA needs IQ more than ever
Despite the advances in technology, AI generative tools like ChatGPT still need a critical mind to fill in the gaps. Only human judgement can evaluate the true requirements of a system, because ultimately software is developed for humans, not for AI robots. Do not get me wrong – AI generative tools will continue to be a game changer and they are accelerating rapidly. But quality engineering is a discipline that still benefits from the skill and experience of testers.
Testers need to understand what quality looks like for an application, and this requires real judgement. You need to develop a feel for the quality attributes. Only then will you design a good test case. It takes competency and expertise to get that right.
Information systems, APIs and microservices require advanced testing at an integration and system level. These are very complicated, and there is no definitive methodology or ultimate tool to get it right. You need a lot of experience to understand software architecture and social organisation. It becomes an information system, not just a technical system.
Testing experience counts here more than expertise in software development because you need to grasp the overall configuration of the technical system. You have to understand the business case of what is truly useful for this information system. Is it performance? Is it functional relevance? Is the priority security or accessibility? You always must sacrifice some part of quality when you engineer quality into a system because time is limited.
That is where the feel comes in. Experienced testers will constantly undertake risk analyses based on the feature functionalities of the system, weighing up the priorities as they work. For some websites, design is not as important. Availability is what matters. Take X (Twitter) for example. The site is not very beautiful, but it is efficient and quick. It can cope with millions of messages bouncing across the world every second. Testers are tuned into the use case.
#3. System testing marries IT with product engineering
Software testing is often associated web applications in IT-heavy industries like banking, insurance, retail and utilities – which live or die by their customer experience. But the reality is that testing is needed across all sectors. The challenges of working on backend systems that run an organisation’s finance, HR or supply chain management systems are similar to a customer-facing website. So, it is not a matter of sectors. It is about having the right processes.
The overlap between the two disciplines – embedded systems engineering and application software engineering – is so common today. There are countless examples, due to the digital transformation which is now omnipresent across all sectors. Think of the IoT & embedded software development required for automotive manufacturers. They need integration testing services to ensure that the cloud-based backend systems for over-the-air updates in connected vehicles, for instance, work effectively.
You always have the same four types of testing:
- Functional: will my system do what I want it to do?
- Non-functional: is my system secure, available, accessible etc?
- Regression: will my solution impact other functionalities in my system?
- Confirmation: is the correction of a defect successful?
Then there are four levels of testing, which use the four types above:
- Unit testing: a single line of code
- Component testing: a module of different functionalities
- Integration testing: how code fits with the wider system
- System (or domain) testing: is the whole system working?
Above all these, you have user acceptance testing, which validates whether business processes conform to overall requirements.
#4. Quality assurance will only grow in importance
The online presence of almost every company is growing. Customer-facing systems are vital for revenue and/or service, depending on your priorities. APIs need to deliver in terms of availability, performance, scalability and relevance.
Testing is therefore critical for regular delivery of a new functionality – which is crucial for staying ahead of the competition in an ultra-competitive market. (Find me a market today that isn’t ultra-competitive.) Companies need to keep developing new services and adapting quickly to the changing demands of customers. If you cannot test early in the life cycle, then you cannot deliver often. It is as simple as that.
Companies set release dates for new services. Missing those dates can prove catastrophic. Software testing gives you a chance, as production defects can impede development, incurring significant costs. The sooner you detect, the cheaper it is. But also, the better your reputation, the better the customer satisfaction, and the better your sales rate.
#5. Quality Engineering (QE) resets the time-quality-cost triangle
One of the key benefits of QE is that companies can design and build quality early into a solution, making it more testable at the most critical moments. Validation of requirements is a good example. Up to 70% of defects exist in the requirements and design stages, fixing them there is much more cost effective than reworking or regression testing later down the line.
QE challenges the traditional notion that improvement in one aspect requires sacrifices in the other two. When businesses test the right things at the right moments – and target the highest risk areas – they can reduce the number of defects moving from one phase of production to the next.
Generative AI is all about helping the tester. We want to be agile and we want to be quick, as this will reduce the cost of development. Improved quality will then save both time and money.
#6. The role of software testers is changing
For testers today, it is mandatory to have the skills to automate test scripts. That is a minimum expertise level for a software quality engineer – which was not always the case. Software development skills are helpful too, as you can then integrate tests into the Continuous Integration and Continuous Deployment (CICD) pipeline, because all development is done in DevOps and Agile nowadays. Most testers have software development skills, but you rarely meet a software developer who knows how to test.
It is fair to say that compared to software development, testing was always the lowly sidekick. There was an ethos amongst developers that testers are not engineers like us. Testers just get in the way and send back code defects that slow us down. I do not agree, but that is how we were seen.
Things are changing fast. Quality engineering is becoming cool, and testers are using more sophisticated technology. Test automation is technically hard and is being valued as a more significant contribution. In the high-stakes world of constant development, testers are often the superheroes who save the day (and considerable time and money).
There is a growing community of testers in Europe, which is fun, creative and supporting. We have a lot of events in Europe, and especially France. In start-ups and in the US, quality engineers are more prestigious because they are more integrated in the team and able to bring their perspective in the end value for software.
The misunderstanding between developers and testers is reducing. Mixed teams, with more generalists who can do a number of roles, is making the process more compact. Even the name ‘tester’ is used less. Organisations that adopt the right mindset do not pigeonhole their experts: they simply see members of software engineering teams. Everybody is involved in achieving the same goal. In the future, I feel sure this will become the norm.
Quality assurance is an excellent career for somebody who enjoys using both sides of their brain, as you need to be able to write as well as compute. Working with words has always been an attractive part of my job spec. As a tester, you are involved with information as much as technology. People are quick to forget what the ‘I’ in IT stands for.
The people who develop the software are as important as the people who will use it. There is a theory that technology is a mirror image of the people who made it – and I think that makes sense. Therefore, if you have a poor team, you will have a poor system at the end. And great teams will deliver great projects. I find that very motivating.
Interested in joining Expleo as an engineer?
Expleo has a 40-year heritage in software and systems testing for leading companies across sectors ranging from banking and insurance, utilities and retail to engineering firms in automotive, aerospace, defence and transportation.