Five key trends in Testing and QA, that you should keep in mind
I recently had the pleasure to attend the Software QS-Tag conference in Frankfurt am Main. The conference has been a very good occasion to feel the pulse of Testing in the German-speaking area, to learn something new and of course to get to know experienced professionals in the testing area.
The motto of this year’s conference was “Expanding Horizons”, which I see as a fundamental need for everybody involved in testing activities, given the fact that new technologies, new trends and new demands are deeply changing the way we test and will dramatically impact the meaning itself of “Testing” in the upcoming years.
In this sense, the opening keynote held by Joachim Herschmann, Senior Director at Gartner, was both enlightening and inspiring. Its title was “The End of QA As We Know it or The Departure to new worlds”.
The need to modernize Testing and QA
Herschmann started stating that we currently are in the 4th industrial revolution and that quality is the key to ensure success in such a context. In the last decades, different paradigms drove innovation in Testing and QA, the last being DevOps. DevOps is a business-driven approach, which requires continuous delivery of quality. That in turn requires a new approach to designing, delivering and testing software with repercussions on the culture and therefore on the structure of the organizations.
The main challenge for Testing and QA here is to correctly adapt to the DevOps cycle, becoming an integral part of it: Testing is not a defined moment in the DevOps loop, it is rather an activity that occurs, in different forms, in all its areas. There is the need to shift from “projects” to “products” and become business-focused, adaptive and iterative.
5 key trends in Testing and QA
Looking at the future of Testing and QA, Herschmann mentioned the factors and key trends which will influence it.
1. Non-functional Testing
The first one to be mentioned is non-functional Testing. It is a fact, that “the lack of a formal approach to the management of testing for non-functional quality characteristics of applications is a gaping hole in the QA processes of most organizations” (J. Herschmann). Among non-functional tests, a prominent place is reserved for usability and user experience testing. In the future (actually already nowadays) it will not matter much how many bugs one finds, but rather “does it work for the user?” Follow the link to read the full article on non-functional Testing with focus on usability testing.
2. Agile and DevOps practices
Another important influence factor in shaping the future of Testing are Agile and DevOps practices. Continuous integration and continuous deployment will demand for a complete test automation, which will go beyond the simple test execution aspect, requiring a full range of roles to be involved (ranging from the DevTester through the Test Automation Engineer to the Subject Matter Expert) and the use of several tools (more and more open-source) as part of the DevOps toolchain.
Strongly related to Agile and DevOps practices is the move from monolithic three-tier architectures to mesh apps and microservices architectures. That needs a focus shift from UI testing to API Testing.
3. Artificial Intelligence
Probably the most promising technology and therefore the strongest disrupting factor for the future of Testing is Artificial Intelligence. In 2017 Gartner declared that “by 2022, 40% of application development projects will use AI-enabled test set optimizers that build, maintain, run and optimize test assets”(Gartner Predicts 2018: Application Development). The complexity of applications and software products is growing exponentially, and it will be more and more difficult to test them thoroughly. Moreover, it won’t simply be possible to keep the pace with a delivery cycle which is already going to hours and will possibly reach the minute-scale in the next years. The only way is to have more intelligent testing, to test maybe less, but smarter and faster. That is exactly where the aid of artificial intelligence will become key to success. Herschmann mentioned some of the areas where the help of AI will be fundamental, like automated test design, optical object recognition, automatic test data generation and test insights.
In my opinion, the Artificial Intelligence technology is not yet mature enough to accomplish all that and I doubt that Gartner’s prediction will become true. Nevertheless, AI has by far the biggest potential among all existing technologies to disrupt the future of software engineering in general and of software testing in particular, and it is imperative to start familiarising with it.
4. Customer-focused metrics
Another aspect of testing which will need to change in the future is the use of metrics. It will be needed to shift from internally focused to customer-focused metrics, which will be based on customer satisfaction, on results of A/B testing, on frequency and response times of key transactions rather than on the usual defect resolution rate. It is already now a matter of fact that the time needed to restore a service is for the user more relevant than a defect in the service itself. Lern in this article, on which metrics you should focus to measure user experience.
5. Continuous Quality Strategy
All the above-mentioned leads to the need to change the way we think about Testing and QA, embracing a Continuous Quality Strategy and thus fostering a quality culture, ensuring teams create a superior user experience. That implies a fundamental cultural change, shifting the focus to the products, adapting processes and practices to be more effective and mitigating risks before progressing. A design-prototype-develop-operate cycle will most likely suit these needs:
How can we prepare for the future?
Given the challenges ahead of us, it is of the utmost importance to start preparing to face them the proper way.
According to Herschmann, the starting point has to be the adoption of the aforementioned Continuous Quality Strategy, moving from “quality control” to “quality assistance”, socializing the idea that everyone is responsible for quality and starting and ending with the user in mind. Quality should be infused right from the inception of an idea: to accomplish this, a collaboration with UX designers and CX teams is needed.
The scope of testing practices shall be expanded to permeate, as explained before, the whole DevOps loop, shifting contemporary left (model-based testing, acceptance test-driven development etc) and right (business data correlation, real user monitoring etc) and becoming bold enough to start experimenting on the production system (“Chaos Engineering”).
Processes will be modified, re-engineered or totally disrupted. In such unsure situations, there is a strong tendency to search stability in a tool, using it to drive the change. That is a bad error! Using tools to define processes is never a good idea. A tool is in fact limited in itself (to the targeted context and use cases) and will limit the definition, execution and flexibility of the processes.
I am personally excited about the challenges ahead of us and see them as an opportunity to learn and improve. Change is inevitable and must be welcomed and embraced. This mindset is, in my opinion, the first step to get ready for what is coming in the future.
Photo by Product School on Unsplash