homeblogsoftware quality and your devops tool chain

Software Quality and Your DevOps Tool Chain

Gartner research director Thomas E. Murphy points out in a recent blog post that while software failures are clearly bad for business (especially when they happen in public), it’s difficult for business managers to quantify the ROI of testing enough to assure software quality. Thus, testing and quality are normally viewed from the point of view of risk management, rather than business goals.

But that’s an erroneous view. As Murphy points out, the ISO’s benchmarks for software quality — functionality (which includes security), reliability, usability, efficiency, maintainability, and portability — are all critical considerations for delivering real value to the business. Employing the tools and processes that are part of the DevOps tool chain in your testing will help you achieve higher quality.

Even if you aren’t “agile” use continuous integration, it drives consistency. Your CI system should run a consistent set of tests including unit, static analysis, performance, and functional automation.

Murphy recommends using static analysis tools that measure code quality and ideally provide a cost estimate to bring substandard code up to par. These tools locate potential bugs before the code is executed, and help enforce coding rules and avoid duplicate code. Wire these up to your dashboard, he says, and measure code quality at every check-in to get a continuous picture of code hygiene and an estimate of technical debt.

You need to do load testing throughout the software development process, Murphy points out. How to do this effectively?

Automate the lab and build one that as closely as possible mimics production. This may mean the use of virtualization (service, database, network in addition to the lab itself) it also requires, yes, automation.

That lab can — and probably should — be in the cloud, both for the sake of cost savings and to offer your developers and testers maximum flexibility. Automation allows you to make sure every test environment, including those in the cloud, match the production environment as closely as possible. Of course, this is where Puppet comes in, allowing you to provision identical environments with control and confidence, and enforcing configurations across all environments to assure your tests are meaningful.

##Learn More