As the world progresses, we see automation taking place of human activities. All sectors are hugely disrupted by the AI and ML.
Now the big question comes, AI will take over monotonous and redundant processes where brain power requirement is lower.
The question is how software quality sector is getting ready for it?
How do big companies make use of AI to sustain for the future disruptions in the technologies?
Let’s see the glimpse of possibilities and current implementations in this section.
Artificial Intelligence, is mostly known as learning process by machine using predefined algorithms called supervised learning, the other part of it is unsupervised learning where AI engine deduces predictions by itself by recognizing the patterns example of it is edge detection in photos.
Some of these algos are inspired by the fact that how our brain works. There are several researchers out there understanding the workings of brain to simulate the same in these algorithms.
Some of the AI runs on pure statistics and might not require any learning engine behind.
Let’s coming back to original intent of the content, lets breakdown the areas of testing and see how AI is coming into all the areas.
In the quality industry identifying the proper tests for the application or business process is quite tedious process, in this context there are some interesting AI implementations.
Mining of tests – This is carried out by intelligent Natural Language Processing (NLP) algorithms
Test Selection – By analyzing the failure logs from the application, one can design learning engine to select the specified tests for the specified failures. It’s again a NLP algorithm
Test Duplicates Removal – We can remove the duplicate tests by mining the tests and similar tests
Test Creation – This is still ongoing research area where AI engine can automatically derive the test based on the user actions, like record and play back feature in several automation engines
Current test execution process is generally triggered by devops tools such as Jenkins or TFS. What can we do additionally? Can we use AI?
Execution – We can use speech input to trigger the test with Speech to Text and Text to Speech converters, these engines are basically developed by big companies and lot of AI research goes into it now. Amazon Alexa, Apple siri are just tip of iceberg.
ChatBots – Ask Chabot which tests you want to execute and it will pick up that for you, you can choose, group the test you want and star the execution.
Execution Results – There are few interesting use cases when comes to test execution, let’s take for example we have ran suite of several hundred tests and it generated a bulky report, then its time for manual verification of those results, if they are because of the script or because of UI changes, or because of the actual application issues. Here, first thing is to develop robust scripts, but still there is lot of scope to create an engine which will be first supervised to learn and understand the different types of failures and then predicts the cause of the failures. This is not yet implemented case, but when we think about it, there is lot of scope here to tune the engine to classify the failures. This will become classification problem in terms of the AI.
Failed Method to Test Selection: There is possibility to identify the failed method or the type of the error with above mentioned approach, and going further deep we can very well correlate them with what tests to execute for what type of failures, what methods are failing and what are the expected tests to run when the application gets new fixes.
Machine Performance Analysis – This is the actual area where AI shines. Mostly the data will be plotted in graphs in all tools like LR and Jmeter. But we don’t know the anomalies and insights of the data. We can detect changes in the Disk performance (iops), we can detect anomalies in the CPU utilizations, and one can correlate them with actual transactions happening at that time. All will be done with supervised learning or unsupervised learning. We can implement different algos and see how they are performing.
Transaction Performance – This is good use case similar to above. We can collect the metrics of all transactions and apply different alogs to detect anomalies, peaks in the data. By which we can get to few conclusions. This is the area I have done prototype which I will be sharing in next blog.
So, all in all, there are several use cases which AI can improve the way we work. But nevertheless, it will not replace the ability to create something new something very creative like identifying security bug etc, may be anytime soon.
Please write down below in comments if you think anything can be done with AI in testing or we have already done we can discuss about it in detail.