• Skip to main content
Don't miss out - Join us 4-5 Nov | 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 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

Sep 11 2024

What is codeless quality?

Codeless quality is about using automation and AI to support faster development and release cycles with less time and effort. By reducing the learning curve…

Codeless quality is about using automation and AI to support faster development and release cycles with less time and effort.

By reducing the learning curve for quality testing, companies can maximize testing coverage, allowing those closely involved in business analysts (BA) and product experts who typically have deep understanding of the product and/or service but lack technical acumen needed for automation.

Streamline testing and improve application quality.

Discover how to implement codeless quality now.

Let’s explore how codeless quality complements traditional test methods to deliver powerful, automated testing for impressive business wins.

Codeless quality helps teams test

Codeless quality removes the need for complex scripting and deep coding know-how, allowing teams to create and execute automated functional tests with ease.

This development approach leverages a user-friendly, visual interface, allowing users to create tests using point-and-click UI driven by AI object-detection, automated reusable steps to use for future testing and add checkpoints, and verification steps to ensure applications respond as expected.

Plus, with the right codeless testing tool, organizations can lean on AI object-detection to author resilient testing scripts, quickly and with little effort. Those scripts are immune to any changes in the applications underlaying framework, work seamlessly across browsers and mobile devices, and require very little maintenance between application releases.

Codeless test solutions help meet digital transformation mandates for greater test coverage and accelerate the software development cycle in three ways:

  • Reduce coding hurdles. Allow employees with diverse technical backgrounds to test applications with confidence. Guided by a graphical interface and intuitive approach, users can create test scenarios, verify the application’s adherence to specified functionality guidelines, and certify new releases, quickly while development is still going on. Users simply move through a test case and the codeless tool transcribes that experience into an automated test, freeing strapped programming resources and script maintenance overhead.
  • Make testing more collaborative. Giving everyone the ability to create test scripts without writing code promotes communication and collaboration among team members during the testing process—ensuring application functional glitches are identified and resolved early on. By streamlining the test automation process with application development processes, issues are being detected earlier, often during development, so they can be fixed sooner, thus users are able to focus on other value-add activities, such as test analysis and result interpretation.
  • Battle-test functionality. Create and execute a wide range of functional tests. With expanded testing coverage and the ability to run test scripts in multiples environments across multiple platforms, users spot potential glitches across different user scenarios and usage patterns.

Stay a step ahead with software development

Codeless capabilities offer a powerful solution for streamlining testing and improving application quality. By simplifying test automation and creating reusable scripts, testers can optimize efforts to ensure high-quality software delivery.

Enhance your testing capabilities to stay competitive in the ever-evolving software development landscape. Visit ValueEdge Functional Test and start implementing codeless quality today,

Author

Dylan Roberts Product Marketing Manager at OpenText

Passionate about functional testing tools, Dylan Roberts is a Product Marketing Manager at OpenText with 16 years of experience as a marketing communications professional. He has spearheaded multiple award-winning marketing campaigns. He oversees the creation and execution of go-to-market activities for OpenText DevOps and VSM solutions.

OpenText were exhibitors at AutomationSTAR 2024.

· Categorized: AutomationSTAR · Tagged: 2024, EXPO

Sep 05 2024

Unlocking Your Testing Data with Provar Automation, Provar Manager, and Provar Grid

In today’s Salesforce-driven world, quality assurance and testing are critical components of successful software development. And as we say here at Provar often, testing is no longer a nice-to-have — it’s a necessity for staying ahead of the competition and delivering the best possible product to your end users.

Efficiently managing and leveraging your testing data can lead to more accurate tests, increased visibility, accelerated testing processes, and future-proofness for your end-to-end operations. Provar’s suite of Salesforce-centric testing tools — Provar Automation, Provar Manager, and Provar Grid — offers powerful solutions to unlock your testing data, ensuring higher quality across your entire pipeline.

Let’s discuss how to unlock your testing data and use it to its full potential with these three solutions.

Provar Automation: Streamline and Enhance Test Creation

Provar Automation is designed to simplify and optimize the creation and execution of automated tests. By integrating seamlessly with Salesforce and other platforms, and with a big nod to its metadata-driven test building capabilities, Provar Automation enables teams to build robust, reliable tests that can adapt to changing requirements.

Here are some key benefits of Provar Automation in unlocking your testing data.

Enhanced Test Accuracy

With Provar Automation, you can create tests that closely mirror actual user interactions. This precision reduces false positives and negatives, ensuring that your testing data is accurate and actionable.

Comprehensive Data Utilization

Provar Automation allows you to harness your existing testing data effectively. By using real-time data inputs and outputs, you can build tests that are reflective of real-world scenarios, leading to more meaningful test results.

Accelerated Testing Cycles

Automation significantly cuts down the time required for test execution. By leveraging Provar Automation, you can run extensive test suites quickly, enabling faster feedback loops and reducing time-to-market.

Provar Manager: Centralized Control and Enhanced Visibility

Provar Manager is your command center for all testing activities. It provides a centralized platform for managing test cases, tracking progress, and ensuring collaboration across teams.

Here are some key benefits of Provar Manager in unlocking your testing data.

Centralized Test Management

Provar Manager consolidates all your test cases and test data in one place. This centralization simplifies the process of tracking test progress, identifying bottlenecks, and managing resources.

Increased Visibility

With Provar Manager, every necessary party in your organization can gain full visibility into the testing process, regardless of where they are in the world. Dashboards and reports provide real-time insights into test coverage, execution status, and defect tracking, ensuring that everyone is on the same page.

Improved Collaboration

Provar Manager fosters collaboration by providing a unified platform where team members can share information, track changes, and communicate effectively. This collaborative environment leads to more efficient problem-solving and better quality assurance.

Provar Grid: Scalability and Performance Optimization

Provar Grid is designed to address the challenges of scalability and performance in testing. It allows you to distribute your test execution across multiple environments, ensuring that your tests are both fast and reliable.

Here are some key benefits of Provar Grid in unlocking your testing data.

Scalable Test Execution

Provar Grid enables you to run tests in parallel across different machines and environments. This scalability is crucial for handling large volumes of tests and ensuring that your testing processes can grow with your needs.

Optimized Performance

By distributing tests across multiple nodes, Provar Grid ensures optimal use of resources, leading to faster test execution times. This performance optimization is essential for meeting tight deadlines and maintaining high-quality standards.

Future-Proofing Your Testing

Provar Grid’s scalable architecture means that as your organization grows, your testing infrastructure can easily adapt. This future-proofing ensures that your testing processes remain efficient and effective, regardless of how your requirements evolve.

Unlocking the Full Potential of Your Testing Data

Integrating Provar Automation, Provar Manager, and Provar Grid into your testing strategy unlocks the full potential of your testing data. Here’s how these tools work together to transform your testing processes.

Data-Driven Testing

By leveraging real-time and historical data, you can create tests that are highly reflective of actual usage patterns. This data-driven approach leads to more accurate and reliable test results.

Increased Test Coverage

With Provar’s tools, you can ensure comprehensive test coverage, identifying potential issues before they become critical problems. This proactive approach enhances the overall quality of your software.

Accelerated Time-to-Market

The combination of automated, centralized, and scalable testing processes significantly reduces the time required for test execution. Faster testing cycles mean quicker releases and a competitive edge in the market.

Future-Proof Operations

Provar’s scalable solutions ensure that your testing processes can grow with your business. Whether you’re expanding your team, increasing your test cases, or adopting new technologies, Provar’s tools are designed to support your evolving needs.

The proof is in our comprehensive library of case studies, but the real-life successes are waiting to be discovered by you and your team. We know that testing is a must if you’re using Salesforce, but it’s time to go a step further by unlocking your testing data to achieve its fullest potential. Not just any generic, one-size-fits-all testing solution will work for your needs, and Provar is ready to help support your unique roadmap as you scale, evolve, and innovate.

Want to learn more about how Provar Automation, Provar Manager, and Provar Grid can help your team unlock its testing data and increase quality end-to-end across your business processes? Connect with a Provar expert today!

· Categorized: AutomationSTAR · Tagged: 2024, EXPO

Jul 29 2024

Building an effective test automation framework synergized with Xray Enterprise

Test automation is an essential component in today’s software development landscape, where speed and quality are critical. It ensures the timely delivery of high-quality software by automating repetitive and time-consuming testing tasks.

However, the journey to effective test automation comes with challenges such as selecting the right tools, managing complex test cases, and enabling seamless integration of testing into the software development lifecycle.

Understanding test automation frameworks

A test automation framework is an essential foundation for any automated testing process. It’s a set of guidelines, tools, and practices designed to create and execute automated tests more efficiently. Some of the critical components of a test automation framework are coding standards, test and object repositories, and test data handling methods.

The primary benefits of implementing a framework include:

  • improving the reusability and maintainability of test scripts;
  • reducing manual errors;
  • increasing test coverage;
  • enhancing team collaboration.

Test automation frameworks come in various forms:

  1. Linear scripting framework: simple; this framework involves writing sequential test scripts with little to no modularity or reusability;
  2. Data-driven framework: it separates test data from the scripts, allowing tests to run with different data sets, enhancing test coverage, and reducing the number of scripts needed;
  3. Keyword-driven framework: this framework uses keywords to represent actions and data, making the scripts more reusable and easier to understand;
  4. Hybrid framework: combining elements of the above frameworks (often keyword- and data-driven ones), the hybrid approach offers flexibility and leverages the strengths of each framework type.

Some examples of the popular automation frameworks are Selenium, Cucumber, Robot, Appium, Playwright, Cypress. It is common for companies to take one or multiple as the foundation, and then further customize them for specific needs. Selecting the right framework type depends on the project goals and priorities as well as the team’s skills and experience.

Synergizing your test automation framework with Xray Enterprise

Establishing the effective connection between a test automation framework and Xray Enterprise involves a structured approach:

  1. Initial planning and strategy development: define the automation objectives, identify the types of tests to automate, and outline the framework’s structure. Consider the application’s complexity, the team’s skill set, and the project’s timeline;
  2. Tool selection and integration: choose automation tools that best complement Xray Enterprise’s capabilities and integrate them into the existing development environment. Ensure that the tools align with the overall automation strategy and team expertise;
  3. Script development and execution: develop test scripts following best practices such as modularity and reusability. Use Xray Enterprise’s features to import execution results and monitor design and execution progress;
  4. Continuous refinement and optimization: regularly review and refine the test automation framework. Utilize feedback and insights from Xray Enterprise’s analytics to optimize test scripts and processes.

Key features of Xray Enterprise for test automation

Xray Enterprise excels at complementing test automation frameworks with its extensive suite of features.

  • Execute: with the Xray Enterprise’s new feature, you can trigger the CI/CD integration from a Test Plan or a Test Execution without leaving Xray Enterprise, which significantly streamlines your automation workflow;
  • Import results: Xray easily integrates with automation frameworks via the versatile import of execution reports in various formats. You can learn more from our user guide, tutorials, and Xray Academy.
    • For the avoidance of doubt, you can import execution results even if the automation is not triggered from Xray;
  • Report and analyze: the tool offers customizable reporting and analytics features, enabling teams to generate detailed reports on requirement coverage, test execution, and defect summaries. These insights are crucial for informed decision-making and continuous testing process improvement;
  • Organize: Xray Enterprise provides robust, centralized test management capabilities – from creation to execution and reporting – ensuring a cohesive workflow;

With the support for multiple test types and a robust API you can track the results of your test automation alongside manual and exploratory efforts in a consistent manner. Since your testing assets are aggregated, it is easy to establish end-to-end traceability with all the requirement stories. This helps maintain a clear holistic overview of the testing process and ensures effective management of complex test suites.

  • Flexible configuration: Xray Enterprise is designed to cater to various testing needs, environments, and testing approaches;
  • Enhanced collaboration and visibility: the platform facilitates better feedback loops across teams with features that support sharing test cases, results, and reports. 

Xray Enterprise is a comprehensive solution for many test automation challenges, blending powerful features with user-friendly functionality. We invite teams and businesses to experience the impact of Xray Enterprise on their test automation efforts. Embrace the future of testing with confidence by choosing Xray Enterprise as your partner in delivering superior software solutions.

Author

Ivan Filippov – Solution Architect

Ivan Filippov is a Solution Architect for Xray. He is passionate about test design, collaboration, and process improvement.

XRAY is a EXPO Platinum Partner at AutomationSTAR 2024, join us in Vienna.

· Categorized: AutomationSTAR · Tagged: 2024, EXPO

Jul 22 2024

GenAI, or the triumph of a digital steam engine

If you compare the history of Generative AI with the development of the steam engine, you find surprising parallels. According to Wikipedia, the first steam engine patent was issued in 1606. This was followed by a century and a half of further development until James Watt achieved the breakthrough at the end of the 18th century. At first, he “leased” his steam engine as a service, but then – from 1800 onward – others developed their own machines.

The field of artificial intelligence (AI) has also been around for almost 70 years. Again, the beginnings were slow. It was not until 1997 that Deep Blue succeeded in beating the world chess champion Kasparov. The absolute breakthrough came in 2017 when Google presented the Transformer architecture. Within a very short space of time, the so-called “Large Language Models” (LLM) sprang up like mushrooms. When OpenAI made ChatGPT available to the public free of charge on November 30, 2022, the newest industrial revolution started. Today, most companies are dreaming of huge savings thanks to generative AI.

But is it realistic to believe that AI will do all the work for us? Isn’t it threatening to explode in on us like the steam engine did? Let us dive deeper into the topic.

What can we realistically expect from AI?

Trying to predict the future is certainly a foolish attempt. Nobody knows how we will use AI in ten years, but one thing is for sure: AI will change our life. The number of AI-based tools that are currently being developed seems to be almost unlimited. It will take some time for the wheat to be sorted from the cha.

Today, the various existing LLMs already provide us with the means to use AI in testing. The use cases are diverse:

  • Get a quick overview of the features to be tested to start the test analysis more easily,
  • Identify parameters and equivalence partitions and create test cases,
  • Translate test cases into a specific format (e.g. Gherkin),
  • Create test scripts,
  • Generate test data,
  • Reduce / optimize existing test cases, and many more.

If you are familiar with generative AI and formulate your prompt skilfully, you will get amazing results. However, it is important to keep in mind that AI is not intelligent in the sense that it really understands what it is saying. The Transformer algorithm only searches for semantic similarity. This produces astonishingly convincing answers, but the AI has not thought things through. We should therefore be wary of seeing AI as a replacement for an employee.

How to write structured prompts

A well structured prompt has six elements: context, role, instruction, constraints (if applicable), and output format. Take the following example:

Since LMMs only “think” in semantic similarities, it is helpful to repeat words and to provide examples. The more terms in the prompt point in the right direction, the better the answer will be.

In the example above, we find all elements of a structured prompt:

  • Context: test of a specific web application using Gherkin scenarios
  • Role: assistant for writing Gherkin test scenarios
  • Instructions: , determine the equivalence classes, create Gherkin scenarios, check coverage
  • Constraint: one file *.feature
  • Output format: determined by the output temple

Sometimes, the AI is going in the wrong direction. For example, it may ignore the invalid equivalence partitions or disregard the output format. In that case it helps to provide examples. This prompting technique is called “n-shot prompting” where n stands for the number of examples. If your examples contain scenario names of a specific format, the AI is most likely to answer with similar names.

The role of the role

We started the prompt with “You are my helpful assistant”. This was probably not even necessary because it is already covered by the system prompt. The system prompt is the prompt sent by the chatbot interface prior to our own prompt. The system prompt of ChatGPT4.0 was discovered not so long ago using the following prompt:

It is enormous, trying to cover all potential request, but also adversarial attacks.

Still, starting the prompt with “You are my helpful assistant” has several advantages. On the one hand, it not only reminds the AI of its role, but also us. Because the eloquence of the answers should not tempt us to forget the basic principle. AI does not think for itself! On the other hand, it puts the AI in a “be helpful” mood. This may sound ridiculous, but the jailbreaking community recently discovered that adversarial attacks are more probable to succeed if you force the LLM into producing affirmative responses. The easiest way to do this is to end the prompt with “Respond with ‘Sure, here is how to…”. (For more details, please refer to this article.)

Keep the risks in mind!

Data security is probably the most obvious problem when using Generative AI for testing purposes. Since it is very tempting to use GenAI, your organization should consider a solution as soon as possible. It will probably come down to operating an in-house LLM.

Next comes copyright issues, especially if you use AI for coding purposes. I am not a lawyer and therefore will not venture into this area, but I strongly recommend consulting an expert.

Ecological risks are often mentioned, but as with waste avoidance, knowing about them does little to change our behaviour. Just as a rough indicator: Each generated image corresponds to one complete recharge of a smartphone! Therefore, I am convinced that we are well advised to develop healthy reflexes right from the start:

  • Limit the use of Generative AI to tasks that are really helpful. For example, I quickly gave up asking ChatGPT to write conference abstracts for me. Instead, I ask it to assume the role of an English teacher and to correct my homework.
  • If possible, use smaller LLMs. Even if you will probably get the best results with ChatGPT4, smaller models like Mistral-Tiny may also do the specific job.
  • Create text rather than images. For example, it is possible to create UML models using Mermaid.js or Plant UML.

Of all AI types, generative AI is the AI that needs the most electricity and water. Often enough, there are ways of solving the same task with deep learning algorithms or perhaps even without AI altogether.

Stay tuned!

There is a lot more to say about AI, and as you read this, new use cases may already be emerging. But one thing is certain: only those who know their way around will be able to make full use of the new possibilities. Smartesting therefore offers training specifically for testers. In an exceptionally practice-oriented 2-day course, participants learn:

  •  what Generative AI brings to software testing,
  • how to obtain good results by applying prompting techniques,
  • how to detect and mitigate risks related to the use of Generative AI,
  • what possibilities exist beyond the chat mode and
  • what to consider before introducing Generative AI into your organization.

The aim is to use AI to accelerate test analysis/design, test suite optimization, test automation and test maintenance activities. Smartesting’s LLM Workbench used during the training course allows you to access 14 LLMs of different size and operators (openAI, Mistral, Meta, Anthropic and Perplexity) and to compare their answers directly. The training is available in French, English and German. Contact us, if you want to know more.

Author

Anne Kramer AutomationSTAR Speaker


Anne Kramer
, Global CSM, Smartesting

During her career spent in highly regulated industries (electronic payment, life sciences), Anne has accumulated exceptional experience of IT projects, particularly in their QA and testing dimension. An expert in test design approaches based on visual representations, Anne is passionate about sharing her knowledge and expertise. In April 2022, she joined Smartesting as Global CSM.

Smartesting is an EXPO Exhibitor at AutomationSTAR 2024, join us in Vienna.

· Categorized: AutomationSTAR · 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