Software Testing Courting Artificial Intelligence / Machine Learning ?

Software Quality is now tantamount to customer loyalty and brand image. The quality of software products / services has become irrefutably linked to the success of the underlying businesses. While the decade-old aspects like automation, test coverage, test efficiency have to be kept uppermost, other aspects like optimized testing, precise interception with increased coverage, leveraging Machine Learning / AI for QA also assume considerable weight.

Banks, Insurance houses, Retailers, and Manufacturers are today leveraging Artificial Intelligence (AI) and Machine Learning (ML) techniques to drive in more efficiency. Banks use AI/ML algorithms for fraud detection, potential bad mortgages etc. Insurance firms use this for underwriting and risk calibration. Retailers use this to predict the next product on shelf or to be recommended to the online buyer.

It is in this light that we have to acknowledge several early efforts from the Software Testing community to embrace techniques like AI and ML. The trajectories delineated as a result of this courting will not only bring in efficiency but also the much-needed optimization and even defect prediction capabilities. 

Defect Prediction Models

Application log files, Build/Deployment logs, Historic defect information, Source Code meta data all contain identifiable patterns that can give good insights into the weak-spots within a system. AI / ML based algorithms can be leveraged to build mathematical models to build self-learning defect prediction engines. These become more reliable and intelligent when exposed to a good amount of training data. These prediction models assist testers to execute optimal QA cycles. A recent experiment using 18 months of application server log files revealed that a typical Order Management use case can fail in 172 different ways! Systems that learn these patterns will be able to preempt such errors in future.

Test Effort Sizing

Statistical models based on historic release data will help size similar test efforts. The models can be fed with various dependent variables like historic defect data, module change logs, slipped defects, author profile, impacted system info etc. The sizing accuracy typically improves over a period of time and with the quality of the input data. 

Unattended Automation

Self-learning systems that can sense patterns, match them with historic patterns, learn new patterns and respond in a deterministic manner are on the rise. This helps QA teams to perform at least 1 cycle of software testing with non-human testers, akin to algorithmic trading in the Finance industry. Similarly, text parsers can be taught to ‘read’ Business Requirements Documents and analyze historic defects around the same functionalities from defect dumps.

 

While it is too early for conclusions, the early results of this courting are encouraging.

 

P.S : All views expressed are of the author's and doesn't represent any organization / body.

To view or add a comment, sign in

More articles by Manoj Philip Mathen

Others also viewed

Explore content categories