It’s well-known by now that the true cost of finding a bug early in the software development lifecycle is far lower than if you find it later. Some studies have found that a bug discovered late can cost 1,000 times more to root out and repair. But how can we test more code earlier and more often — especially when the expectation is to churn out apps faster and faster?
The answer, of course, is to use Service Virtualization techniques that enable continuous testing and integration from the earliest stages of development. SV enables your team to create virtual services — “livelike” replicas of any dependent system your app will need — so tests can be conducted as early and often as needed, and at lower cost because of fewer delays and a lowered infrastructure footprint, among other reasons.
Cycle times are routinely reduced from six-plus hours to under an hour, allowing for more testing cycles and more code to be checked during sprints. As a result of more tests, more defects are found earlier and the end product is improved dramatically.
In a presentation at the recent CA World 2016, software engineer Jeff De Meyer of American Family Insurance explained how Service Virtualization accelerated continuous integration in development and improved performance at the $20 billion insurance giant.
The typical SDLC release of code goes something like this: Code gets checked into the developer’s repository and deployed to the dev tier. Unit tests are run, and then usually a successful smoke test gets the package promoted to the integration tier. So it goes, one code deployment to the next.
Since a single unit test cycle can take more than six hours, just imagine the delays as a few thousand unit tests stack up, one after the other. Add to that thousands of web service calls made per cycle and the dev team has no chance of meeting expectations for deliverables.
The Power of Parallel Testing
De Meyer says the team determined that, through Service Virtualization, it could speed things up significantly. A developer spent 100 hours building 27 virtual services, he said. (It took about two to four hours for each.) With all web services virtualized, the team could run all its unit tests in parallel instead of serially.
Unit tests could be completed in under an hour. And developers, now freed from the tedious job of unit tests, could focus entirely on the creation and maintenance of services.
De Meyer said the ROI from American Family’s investment in Service Virtualization came almost instantly — just a few days.
“If your sprint length is two weeks (or 10 days), you go from 10 code releases per sprint to 50 code releases per sprint,” he said. “That is a 400 percent increase in the amount of code releases in a sprint. This equates to finding bugs sooner and fixing them earlier in the project versus later, which equals less expensive fixes.”
He said the company’s mobile team has also taken advantage of Service Virtualization to virtualize APIs even before those APIs are available for development.
A Training Function for Service Virtualization
AmFam also now uses virtual services to back its training environments, reducing the cost and maintenance of training, he says.
“Historically we’ve had legacy training environments that were 25 to 30 years old … but with limited time and all that history we weren’t going to be able to provide new training environments,” DeMeyer said in a podcast you can access here.
“Training comes to us and says they want a real training environment and it needs to be isolated because they don’t want other things in our development and systems to impact the training environment. And the entire thing has to be ready in three months.”
De Meyer said the immediate response was that a real training environment costs too much, and anyway there wasn’t development capacity to get it done for at least 12 months.
With SV, though, American Family Insurance was able to create a “real-like” environment in three months.
“We actually did it in hours that were less than what we planned,” he said.
The company now has 50 virtual web services in a number of training environments with zer0 outages, he said.