• Skip to main content
Early Bird offer - - Ends 30th Sep - Book Now!

AutomationSTAR

Test Automation Conference Europe

  • Programme
    • AutomationSTAR Team
    • 2026 programme
  • Attend
    • Why Attend
    • Volunteer
    • Location
    • Get approval
    • Bring your Team
    • 2025 Gallery
    • Testimonials
    • Community Hub
  • Exhibit
    • Partner Opportunities
    • Download EXPO Brochure
  • About Us
    • FAQ
    • Blog
    • Test Automation Patterns Wiki
    • Code of Conduct
    • Contact Us
  • Tickets

EXPO

Sep 03 2025

Test Gap Analysis: Reveal Untested Changes

In long-lived software, the majority of errors originate in areas of the code that were recently modified. Even with systematic testing processes, a significant portion of such changes often gets shipped to production entirely untested, leading to a much higher probability of field errors. Test Gap Analysis (TGA) is designed to identify code changes that have not been tested, enabling you to systematically reduce this risk.

Scientific background

The efficacy of TGA is supported by scientific studies. One such study on a business information system comprising approximately 340,000 lines of C# code, conducted over 14 months, revealed that about half of all code changes went into production untested, even with a systematically planned and executed test process. Critically, the error probability in this changed, untested code was five times higher than in unchanged code (and also higher than in changed and tested code).

This research, along with comparable analyses conducted in various systems, programming languages, and companies, underscores the challenge of reliably testing changed code in large systems. The core problem is not a lack of tester discipline or effort, but rather the inherent difficulty in identifying all relevant changes without appropriate analytical tools.

How does TGA work?

TGA integrates both static and dynamic analyses to reveal untested code changes. The process involves several key steps:

  • Static Analysis: TGA begins by comparing the current source code of the system under test with the source code at a baseline, e.g., the last release. This identifies newly developed or modified code. The analysis filters out refactorings (e.g., changes in documentation, renaming of methods or code reorganization), which do not alter system behavior, thereby focusing attention on changes that could introduce errors.
  • Dynamic Analysis: Concurrently, TGA collects test coverage data from all executed tests, including both automated and manual test cases. This provides information on which code has been executed during testing.
  • Combination and Visualization: The results from both analyses are then combined to highlight the “Test Gaps” – those code areas that were changed or newly implemented but were not executed during testing. These results are typically visualized using treemaps, where rectangles represent methods or functions (sized proportionally to the amount of code inside them).

On these treemaps:

  • Gray represents methods that have not been changed since the last release.
  • Green indicates methods that were changed (or newly written) and were executed during testing.
  • Orange (and red) signifies methods that were changed (or newly written) but were not executed in any test, highlighting the critical “gaps” where most field errors are likely to occur.

Impact

TGA is highly effective when applied continuously, e.g., to provide feedback to developers on pull/merge requests, to product owners on tickets, or the test managers on dedicated dashboards – enabling informed decisions about additional testing needs. It significantly reduces the amount of untested changes that get shipped, and has shown to reduce field errors by 50%.

Learn more about TGA and other test optimizations in our free online deep dives!

Author

Dr. Sven Amann

Sven is developer and software-quality consultant at CQSE GmbH. He studied computer science at TU Darmstadt and PUC de Rio de Janeiro and did his PhD in software engineering at TU Darmstadt. Sven is a requested (keynote) speaker on software quality topics at conferences, meetups, companies and universities around the world, drawing inspiration from his vast project experience working with CQSE’s many customers across all industries.

CQSE are exhibitors in this years’ AutomationSTAR Conference EXPO. Join us in Amsterdam 10-11 November 2025.

· Categorized: AutomationSTAR · Tagged: EXPO

Sep 01 2025

Leave Complexity Behind: No-Code Test Automation with Low-Code integration via Robot Framework and TestBench

Fast releases demand efficient testing – but traditional test automation is often too complicated. TestBench and Robot Framework combine no-code test design with low-code implementation. The result: test automation that is clear, fast, and flexible – without technical barriers.

Challenges in Test Automation

Agile software development demands high quality and fast delivery cycles. Test automation is essential for this – but comes with two typical hurdles:

1. Separated know-how: QA testers know the requirements, technical automation engineers know how to implement them. However, the other knowledge is often missing.

2. Delays due to disruptions in the processes: Changes to automated tests often require successive work steps between the QA specialist and technical teams – which takes time.

Goal: Specification = Automation

The solution: An approach in which tests are automated directly during specification – without prior technical knowledge on the QA specialist side or detailed domain knowledge on the technical side.

This article shows how a combined no-code/low-code approach with TestBench and the Robot Framework closes precisely this gap.

Expertise and Technology – Thought of Separately, Strong Together

The idea: Professional test design and technical automation are created in specialised tools – TestBench for the specification, Robot Framework for the execution.

Both tools are based on the principle of Keyword Driven Testing and exchange test data and structures via defined interfaces. This enables a clean separation – and efficient interaction at the same time.

Keyword Driven Testing with TestBench

With the test design editor in TestBench, test cases can be put together using drag-and-drop from reusable steps, the so-called keywords – without any programming knowledge. Test data is defined as parameters or in data tables and clearly managed.

The advantages:

• Clarity: Each keyword stands for an action and generates its own test result.

• Reusability: Keywords can be used multiple times and maintained centrally.

• Efficiency: Changes only affect individual keywords – not the entire test case.

Example:

A vehicle consisting of a basic model, special model and several accessories is to be configured. The test sequence required for this is mapped using three keywords:

The parameter list of the test sequence maps the data interface of the test sequence:

The values of the test sequence parameters are stored in data types and can be assigned values in the associated data table:

Each line of this table represents a run of the test sequence with the values from the line, i.e. it represents a specific test case. The specifications of the test cases are created in TestBench, which serve as a template for the implementation of the test automation in the Robot Framework. TestBench therefore represents the no-code part of the solution.

Keyword Driven Testing with Robot Framework

The Robot Framework also relies on the Keyword Driven approach, in which test steps are described by reusable commands, the keywords. The advantage: The tests are structured in tabular form, are easy to read and can also be understood by non-technicians. However, basic programming knowledge is helpful for implementing technical keywords. Robot Framework comes with many standard libraries (e.g. BuiltIn, OperatingSystem, Collections) and can be extended by hundreds of specialised libraries – for example for web tests with Selenium or Browser Library, SAP with Robosapiens, databases, APIs and much more. Customised libraries only need to be developed for very specific requirements. The tests themselves are usually created in VS Code or IntelliJ IDEA – supplemented by plugins such as RobotCode, which enable syntax highlighting, code completion and test execution directly in the IDE.

Example: Vehicle configuration by keywords

A simple test case, e.g. for configuring a vehicle, could look like this:

In this illustration, each step of the test procedure is described using a single keyword – such as Select Base Model, Select Special Model or Select Accessory. Each keyword takes on a clearly defined task – and can be reused several times.

The technical realisation takes place on several levels: A keyword such as Select Base Model calls up other keywords internally – for example to find UI elements, wait for visibility and make a selection.

Transparency at every level: the Robot Framework protocol

A major advantage of the Robot Framework is the detailed logging of each test step – including all keywords called, times, success or error messages:

As can be seen in the example, the Robot Framework not only documents the process of the keyword select base model but also shows all internal steps – from the mouse click to the selection of the correct option. Errors can therefore be analysed down to the lowest level.

Technology that adapts – and integrates

Thanks to the large selection of libraries, almost all technologies can be tested with Robot Framework – web, mobile, desktop, databases, APIs, SAP, etc. Different libraries can even be combined within a test case, enabling flexible end-to-end scenarios: from web browser to SAP to mobile app – and back again.

In combination with TestBench’s no-code design, this results in a consistent, efficient automation approach: QA testers specify – technology implements. Fast, legible and robust.

Test Design Meets Automation – Seamlessly Synchronised

The test cases specified in TestBench are transferred directly to the Robot Framework – where they are implemented with technical keywords. Conversely, already realised keywords from Robot Framework can be transferred back into TestBench and used for new tests.

The speciality:

Top-down and bottom-up work simultaneously.

QA testers create scenarios, technical teams develop the appropriate keywords. Everything remains synchronised via a dedicated TestBench extension for Robot Framework – without media discontinuity or loss of time.

TestBench acts as a leading system: it generates test cases, expects ready-made keywords – and controls the execution. The test data is also transferred directly, which does not require any separate data logic on the technical side.

Result: Specification = Automation.

Advantages of the No-Code/Low-Code Combination

The integrated solution consisting of TestBench and Robot Framework offers numerous advantages:

Simple test design: Users with domain knowhow create tests without detailed technical knowledge.

Centralised keyword management: Domain specific and technical keywords are clearly separated – but centrally available.

Efficient collaboration: Clearly defined responsibilities, seamless exchange.

High maintainability: Keywords can be maintained with pinpoint accuracy, changes are implemented quickly.

Parallel working: Specification and implementation take place simultaneously – without dependencies.

Future-proof: The architecture remains flexible and expandable – especially in the rapidly developing technology sector.

Conclusion: Test automation that adapts – not the other way round

The combination of no-code test design with low-code automation elegantly solves the typical challenges in test automation:

• Domain specialists and technical teams work together efficiently.

• Automated tests are created at an early stage – and adapt with flexibility.

• The solution scales – from small scenarios to large test suites.

Compared to pure no-code solutions, the approach is significantly more flexible, sustainable and technically robust – making it a future-proof choice for professional test automation.

Would you like to find out more about this topic? Then download our whitepaper now!

Author

Dierk Engelhardt

Dierk Engelhardt is TestBench product manager at imbus AG. With his many years of experience, he advises and supports customers in the introduction and customized integration of tools into the software development process. He also advises on setting up agile teams and integrating testing into the agile context.“

Imbus are exhibitors in this years’ AutomationSTAR Conference EXPO. Join us in Amsterdam 10-11 November 2025.

· Categorized: AutomationSTAR · Tagged: 2025, EXPO

Aug 20 2025

Discover Key Insights with The World Quality Report 2024-25

The latest World Quality Report is here, and it continues to be the go-to source for organizations seeking to stay informed in quality engineering and software testing. It offers valuable insights into the latest trends and developments and testing practices. As digital transformation accelerates across industries, this year’s edition presents critical findings on how businesses are adapting their quality strategies to meet new challenges, especially in an era dominated by emerging technologies like generative AI (Gen AI).

A significant aspect of this year’s edition is the exploration of how Gen AI is being leveraged to revolutionize QA and testing. As organizations increasingly adopt AI-powered tools to automate testing processes and generate predictive insights, the report examines how these technologies are improving efficiency, coverage, and accuracy in testing environments. Readers can learn about the ways AI is helping companies reduce manual intervention, accelerate release cycles, and ensure higher-quality software. The report also addresses the challenges of implementing AI-driven testing, providing guidance on how to overcome barriers to adoption.

68% of organizations report investing in AI solutions, and the technology has become a critical component of the quality transformation agenda. Gen AI is introducing unprecedented efficiencies in software testing and quality assurance (QA), helping organizations streamline operations, reduce manual intervention, and improve the accuracy and coverage of testing. The ability of Gen AI to create test cases and extract test data poses to significantly reduce the workload of quality engineers and testers.

In addition to overall trends, the World Quality Report delves into sector-specific insights and provides a detailed analysis for individual industries such as automotive, retail, energy, financial services, healthcare, manufacturing, and telecommunications. Industry leaders can how their peers are navigating unique challenges within their sectors. For instance, the report highlights how the banking industry is focusing on security and compliance in QA, while the retail sector is prioritizing the customer experience in its testing efforts. By offering a granular view of quality engineering in different industries, the report provides tailored recommendations for businesses to enhance their testing capabilities.

Whether you are a quality engineer, manual tester, business analyst, or CIO, the World Quality Report 2024-2025 is an essential resource for understanding the latest innovations in quality assurance and testing. You will see both high-level trends and industry-specific insights, the report equips readers with the knowledge on quality strategies, emerging best practices, and how to navigate the complexities of current software development. Explore The World Quality Report soon and discover how you can drive your organization’s quality transformation agenda forward.

Author

Olivier Félis

Olivier is a seasoned software testing and quality assurance professional with over 20 years of experience. Currently, he is a Senior Solutions Consultant and Practice Lead for the ALM solution at OpenText. Olivier has a strong background in managing complex test environments and driving innovation in testing methodologies within an integration company. He has led numerous large-scale projects in various industries including pharmaceutical, finance, and hospitality. For the past 3 years, Olivier has been involved in exploring new technologies and innovation to improve and facilitate software reliability and performance

Opentext were exhibitors at AutomationSTAR Conference EXPO 2025. Join us in Antwerp 4-5th November 2026.

· Categorized: AutomationSTAR · Tagged: 2025, EXPO

Sep 25 2024

Autonomous Test Generation: Revolutionizing Software Testing Through AI-Powered Approaches 

The rapid growth in software delivery as a solution for all business needs for organizations has intensified the demand for efficient and comprehensive software testing processes. Ensuring the quality, reliability, and security of software products is of paramount importance as they become increasingly integrated into various aspects of our lives. Traditional software testing methods such as manual testing and automated test scripting, can no longer keep up with the responsibility to identify and rectify defects that make the delivered software ‘defect-free’. In addition to be viewed as inhibitors of fast-paced delivery,  they are viewed as high cost activities. 

The recent advancements in artificial intelligence (AI) and machine learning (ML) technologies have given rise to a new paradigm in software testing, known as Autonomous Test Generation (ATG). This approach leverages advanced algorithms and techniques to automatically generate relevant test cases, thereby reducing human intervention and enhancing the overall testing process.  This article is the beginning of a series related to Katalon’s implementation of autonomous test generation, where we will explore the different types of autonomous test generation and their benefits and limitations for the real-world Quality Engineers embedded in the teams of tomorrow. Our goal is to provide you with the knowledge and understanding necessary to make informed decisions about applying autonomous test generation solutions in your software testing process. 

Autonomous Test Generation – Definition and Key Concepts 

Autonomous test generation refers to the process of automatically identifying, creating and executing test cases for a software application, with minimal human intervention. This approach leverages AI and ML techniques to generate test cases that effectively identify feature defects, vulnerabilities, and user experience issues in software products. 

The Role of AI and ML in Autonomous Test Generation 

AI and ML technologies enable the analysis of large amounts of data associated with the usage patterns, and applied data characteristics during interactions to predict and generate a suite of evolving test scenarios necessary for maximum confidence of the application. By applying these algorithms, ATG can: 

  1. Generate test cases that cover a strategic, data-centric range of scenarios. 
  1. Adapt to evolving software requirements and deployed codebases. 
  1. Optimize test cases based on historical data and prior outcomes. 
  1. Confidently predict and generate new tests based on user observations. 

How does it compare to traditional methods? 

Compared to traditional manual and automated testing methods, ATG offers several advantages: 

  1. Increased Confidence on system behaviors: ATG exhaustively tests different scenarios and edge cases, identifying potential bugs and errors, and providing more comprehensive test coverage. 
  1. Efficiency in test creation: AI-powered test generation can quickly create test cases, reducing the time and effort required for testing. 
  1. Effectiveness of workflow scenarios covered: Autonomous test generation can identify potential defects and vulnerabilities that might be missed by manual or scripted automated testing. 
  1. Scalability in test coverage: The AI-driven approach can easily adapt to large and complex software systems, making it suitable for a wide range of applications and industries. 
  1. Continuous adaptation to evolving usage patterns: Autonomous test generation can learn from testing results and adapt its strategies, leading to better test coverage and defect detection over time. 

Benefits of using autonomous test generation in software testing 

While manual testing remains an indispensable aspect of software development, its limitations can constrain the optimization of software quality. Autonomous test generation emerges as a groundbreaking solution, mitigating these challenges by automating the creation of test cases. Bringing an array of valuable advantages, autonomous test generation enhances time and cost efficiency, delivers extensive test coverage, and promotes seamless continuous testing and integration, thereby revolutionizing the software testing process. 

Time and cost efficiency 

By automating the process, developers can allocate their time to more value-added tasks, such as designing and implementing new features. Furthermore, the accelerated testing process reduces overall project costs by minimizing the need for human intervention and decreasing the likelihood of costly delays due to undetected issues. 

Comprehensive and accurate test coverage 

One of the most significant advantages of autonomous test generation is its ability to create a wide variety of test cases that account for a multitude of scenarios. This ensures more comprehensive test coverage compared to manual methods, reducing the likelihood of undiscovered defects or vulnerabilities in the software. Comprehensive test coverage is crucial for delivering high-quality software, as it increases the chances of identifying potential issues before they become critical. 

Continuous testing and integration for DevOps   

ATG enables continuous testing and integration, which is essential for modern software development methodologies like Agile and DevOps. With continuous testing, developers can identify and fix issues early in the development cycle, leading to faster delivery of high-quality software. This proactive approach to software testing also reduces the risk of costly post-release defects and contributes to an overall improvement in software quality. 

Maximizing Software Quality Through Autonomous Test Generation 

The true potential of ATG lies in its ability to not only streamline the software testing process but also elevate the overall quality of the final product. Autonomous test generation can lead to higher quality software by making an impact on defect detection, adaptability, and increased confidence in software releases. 

Increased awareness of defects  

By employing AI algorithms, ATG can generate a diverse range of test cases that account for complex scenarios. This breadth of test coverage increases the chances of continuously detecting defects that manual testing methods may overlook. Early identification and resolution of potential issues are crucial for maintaining high-quality standards in software development, making autonomous test generation an invaluable tool in the pursuit of high-quality digital experiences. 

Adaptability and scalability for evolving solutions 

One of the most significant advantages of autonomous test generation is its ability to adapt seamlessly to changes in software requirements or codebase updates. This adaptability ensures that test cases remain relevant and up-to-date, minimizing the risk of undetected defects due to obsolete test scenarios. Additionally, the scalability of autonomous test generation allows it to accommodate growing or evolving software projects, effectively addressing the quality assurance needs of increasingly complex systems. 

Increased confidence in software releases and positive user experiences  The comprehensive test coverage and efficient defect detection afforded by autonomous test generation foster a higher degree of confidence in the quality of software releases. This increased confidence translates into a reduced likelihood of encountering critical issues in production environments, leading to a better overall user experience. In turn, user satisfaction and trust in the software are enhanced, further solidifying the software’s reputation for quality and reliability. 

Challenges and limitations of autonomous test generation 

Challenge 1:  Incomplete Requirements and Specifications may result in limited tests  In many real-world situations, the documentation provided for software systems is often incomplete, ambiguous, or inconsistent, which can lead to inadequate test case generation. Autonomous test generation algorithms must be capable of handling these uncertainties, ideally filling in the gaps to create comprehensive test cases. This demands advanced AI techniques that can infer implicit information, which is still an area of ongoing research. 

Challenge 2:  Increased Test Counts based on Complexity of features may not be sustainable  As software systems become increasingly complex, the number of potential test cases grows exponentially. This creates a significant scalability challenge for autonomous test generation tools, as generating and executing exhaustive test cases can quickly become infeasible. Researchers are exploring various techniques, such as model-based testing, search-based testing, and AI-guided test generation, to overcome this obstacle. However, striking the right balance between coverage, complexity, and the computational resources required remains an open challenge. 

Challenge 3:  Integration with Existing Development Processes  Many organizations follow well-established development methodologies, such as Agile or DevOps, that dictate specific testing practices. Autonomous test generation tools need to seamlessly integrate with these processes to be effective, without disrupting the development team’s workflow. Additionally, compatibility with popular development and testing tools is essential to ensure the widespread adoption of autonomous test generation. 

Limitations  Despite the advancements in autonomous software test generation, certain limitations are inherent to the process. One such limitation is the inability to test certain aspects of software, such as usability, user experience, and aesthetics, which require human judgment. While autonomous test generation can produce a large number of test cases, it may not always produce meaningful or high-quality test cases that can effectively reveal defects. This highlights the need for continued research and development in the field to improve the overall quality and effectiveness of autonomously generated test cases.    

The importance of combining autonomous test generation with other testing techniques 

While autonomous software test generation offers the potential to reduce manual effort and enhance test coverage, it should not be considered a one-size-fits-all solution to all testing challenges. To achieve comprehensive and effective testing, it is crucial to combine autonomous test generation with other testing techniques, harnessing their complementary strengths to address various aspects of software quality.  

Complementing Test Coverage 

Autonomous test generation excels in creating test cases that cover a wide range of scenarios, based on the given requirements or specifications. However, as mentioned earlier, certain aspects of software quality, such as usability and user experience, require human judgment and cannot be effectively tested through autonomous test generation alone. By combining autonomous test generation with manual testing, organizations can ensure that both functional and non-functional requirements are adequately addressed.  Additionally, integration with other automated testing techniques, such as unit testing, integration testing, and system testing, can further bolster test coverage. While autonomous test generation can identify potential defects at a higher level, these other testing techniques can dive deeper into the code to catch issues that may not be apparent during higher-level testing. 

Leveraging Domain Knowledge and Expertise 

Incorporating domain knowledge and expertise is essential in the testing process, as it enables testers to create test cases that reflect real-world scenarios and potential edge cases. Autonomous test generation can struggle to capture this nuanced understanding of the software’s intended use. By combining autonomous test generation with domain-driven and expert-guided testing, organizations can ensure that test cases are not only comprehensive in terms of code coverage but also relevant and meaningful in terms of actual usage. 

Reducing Test Suite Maintenance Effort 

Test suite maintenance is an often-overlooked aspect of the testing process, as test cases must be updated and adapted to accommodate changes in the software’s requirements and functionality. While autonomous test generation can efficiently create new test cases, it may struggle to maintain and update existing test suites. By integrating autonomous test generation with techniques such as test case prioritization and regression testing, organizations can effectively manage their test suites, ensuring that they remain relevant and effective over time. 

Enhancing Quality (and maturity) of Testing Strategy 

Combining autonomous test generation with other testing techniques can lead to improved test case quality. Techniques such as mutation testing, which assesses the test suite’s ability to detect faults by injecting artificial defects into the code, can be employed to evaluate and enhance the quality of autonomously generated test cases. By iteratively refining the test cases, organizations can ensure that their test suites are not only comprehensive but also effective at detecting defects. 

Wrapping up 

Autonomous test generation, powered by AI and ML technologies, has the potential to revolutionize the software testing landscape, delivering significant benefits in terms of efficiency, effectiveness, and scalability. By automating the generation and execution of test cases, this approach promises to enhance software quality, foster a higher degree of confidence in software releases, and improve user satisfaction. 

However, it is important to acknowledge the challenges and limitations associated with autonomous test generation, such as handling incomplete requirements, addressing scalability and complexity, generating adequate test oracles, and integrating with existing development processes. Furthermore, autonomous test generation should not be considered a standalone solution; rather, it should be combined with other testing techniques to ensure comprehensive and effective testing that addresses both functional and non-functional requirements. 

As the software industry continues to evolve and grow, the need for efficient, effective, and scalable software testing methods will only increase. By embracing the opportunities and addressing the challenges presented by autonomous test generation, software developers, testers, and industry practitioners can leverage the power of AI-driven testing to deliver high-quality, reliable, and secure software products that meet the ever-changing demands of today’s complex digital world.  

Author

Alex Martins Vice President of Strategy at Katalon, Inc. 

Alex is a seasoned leader in the technology industry with extensive international business experience in agile software engineering, continuous testing, and DevOps. Starting out as a developer and then moving into software testing, Alex rose through the ranks to build and lead quality engineering practices across multiple enterprise companies from different industries around the world. Throughout his career, Alex has led the transformation of testing and quality assurance practices, as well as designing enhanced organizational structures to support the culture change necessary for successful adoption of modern software engineering approaches such as Agile and DevOps, and how these are being further transformed with Generative AI. 

Katalon was a Gold Sponsor at AutomationSTAR 2024.

· Categorized: AutomationSTAR · Tagged: 2024, EXPO, Gold Sponsor

Sep 13 2024

Eight recipes to get your testing to the next level

You’re doing well in testing. Your systems and business processes are well covered. Test automation is on track. Your reports are nice, shiny, and green. All is good.

But then you go for a beer with your colleagues.

You discuss your daily work. And, at least in Vienna (Austria), it is traditional (and not uncommon) to open up with friends, share your workday, and even complain in such a setting. You realize there’s still lots to do.

Every morning, failed test cases need to be analyzed and filtered. Some flaky tests are keeping the team busy – they are important tests, but they refuse to stabilize. Changes in product and interfaces are breaking your tests, thus requiring maintenance. The team must refactor and weed out redundant tests and code multiple times.

In short, it seems there is a lot of work to be done.

This article will guide you through some test automation pain points that will likely sound familiar. But every problem also has a solution. Along with the pain points, we’ll also highlight possible approaches to alleviate them. For most of these issues, Nagarro has also developed mature solutions (see our “AI4T“) – but that is not what this article is about.

What’s cooking? 

Innovation is like cooking – it is about listening to feedback and striving to improve by not being afraid to experiment and bravely trying out new things.

We’ve prepared this dish many times – so you need not start from scratch! And to top it off, we’ll even provide a basic recipe to get you started.

== First Recipe ==

From “Oh no – all these fails, every single day…” to “We can focus on root causes!”

You come into work (be it remotely or in the office). You’re on “nightly run duty.” Some tests in your portfolio have failed.

Step 1: You sit down and start sifting through. After about two hours, you identify seven different root causes and start working on them.

Step 2: Fixing test scripts, fixing environment configurations and logging actual issues.

Wouldn’t it be nice to skip step 1? Let’s say you have 3000 automated system test cases. And about 4% of them fail. That means 120 failed tests to analyze. Each and every day. That’s a lot of work.

But you do have a lot of historical data! Your automated tests and the systems you’re testing produce log files. You need to analyze the root cause – so if you capture it somewhere, you have a “label” to attach to each failed test case.

And that is precisely what you can use to train a Machine Learning algorithm.

So from now on, in the morning, you get a failed test result and a presumed root cause associated with it. This enables you to look in the right places, assign it to a specific team member with special skills, and skip all tests with the same root cause you just fixed. What an effective and efficient, wonderful and mouth-watering prospect, isn’t it?

== Second Recipe ==

From “Why do they keep changing things?” to “Our automation has an immune system.”

Systems change in an agile world (and even in a “classical” world). A lot. Both on the User Interface side and on the backend. The bulk of a test automation engineer’s time is spent on maintaining tests or changing them along with the product they test.

Now imagine, wouldn‘t it be great if your automation framework could, when some interaction with the system under test fails, check if it is likely an intended change and automatically fix the test?

Let’s say your “OK” button is now called “Confirm”. A human would likely take this change, maybe make a note of it but largely ignore it. It’s most likely they would not fail the test case. But guess what, your test automation might stumble here. And that means:

  • Analyzing the failed test case
  • Validating the change manually (logging in, navigating there etc.)
  • Looking for the respective automation identifiers
  • Changing them to the new values
  • Committing those changes
  • Re-running the test

All this can easily consume about 15 minutes. Just for a trivial change of word-substitution. We do want to know about it, but we don’t want to stop the tests. Imagine if this change is in a key position of your test suite – it could potentially block hundreds of tests from executing!

Now if your framework has some way of, instead of failing, noticing that “OK” and “Confirm” are synonyms, and validate some other technical circumstances to be confident that “Confirm” is the same button as “OK” used to be, it can continue the test.

It can even update the identifier automatically if it is very confident. Of course, it still notifies the engineer of this change, but it is easy for the engineer to take one quick look at the changes and decide whether or not they are “safe”.

== Third Recipe ==

From “AI in testing? That means huge amounts of data, right?” to “We already have all the data we need.”

Machine Learning requires thousands of data points, right? Maybe, even millions?

Yes and no. Let’s take our example from the first delicacy – finding out the root causes for failed test cases based on log files. Since log files are fairly well-structured and deterministic, they are “easy” to learn for an ML algorithm – the usual complexities of human speech are substantially reduced here. This means we can use ML algorithms that are on the simpler side. It also means that we don’t need as much data as we would need for many other use-cases.

Instead of tens of thousands of failed test cases labeled with the root causes, we can get to an excellent starting point with just about 200 cases. We need to ensure they cover most of the root causes we want to target, but it is much less work than you would have expected.

Add to that the fact that test automation already produces a lot of data (execution reports, log files for the automated tests, log files for the systems under test, infrastructure logs, and much more) – which means that you’re already looking at a huge data pool. And we‘ve not even touched production logs as yet.

One can gain many crucial insights through all this data. It is often untapped potential. So take a look at the pain points, take a look at the data you have, and be creative! There is a hidden treasure amidst the ocean of information out there.

== Fourth Recipe ==

From “Synthetic data is too much work, and production data is unpredictable and a legal problem” to “We know and use the patterns in our production data.”

Many companies struggle with test data. On the one hand, synthetic test data is either generated in bulk, making it rather “bland,” or it is manually constructed with a lot of thought and work behind it.

On the other hand, production data can be a headache – it is not only a legal thing (true anonymization is not an easy task) but also something about which you don’t really know what’s in there.

So how about, instead of anonymizing your test data, you use it to replicate entirely synthetic data sets that share the same properties as your production data while adding constellations to cover additional combinations?

Ideally, this is an “explainable AI” in the sense that it learns data types, structures, and patterns in the data from production. But instead of “blindly” generating new data from that, it provides a human-readable rule model of that data. This model can be used to generate as much test data as you need – completely synthetic but sharing all the relevant properties, distributions, and relations with your production data. The model can also be refined to ensure that it suits the test targets, even more, learned rules can be fixed, unnecessary rules can be removed, and new rules can be added.

Now you can generate useful data to your heart’s content!

== Fifth Recipe ==

From “What is our automated test suite doing, actually?” to “I can view our portfolio’s structure at a single glance.”

Test coverage on higher test levels is always a headache. Code coverage often does not tell you anything useful at that level. Traceability to requirements and user stories is nice, but they also don’t really give you a good overview of what the whole portfolio is actually doing.

To get this overview, you have to not only dig through your folder structure but also read loads of text files, be they code or other formats, such as Gherkin.

But wait, there’s a catch here – Each test case, in a keyword-driven or behavior-driven test automation context, consists of reusable test steps at some level, representing an action. It could be a page-object-model-based system, or it could attach to APIs – either way, if our automation is well-structured with some abstraction on its business-relevant actions, the test cases will pretty much consist of a series of those actions, with validations added into that mix.

Now, let’s look at test cases as a “path” through your system, with each action being a step or “node” along the way. If we overlap these paths on all your test cases, we can quickly see the emergence of a graph. This is the “shape” of your test automation portfolio! Just one brief look gives you an idea of what it is doing.

Now we can add more info to it: Which steps have failed in the last execution (problematic color nodes as red)? How many times is a certain action performed during a test run (use a larger font for often-executed test steps)?

These graphs quickly become quite large. But humans are surprisingly and incredibly good at interpreting graphs like this. This now enables you to get a very quick overview and find redundancies, gaps, and other useful insights.

== Sixth Recipe ==

From “We run everything, every single time. Better safe than sorry” to “We pick the right tests, for every change, every time.”

Large automated test portfolios can run for hours, if not for days. Parallelization and optimization can get you very far. But sometimes, resources are limited – be it in systems, data, or even hardware. Running all tests every single time becomes very hard, if not impossible. So you build a reduced set of regression tests or even a smoke-test set for quick results.

But then, every change is different. A reduced test set might ignore highly critical areas for that one change!

So how do you pick tests? How do you cover the most risk, in the current situation, in the shortest time?

Much like cooking a nice dish, there are many aspects that go into such a selection:

  • What has changed in the product?
  • How many people have touched which part of the code and within what timeframe?
  • Which tests are very good at uncovering real issues?
  • Which tests have been run recently? How long does this test take?

Again, you’ll see that most of this data is already available – in your versioning system, in your test reports, and so on. While we still need to discuss “what does ‘risk’ mean for your particular situation?” (a very, very important discussion!), it is likely that you already have most of the data to then rank tests based on this understanding. After that, it‘s just a matter of having this discussion and implementing “intelligent test case selection” in your environment.

== Seventh Recipe ==

From “Nobody dares to touch legacy code” to “We know the risk our code carries.”

Continuing on the topic of “risk,” we noticed something else: After spending a lot of time with a certain codebase, experienced coders get very good at knowing which code changes are dangerous and which are not.

But then, there is always some system-critical code written by a colleague who left many years ago, written many years before that. There is code that came from a vendor who is no longer a partner of the company. There are large shared code-bases that vertically sliced teams are working on, with no one having a full overview of the whole. And there are newer, less experienced colleagues joining up. On top of that, even experienced people make mistakes. Haven’t all of us experienced such scenarios?!

There are many systems to mitigate all this. Some examples are code quality measurements, code coverage measurements, versioning systems, and so on. They tell you what to do, what to fix. But they are not “immediate.” Imagine, you’re changing a line of code – you’re usually not looking up all of these things, or the full history of that line, every single time.

So how about a system that integrates all these data points:

  • Is this line covered by tests?
  • How often has it been changed by how many people in the last two days
  • How complex is it?
  • How many other parts depend on in?

We can also factor in expert opinions by, let’s say, adding an annotation. Then we use all this information to generate a “code risk indicator” and show it next to the class/method/line of code. “0 – change this. This is pretty safe”. “10 – you better think about this and get a second pair of eyes plus a review”. If you click on it, it explains all these points and why this score was given directly in your IDE.

The purpose is not to fix the risk, although it can be used for that too. But the primary objective is to give developers a feeling of the risk that their changes carry, before they make them.

== Eighth Recipe ==

From “Model-based? We don’t have time for that!” to “Models create themselves – and help us.”

Model-based testing has been on many people’s minds for many years. But it seems it never really “took off.” Part of the reason might be the complexity of these models, coupled with the fact that these models need to be built and maintained by experts. Apart from this, while these models are very good at generating many tests, they usually have blind spots around the expected outcomes of these tests.

So in most cases, model-based testing is not regularly applied and still has a lot of potential!

So how can we mitigate these issues? By automatically generating a usable model from the available information. You can use many methods and sources for this, like analysis for requirements documents, analysis of code, dependencies, and so on. The flip side of these methods is that the model is not “independent” of these sources but is an interpretation of their content.

But that does not mean that they can’t be useful.

Think back to our “fifth recipe” – generating a graph from our automated test suite. This is actually a state-transition model of our tests and, by extension, the product we’re testing (because the structure of our tests reflects the usage flow of that product). And it has potential.

We could, for example, mark a series of connected nodes and ask the system to generate basic code to execute these test steps in sequence. They will then be manually completed into a full test case. We could ask the system, “is there a test case connecting these two nodes?” to increase our coverage or “are there two tests that are both covering this path?” to remove redundant tests.

Since this model is not created manually, and since the basis, it is generated from (automated tests) is maintained to be in sync with our product, we do not need to spend any extra time to maintain this model either. And it has a lot of use-cases.

== Our traditional recipe ==

Ingredients:

  • 5 annoying everyday tasks and pains
  • A fridge full of data you already have
  • 1 thumb-sized piece of knowledge about Machine Learning
  • 20g creativity

Instructions:

  • Stir your thoughts, complain about the most annoying things
  • Add creativity, mix well
  • Take the knowledge about ML out of the package
  • Add it to the creative mix, gently stir in the data
  • Bake in the oven at 200°C, for the duration of an MVP
  • While baking, check progress and generated value repeatedly
  • Take out of the oven, let rest for a bit
  • Serve while hot – best served with a garnish of practical experience

Have fun and enjoy this dish!

If you have any questions on the test automation and software testing process improvement, don’t hesitate to contact us at aqt@nagarro.com. 

Download your free infographic with all 8 recipes! 

Author

Thomas Steirer CTO and Lead of the Global Test Automation Practice

Thomas Steirer is CTO and Lead of the Global Test Automation Practice. He has developed numerous automation frameworks and solutions for a variety of industries and technologies. At Nagarro, he supports clients implementing test automation and building scalable and sustainable solutions that add value. He is also passionate about using artificial intelligence to make test automation even more efficient. In his spare time, he teaches at universities in Austria and is an enthusiastic Gameboy musician.

Nagarro was a exhibitor at AutomationSTAR 2024.

· Categorized: AutomationSTAR, test automation · Tagged: 2024, EXPO

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Page 6
  • Go to Next Page »

Copyright © 2026 · Impressum · Privacy · T&C

part of the