With the quality assurance trends becoming almost the starting point for successful software testing planning, it is important to ask yourself about the background of the situation.
The World Quality Report (WQR) 2019–2020 revealed that there is still much to take into account this year. Artificial intelligence and machine learning, test data environments, cost containment and efficiency, and more are expected to be the trends that will shape the software testing landscape in 2020.
Today, let’s focus on Agile and DevOps as well as test automation – two trends that have stayed relevant through the years.
The journey from customer satisfaction to business growth
This year’s report shows that the main goal of QA and software testing is to contribute to business growth and outcomes. Last year, the WQR respondents showed more interest in achieving the satisfaction of the end consumer.
We believe that companies not only pay attention to meeting end-user needs directly – they do it indirectly through achieving business growth.
If the cost of doing business is experiencing a decrease due to the introduction of high-quality software, the price of a service or product for the end user is reducing as well. That means that they are more likely to opt for your offerings rather than your competitor’s.
At the same time, reaching user satisfaction is still a focal area and can be seen to supplement the number one priority goal – contributing to business outcomes – and fully attain it.
Let’s take an online shopping experience as an example and explore the aspects that may define its success in the market.
- The satisfaction and the level of users’ loyalty directly depend on how easy and fast they can find the right product on the website and buy it.
- For business growth, the store has to function flawlessly. If the website is down, it does not generate profits.
- The new or outstanding functionality that differentiates your website from millions of others is important too. Let’s say you have a feature for “automatic selection of the cheapest delivery option”. This small enhancement can make your buyers happier – they’ll get what they need cheaper and faster.
In a nutshell, these three main aspects join forces to deliver top-notch software and make both the business owner and the end customer happy.
The premise of goals priorities changes
Customer-facing products are the new normal for the day. For instance, mobile technologies have taken a big step forward over the past few years, and intelligent connectivity has played not an insignificant role. Developing such software has become easier, and the focus has shifted to internal systems, which should support more complex business logic.
In the above-mentioned example, from the user’s point of view, an online store should be an easy-to-understand application with intuitive functional filling. But the selection of the optimal delivery solution requires a more complex algorithm, which should consider different transporters, delivery methods, and more. So now, the focus is shifting to solving comprehensive business issues.
Interestingly, artificial intelligence and machine learning are technologies that end users do not even always recognize while using a software product. However, they strongly affect the cost of doing business in general, allowing you to deliver a more competitive solution to the demanding market.
Is there a formula for software success?
Any leader should pay attention to the wise combination of the top three core QA goals defined in the WQR:
- Provide business growth and outcomes
- Prevent software defects before go-live
- Assure end customer satisfaction.
Apart from these business goals, the following tech objectives are also quite important:
- Protecting corporate branding
- Enhancing software quality
- Shifting testing left.
The representatives interviewed by WQR also highlighted the rising quality and security awareness among other disciplines as an objective. It may not seriously affect the business directly. However, being professional in providing users with a high-quality solution rather than teaching them the basics of some aspects can be a more reliable approach.
Aligning QA into Agile and DevOps
With 18 years of Agile viability, it is still not a one-size-fits-all practice. Unfortunately, at some point, Agile turned into a buzzword when companies were not delving deep into the process but were happy to say, “We are agile!”
As a result, many businesses implemented Agile methods and were surprised that the results were not dazzling. Why is that?
- Sometimes low-skilled Agile consultants overpromise and under deliver some aspects, leaving many unresolved issues unattended.
- Only a few practices were implemented, and the wow effect was never realized.
- And let’s be honest, in some cases, this model simply does not fit the company at the particular development stage it was adopted.
The list of such reasons is endless. It depends on the way the issues are approached and whether the project management process is built correctly. The first and the most important rule when using any methodology is to understand what you are trying to achieve, which is basically defining the main pain points. Only then one can select the necessary tools and means – not the other way around.
Challenges in Agile and DevOps implementation
This year, the WQR respondents highlighted the primary challenges in adopting Agile and DevOps – operational and business priorities. This is the most important question in introducing new processes into a company.
It often happens that operational activities and tight deadlines prevent the companies from stopping and reflecting on their strategic development. This is something that should be done every now and then and ask themselves, “What could be a better decision in this case in the long term?”
Is it worth taking some time to review and re-engineer the process and automatically promote the build to production in 5 minutes?
OR would it be better to rush it manually and spend 10 hours on the task later? The decision for the long-run process seems to be the more feasible process, right?
Under tight deadlines, companies feel it’s acceptable to solve the problem TODAY using traditional means instead of building a long-term solution that can be cheaper, faster, simpler and, most importantly, that can exclude the human factor in the future.
Below, we see the correlation between the operational and business priorities challenge with another one – talent/skill set.
- In-house team
If there is a skilled leader who has already worked with DevOps or Agile approaches, the process of implementation is faster and more easily accepted by all participants involved, both from the IT and business departments.
- External team
Another common option is hiring external experts to tune the process according to the “set” rules (that might not work out in the specific case, as they do not usually dig into the company’s culture). In such cases, after six months or a year, teams strongly reject new approaches and want to get rid of them.
To avoid such mistakes, remember that the team should become a full-fledged participant in implementing new methodologies, adapting them to company’s standards, new participants should be helped in joining the process, and get used to the whole flow.
Apart from technology stack, executive support, and culture, education can also prove to be a challenge. Both DevOps and Agile practices continue to evolve: new approaches and tools are being developed, some practices are abandoned, and so on. Therefore, it is extremely important to constantly deepen and expand knowledge, discover the success stories of Agile and DevOps adoption in the era of continuous innovation, and so on to enhance expertise.
New and old challenges in applying testing to Agile developments
Compared to the WQR 2018–2019, this year we see the emergence of two new problems:
- Estimation of test efforts in Agile
- Lack of QA guidelines and reusable QA solutions for the teams.
Let’s try to figure out why this happened.
The estimation of test efforts seems to be a fairly common problem. And it is directly related to the assessment of the team’s velocity and capacity. Scrum says it’s normal: you need several stable sprints to run with a team before you can understand their true velocity.
At the same time, some external factors may periodically affect these indicators.
- When a team is formed and works perfectly bringing great results to the place, the evaluation of the testing efforts is greatly simplified. In some cases, the root of the problem might be that a QA team is not part of a scrum team, which means they cannot fully participate in sprint planning or interchange each other.
- When companies talk about quality, they often mean a team of testers, though, quality starts with the development process and techniques and even with requirements.
Test automation is not a silver bullet, but when it is used wisely, the benefits from it cannot be overlooked.
What about the number one challenge defined in the list by WQR? The lack of appropriate test environment and data. Though it may sound strange, it seems to be a little bit contrived.
Yes, to create the environment that is used in the real world for the BFSI or telecom sector is not simple and is very expensive. Fortunately, now it is possible to use virtualization tools and various emulators. They are not perfect, but sometimes it’s the only way out. In addition, in such situations, it might be the right choice to comprehensively evaluate the testing approach.
For example, we know that customers do not place orders at night in an online store, so why don’t we use the production environment at this time to conduct tests?
Many companies are also unable to apply test automation at appropriate levels. To make it up to the desired level, each time, when making a decision about the need for automation and determining the desired coverage, focus on a simple indicator – ROI.
Of course, in an ideal world, one can apply test automation for 100% of the cases or test scenarios. But we do not live in an ideal world, which means it’s worth considering TCO and carefully determining situations in which automation will be useful and won’t become a burden.
Test automation: How to overcome its difficulties
It seems to be quite challenging to achieve the desired level of test automation. Here are three ways to get the full benefits from it.
1. Accurately choose the test automation approach and tools
Doing so, you can reach a high return on automation and get your priorities right, making test automation solutions relevant and sought after on the project.
A common problem is companies complaining they can’t find the right tools while they have too many of them. The heart of the issue lies in the planning and preparatory stages of test automation implementation.
If you weigh the pros and cons and choose the right tool (even if it’s not perfect) in time, then a problem will not arise at all. Unfortunately, often, instead of such a balanced decision, companies start experimenting and fail as a result.
Of course, there are exceptions when such experiments can be justified. If you need to effectively automate testing for both mobile and web applications, there is no need to search for one solution. Finding two solutions that can be integrated into the test automation process is quite a realistic approach and will allow you to control the number of tools without ignoring the advantages of each one.
2. Leave aside unrealistic expectations about test automation
It is worth noting that the introduction of automation is an investment that will bring results but not always from the first day. Build a model that allows you to evaluate the usefulness of automation on your projects and track KPIs.
3. Make sure that people who implement automation know their business
Often succumbing to advertising about the latest tools that are easily used and maintained, automation is transferred to people who have never implemented it before. The expected results cannot be improved, and the effectiveness of such initiatives is questionable.
The WQR offers the following solutions to the problems that companies face in automation: think about test automation as a broad and connected intelligent platform. Not just as a capability.
Test automation is a limitless discipline that cannot be understood in a single day and it’s as comprehensive as developing an architectural solution for a future application. You should not leave it for later. If you approach it wisely, then you don’t have to redo it, and the ROI will be really high.