6

Lately I keep seeing articles about how artificial intelligence will revolutionize how quality assurance is done (one simple example here. There are even online courses online for AI in Software Testing.

Is AI in software testing a real thing - in terms of creating test cases, creating the appropriate tests and executing them?

  • 4
    Shameless self-promotion: I wrote an article about AI in GUI-based software testing. – beatngu13 Jul 20 at 20:39
  • Took a while to read, but it was interesting. Some of those tools sound really good especially since some of them generate test cases. I'll have to look further into them. – Claudiu A Jul 20 at 21:14
6

It is to be defined probably in such a way that the workflows build on each other and become so more and more learnable. It aims at test automation.

enter image description here

Bringing AI into Quality Assurance

AI-led cognitive automation solutions (Intelligent Automation) combine the best of automation approaches with AI and help bring superior results. The focus is three dimensional – to eliminate test coverage overlaps, optimize efforts with more predictable testing and lastly to move from defect detection to defect prevention. Today, organizations have better machine learning algorithms for pattern analysis and processing huge volumes of data that result in better run-time decisions. For instance, during a software upgrade, machine learning algorithms can traverse the code to detect key changes in functionality and link them to the requirements in order to identify test cases. This helps optimize testing and prevents the making of decisions on hot spots that could lead to failure. Infosys PANDIT is one such AI-based testing platform that is helping our clients improve agility and predictability while optimizing efforts in testing by integrating AI in testing.

further information https://www.infosys.com/insights/ai-automation/Pages/quality-assurance.aspx

In many cases today Qualit Assurance is used in many processes and of course in CI, TDD, BDD as an AI that is capable of learning, but draws its experience from the networked process flows.

Shown here using Ebay as an example

enter image description here

Ebay describes it that way in her article:

Deep Learning Technology

DL simulates the human way of finding errors or anomalies. Humans are driven by past experience and conditioning to make decisions. Machines with the proper application of training or conditioning can detect errors that surpass human precision.

We begin our understanding of DL as the subset of a broader class called as the supervised machine learning algorithm. The supervised learning algorithms take a set of training examples called as the training data. The learning algorithm is provided with the training data to learn a desired function. Further, we also validate our learning algorithm by a set of test data. This process of learning from training data and validating against test data is called modeling.

In the further course we explain among other things how an AI operated GUI test looks like:

enter image description here

Facebook describes their approach as follows:

Why using build dependencies is inefficient

A common approach to regression testing is to use information extracted from build metadata to determine which tests to run on a particular code change. By analyzing build dependencies between units of code, one can determine all tests that transitively depend on sources modified in that code change. For example, in the diagram below, circles represent tests; squares represent intermediate units of code, such as libraries; and diamonds represent individual source files in the repository. An arrow connects entities A → B if and only if B directly depends on A, which we interpret as A impacting B. The blue diamonds represent two files modified in a sample code change. All entities transitively dependent upon them are also shown in blue. In this scenario, a test selection strategy based on build dependencies would exercise tests 1, 2, 3, and 4. But tests 5 and 6 would not be exercised, as they do not depend on modified files.

Shown in this example

enter image description here

  • These are some real examples I can understand. For most projects it would be overkill probably, but for companies caring for one main application it definetly definetely makes sense with this approach. However for a traditional team handling a couple of web applications/year there is a low chance of having a similar approach (the time to label a reasonable amount of data would be a massive overhead). – Claudiu A Jul 21 at 10:14
  • 1
    That would certainly be an overkill for such a company. But to think long-term means to bring QA to a level where it can perform powerful tests. First think in smaller steps, staging test procedures. Unit test and integration test. Test starts in the development. – Mornon Jul 27 at 15:49
1

I won't share my opinion on AI in general, but will restrict myself to the advantages machine learning can bring to the field of quality assurance. Given the predictive nature of machine learning systems/algorithms, QA may use it to predict potential bugs/inconsistencies from requirements of the application. These predictions can be based on different perspectives like functional, user-point-of-view (application domain), security, performance, etc. Another area where AI can be helpful is in automating exploratory testing. These are the few areas in which software testing companies are working on. You may find the below links helpful,

https://blog.qasource.com/how-ai-improves-automated-testing-services

https://blog.qasource.com/autocast-winter-2018

0

An AI-powered constant testing stage can distinguish changed controls adequately than a human, and with stable and nonstop updates to its algorithms, even the small measure of changes can be watched. With automation testing, Artificial Intelligence is being widely used in item application categorization for each UI (UIs).

Here, recognized controls are characterized when you frame tools & testers can pre-train controls that are ordinarily observed in out of the box setups. When the chain of controls is observed, skilled AI software testers can make a technical map to such extent that the artificial intelligence is looking at the GUI (Graphical User Interface) to get labels for the particular controls.

enter image description here

What are the advantages of AI in Software Testing?

  1. Goes past the edges of Manual Testing

It is next to impossible for the most QA/ Software dept to implement a controlled web application test with 1,000+ clients. With AI software testing, one can reenact tens, 100, or 1000s of virtual sets of clients that can cooperate with a product, a system, or web-based applications.

  1. Improved Accuracy

To err is a human creature. Indeed, even the cautious software tester will undoubtedly make mistakes while executing monotonous manual testing. This is the time where AI automated testing helps by performing the very same process or steps splendidly each time and failing to miss out on recording thorough outcomes. Testers freed from tedious manual testing steps have additional time to make new automated software tests and cope with complex features.

  1. Unfailing Accuracy

Even the expert software testers sometimes make mistakes. This is the key reason AI software testing became so popular. Unlike humans, Artificial Intelligence always performs the significant tasks exactly as planned, completing the same recurring tasks effectively, time after time. While AI works on tedious tasks, software testers can easily focus on creating effective automation solutions and on exploratory tasks that only humans can complete.

  1. Supports Both Developers and Testers

Shared automated tests can be used by software developers and designers to catch troubles quick before going to Quality Assurance. Tests can run automatically whenever source code changes are checked in and alert the group or the developer if in the event that not succeed. Features like these spare the valuable time of the developers and increase their confidence.

  1. Saving Time and Money results to Faster Time to Market

With software testing being repeated each time source code is customized, manually repetition of those tests can be truly time-consuming plus expensive too. In contrary, AI automated tests can be implemented again and again, with low to zero additional cost at a speedy pace. The time span of the software testing can be lowered from days to mere hours, which translates directly into cost cuttings. Even AI testing tools have helped to make software product releases and update that happen once a month to occur on daily or weekly basis.

  1. Performing Visual Testing

Pattern recognition and image recognition allow Artificial Intelligence to discover visual bugs by performing visual testing of apps and ensuring that all the visual elements look & function appropriately. AI can distinguish dynamic UI controls despite of their shape and size, evaluating them on a pixel level.

Increase in Overall Test Coverage– With AI automated testing; one can enhance the overall scope and depth of tests bringing about an absolute improvement of software quality. AI software testing can investigate into program states, memory and file contents and data tables to decide whether the software product is working as it is expected to. All in all test automation can perform 1000+ distinctive cases in each trial providing coverage that is beyond the realm of imagination with manual tests.

Thus, regardless of whether a property of a component changes, the tests don’t fail; rather Artificial Intelligence identifies this issue and goes to the next best location strategy to effectively spot the component in the page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.