Autonomous Exploratory Testing in Agile Development

Agile development has become the standard for software teams aiming to deliver value quickly and to adapt to changing requirements. However, as the market competition is getting tougher, budgets are cut and release cycles shortened, quality assurance methods often struggle to keep up.

In this article, we will explore how autonomous testing can help agile teams to meet their goals and maintain high quality standards.

Agile methodologies prioritize iterative development, collaboration, and customer feedback. Teams work in sprints, delivering incremental updates to the product. However, this fast-paced environment often creates bottlenecks in the testing phase, where manual or scripted tests can’t keep up with the speed of development.

Challenges

Usually people in R&D dislike defects and aim for high quality software. Despite good will, defects still occur. In retrospect, it is easy to argue that if had been more careful or had written one more test case to cover “X”, we could have prevented that specific defect. However, usually at that point the defect has already affected the client’s workflow and the damage is done. Luckily, there is something we can improve.

What is Autonomous Exploratory Testing

Autonomous testing leverages machine learning to automate the testing process. Unlike traditional test automation, it autonomously adapts to changes in the codebase, learns from the past, and executes tests without human intervention.

Autonomous exploratory testing can be used as an added layer to prevent defects slipping through to production. It can also be used to guide or pinpoint areas which need additional scripted tests for hardening the software. To better understand why autonomous exploratory testing is beneficial we can split defects into two categories.

Technical defects

Technical defects are something that can most of the time be programmatically decided if a given behavior is incorrect. Examples of these are page crashes, errors, missing security guards, broken UI layouts, infinite loops, major performance degradation or when standard or best practices are not followed.

Substance incorrect behavior

These defects require substance or domain knowledge to understand if the given functionality is incorrect in the given context. These types of defects could be something like a missing field, incorrect text or non-intentional user-flow. For a program to autonomously decide if any of the earlier statements is a defect it needs more information. It is possible a change was made to the software, and the behavior was intentionally changed and thus detecting these types of defects is more challenging for a computer.

Where Autonomous Testing Shines

Autonomous exploratory testing can help with detecting technical defects. It runs without engineers having to write test cases. It can automatically adapt to changes in the software without people spending their time writing or maintaining test cases. There are also areas where autonomous exploratory testing excels and even surpasses human capabilities. For example, how many times did YOU as a developer go through Owasp Top 10, while developing the new features or changing existing functionality? Did YOU as a full-stack engineer also assert that all the views in your web UI have the required accessibility attributes in place and keyboard control works as expected?

Autonomous testing can test these types of issues automatically and continuously throughout the whole target software. While the robot explores the system user interface or APIs it can scan all sorts of issues in the background. It is not limited to testing one type of a problem at a time. It can test your applications entry form and at the same time verify links, buttons and other UI elements are working, analyze network traffic for security vulnerabilities, assert the accessibility attributes, check for missing access controls, look for unexpected errors, test the keyboard input, validate HTML, measure the performance statistics to avoid regressions in the future and the list goes on.

This issue data can then be aggregated and prioritized for the R&D team for further analysis. It can be scheduled before daily standup or provided before weekly release. It can also be used to alert the R&D team in case of a major change in issue trends at any time.

Limitations

While it sounds great, there are also limitations. Autonomous exploratory testing is not good for regression testing. This is because as the robot continuously adapts to the latest changes, it needs to keep the number of false positive issues as low as possible to ensure high quality reports. It is not easy for a program to autonomously decide if a change in user interface is a defect or not. However, it can be used as a tool to provide input for R&D team to then add traditional automated tests as needed to cover possible regression.

At AutoExplore, we are committed to helping R&D teams implement autonomous testing as part of their development processes. Ready to transform your process? Contact us for a demo to learn more.

Sampo Kivistö, Founder & CEO

Sampo Kivistö

Tel. +358 452733080