Back to overview

Quality assurance with AI

Reading time approx. 6 minutes
15.02.2024

In the fast-paced world of agile software development, teams are always looking for new ways to increase their efficiency and overcome daily challenges in the most efficient way. Artificial intelligence (AI) plays a crucial role in this, especially when it comes to optimizing the entire testing process and actively supporting developers. For this reason, our Xperts are taking a closer look at various AI tools for test generation.

History and characteristics

Before we take a closer look at the examples, we would like to provide a brief overview of AI research to help you get a better understanding of the field. In the beginning, there were no concrete applications, only the desire to create computers capable of imitating human thinking. The term "artificial intelligence" was first used at the so-called Dartmouth Conference in 1956, which is considered the birth of AI.

After an initial peak phase, however, development stagnated from around the mid-1970s as reality fell short of expectations. Driven by LISP machines and expert systems, AI research experienced an upswing again in the 1980s. However, the euphoric spirit of optimism subsided again in 1987 and the field slowly recovered over the 1990s. Machine learning brought the first applications with a wide range of possible uses, such as search engines or spam filters. Here, intensive training with experience, i.e. data, is used to continuously improve the systems.

After 2000, deep learning finally led to a breakthrough in object recognition by computer programs. These systems are trained with extremely complex deep neural networks (ANN). The next big step came in 2014 with the emergence of generative adversarial networks (GAN). GANs are able to generate new data that is practically indistinguishable from real data. With the birth of applications based on large language models (LLM), such as ChatGPT, we have already arrived in the future.

However, it is impossible to predict with certainty where AI development is heading. Previous high points have always been followed by setbacks. Even though AI is currently being implemented almost everywhere, it remains unclear what impact this will have on AI research and on us humans. The only thing that seems certain is that anyone who wants to be competitive in the future will not be able to avoid the use of AI tools - not even in the IT sector. See our Xperts interview and our blog post Help me, AI is taking my job.

VisualAI

This form of AI is specifically designed to understand and generate visual information. VisualAI has the ability to identify objects and recognize patterns and is therefore applicable in numerous industries (e.g. medicine, automotive, retail, security). However, its properties also make it attractive for quality assurance in software development. Popular applications include AskUI, Haelenium, Eggplant, Maestro and Applitools.


google_maps_canvas Example Google Maps


The increasing use of canvas objects is causing ever greater problems in front-end testing, making it unmanageable in the long term with conventional test methods. This tests are usually based on a search of the DOM tree, which does not exist in canvas. Here, graphics are drawn at pixel level and not displayed as individual DOM elements. With the use of a VisualAI tool, it is possible to identify these canvas objects. For example, the screenshot of an application can be analyzed by AskUI. With the help of deep learning, the tool recognizes patterns and then segments the objects. This can be used to create GUI maps, which come as close as technically possible to human-computer interaction. Code selectors are also no longer required, as purely visual features are used.

Writing test cases

Writing code is a creative challenge for many developers. But when it comes to subsequently testing the written code, writing tests is sometimes perceived as repetitive and monotonous. This is exactly where our Xperts believe GPT can help. For less demanding work such as unit tests, for example, AI tools can do a great deal of preparatory work. Developers thus save time and increase their efficiency.

But what does this look like in practice?

Basically, you send GPT a request (prompt) to write a unit test and also transmit the associated HTML and JavaScript code. With a framework such as LangChain, the code can also be sent directly to GPT. New code is checked in and passed directly to GPT using a pipeline-like structure. The results are then retrieved and pushed to a branch. Developers and testers can then review the automatically generated tests using the tried-and-tested two person rule.

XRay test cases for quality assurance

In agile software development, individual teams are often confronted with bureaucratic challenges. Constantly moving tickets back and forth and maintaining extensive ticket descriptions can be extremely time-consuming. Training, comments, documentation and reports to management - the list seems endless. Sometimes there are also admin tasks and authorization problems. The good news is that the agile process offers a wide range of options for implementing AI tools in different project phases and thus optimizing them.

If you work with Jira, you may also be familiar with the XRay test management system. If this is combined with AI tools such as GPT in the right places, significant process improvements and increases in efficiency can usually be achieved. The following graphic shows a process flow supported by GPT.

Entwicklungsboard_eng

After the requirements have been specified by requirements engineering, the story is set to "Ready for Test" by the tester in order to evaluate the requirements. At this point, Azure Functions is used with a hook on Jira. The hook records the changes and forwards the story to GPT with a corresponding prompt. However, the quality of the generated results depends heavily on the prompt engineering. This ensures that the responses are comparable and of high quality. There are now many instructions online on how to create strong and targeted prompts.

Based on the prompt, GPT generates answers that serve as individual test cases. These can either be created directly via the XRay/Jira API or initially only added to the story as comments.

Finally, the generated test cases are displayed directly in the Jira ticket. We recommend controlling the entire automation with the help of keywords, for example by adding tags such as "ai-generated-tests". These tags make it clear that machine-generated tests are also involved. This gives users control over whether automatic generation should take place.

Conclusion

Our examples show that, at the current stage of development, there is no risk of testers losing their jobs due to the use of AI. On the contrary, it is clear that AI tools help testers to perform their tasks better and faster. It is important to recognize and combine the respective strengths. While humans have skills such as intuition, AI tools are extremely fast and fatigue-free, and also have an enormous amount of general knowledge. Nevertheless, it is important to pay attention to data protection compliance when working with AI systems, especially when it comes to personal data. In addition to personal data, IP and copyright protection are also an important issue and should always be taken into account. We are currently in the collaborative phase of AI development, which means that a human and a machine are very likely to achieve a better result than a machine or a human alone.