The following is a guest article from Sanjay Zalavadia, VP of client services at Zephyr.
Predictive analytics first garnered widespread attention in the 2011 baseball movie "Moneyball," adapted from the popular business book "Moneyball: The Art of Winning an Unfair Game." Both movie and book tell the story of how Oakland Athletics general manager Billy Beane transformed the entire professional sports industry by using math and statistics to choose players and make decisions.
The current analytics revolution extends well beyond sports into applications as varied as Netflix's movie recommendations and Google's self-driving car. Predictive analytics is also revolutionizing the software testing industry by helping businesses take advantage of DevOps continuous deployment pipelines to reduce the cost, time and risk of software delivery.
The use of predictive analytics helps organizations understand how to take advantage of customer-facing feedback, as well as how to predict and prevent defect trends in future software releases.
DevOps is not just about developing and releasing applications faster. Testing is also an essential part of the practice.
In fact, the term DevTestOps is gaining currency as a way to describe the culture of collaboration among developers, testers and operators needed to speed up the deployment of high-quality software. Predictive analytics help agile software teams effectively combine the two testing approaches found on DevOps projects:
- Shift left testing, testing earlier in the software development lifecycle while an application is being built.
- Shift right testing, testing in production after an application is released.
The two testing approaches aren't mutually exclusive. Depending on the risk-level your organization is willing to shoulder, shifting right and testing in production may be the fastest and most effective way to capture end-user feedback on a particular application. If the deployed software has defects, shift left testing then allows you to deploy your bug fixes that much faster.
Shift left vs. shift right
In DevOps shift left testing, testing is performed earlier in the software development process, with the goal of increasing quality, shortening long test cycles and reducing the possibility of software defects making their way into production code.
This is often done by shifting integration testing to the left of its usual position in the lifecycle so that it occurs as close as possible to the build process. Since integration testing is where many disruptive, significant defects are often detected, this allows teams to receive feedback on code quality faster, with more accurate results.
Continuous testing is a big part of shift left testing, which involves automating manual tests and running those tests as early and often as possible, many times using virtualized components and environments. Test automation is important in a DevOps pipeline since manual testing is a time-consuming and labor-intensive process.
Predictive analytics helps teams determine which of the hundreds or even thousands of tests that need to be run against an application in the pipeline can be automated.
In shift right testing, the quality level of an application in production is continuously monitored and modified as needed. Modifications are done proactively instead of reactively, based on an predictive analysis of production data sets, which includes application performance, user interaction data, customer feedback, resource usage and other operational metrics.
Analytics is also useful here in selecting and automating appropriate test cases, that is, the conditions or variables that determine whether an application being tested satisfies requirements or works correctly.
Where predictive analytics comes into play
Predictive analytics is the practice of extracting useful information from data sets using statistical algorithms and machine learning in order to predict trends and behavior patterns. When applied to software testing, predictive analytics makes it easier to identify what to test and to predict quality issues before and after they occur in production.
This is especially useful because of the short development cycles of modern DevOps projects. Predictive analysis and continuous feedback from end-users make it easier for QA teams to predict the risk levels of different applications in their DevOps pipeline.
Determining the risk level of different applications is important on DevOps projects since agile software teams may very well decide to take more risks on certain deployed applications in order to beat their competition to market or to get end-user feedback to validate a hypothesis.
In risk-based software testing using predictive analytics, priority for fixing defects is based on the risk potential of the defects. This is because, on fast-paced agile projects, bug fixes for low severity bugs will get low priority and are usually only scheduled when time is available.
There are two main considerations in this type of risk-based software testing: the probability of the software defect occurring and the impact of the defect when it occurs.
High impact or probability bug fixes ought to be scheduled first. For example, a bug in a particular module of code for an online shopping cart algorithm that keeps a business from processing transactions should be scheduled to fix first. On the other hand, a bug that introduces a very slight rounding error in that same transaction should have a lower priority.
Shift right testing involves more than just bug fixes, however. Predictive analytics allows agile teams to engage with end-users much more proactively, such as in a case of shopping cart abandonment, when shoppers put items in their online shopping carts, but then leave before completing the purchase.
In a case like this, the agile team can use analytics and data mining techniques to gleam information from large transaction datasets in order to increase conversions, possibly by either streamlining the checkout process or by retargeting shoppers with emails after they've left a website.