Software testing is enormously challenging—and enormously essential to creating a quality build.
If your company develops software, whether for in-house business purposes or as a marketable product, you know that testing is one of the most mission-critical phases of the software lifecycle. Only through a rigorous, comprehensive, and consistent test process can you ensure that the software is ready for prime time—that is, both feature-complete and as nearly bug-free as reasonably possible.
|
Large-scale development operations, however, often struggle with testing for many reasons. Chief among these is the fact that the computers on which software testing takes place are often set up (provisioned) manually. For software testing to yield valuable, objective results, test machines must be in a strictly-controlled initial state in order to isolate problems with the software itself rather than problems caused by any other factors. For large-scale testing teams, however, putting hundreds or even thousands of test machines into those appropriate initial states can be extremely time-intensive and operationally expensive. Each iteration of the manual provisioning process requires personal attention from a member of the IT staff and slows the overall testing stage, decreasing the enterprise's return on investment and slowing the time-to-market for the software.
|
|
"TPM proved a powerful partner when combined with a number of in-house test environment tools, integrating with them to create a comprehensive solution capable of provisioning any software combination—from OS to applications to middleware to data files—all automatically, with complete consistency from machine to machine."
|
Furthermore, because different testing teams often test different software packages on the same machines, those machines must frequently be reinitialized manually to a new initial state. And each time that happens, it introduces the possibility of inconsistency among machines, or, in a worst-case scenario, a completely inappropriate initial state for the software being tested. The overall outcome can easily be problematic software.
TPM Improves Software Testing by Improving the Provisioning Process
The solution? IBM Tivoli Provisioning Manager (TPM). TPM provides automatic, scripted software provisioning, from single files to entire "from-scratch” installations, including operating systems, applications, middleware, and data files.
TPM allows managers to create images of software in a fixed state and then install them over the network onto any logical group of machines—ideal for software testing. And because this process is easily scripted, it can be easily repeated, even at night when the testing team is away. By automating the test machine provisioning process, the testing team can therefore cut provisioning costs, maximize the amount of time the team dedicates to actual testing, and reduce user error during provisioning.
Furthermore, in some cases, the total number of test machines required will be decreased, because any given machine can quickly be reinitialized to suit a new software testing process; this, too, is a reduction in IT overhead. And because TPM was designed to work not only efficiently, but securely, the odds of rogue users introducing unwanted elements into software are dramatically reduced.
All of these benefits accelerate and enhance testing, leading to superior software that is released more quickly—a sure business win likely to increase long-term revenue for the enterprise.
IBM Uses TPM to Improve Software Testing
It should come as no surprise, therefore, to discover that IBM has made extensive use of TPM in its own software testing process.
As the world's largest IT employer and one of the world’s largest software developers, IBM is in a unique position to obtain business value from TPM; nowhere is that more apparent than at IBM's Tivoli Development Labs, where more than 5,000 machines are continually initialized and reinitialized in order to test IBM's vast array of new Tivoli system management solutions as they enter the testing phase.
With such a vast laboratory of machines came a similarly vast operational challenge. By 2004, IBM found that the manual process of setting up computers for Tivoli testing was enormously time-intensive, typically requiring an hour to an hour and a half to complete. To do the job properly meant deleting all prior software, installing an operating system and relevant middleware, and then finally installing the software being tested, as well as making any essential configuration changes—a nontrivial sequence of events requiring the dedicated attention of a staff member and from 1.5 to 2.5 hours of work. Furthermore, because that process was manual, unwanted errors could creep in at any point. Multiply that possibility by 5,500 machines and you quickly arrive at a computing test environment that could benefit from optimization.
IBM also found that the process was not optimized from a talent management standpoint. Often, IBM discovered that testing professionals better dedicated to domain-specific tasks were being retasked simply to attend to provisioning—or, in rare cases, were unable to remove all prior software before beginning testing on a new build due to scheduling constraints or software release deadlines. This situation compromised both operational efficiency and, in theory, build quality.
Clearly, a significant change was called for. Getting the best return on investment from the Tivoli Development Labs meant IBM would have to standardize release management processes, automate the provisioning process to the fullest possible extent, and leverage the full power of the software testing team in its primary area of expertise.
Enter TPM
The automated, scripted, and secure-rich design of TPM was perfectly suited to this situation, and the team installed it on IBM System x machines running Red Hat Enterprise Linux in order to create a scalable, efficient, and flexible provisioning platform.
How flexible? One of TPM's features, Automation Packages, empowered the team to create dynamic workflows based on established industry best practices for software development. Furthermore, TPM proved powerful when combined with a number of in-house test environment tools, creating a comprehensive solution capable of provisioning any software combination—from OS to applications to middleware to data files—all automatically, with complete consistency from machine to machine.
TPM's security-rich features also played a significant part in the test optimization process. In the past, the team had sometimes experienced conflicts in which one team inadvertently made changes to a machine in use by another team, thereby invalidating the test results for both. Through TPM's machine management features, that type of problem became a thing of the past. And because provisioning could take place at night, the testing team was able to focus on testing, not preliminary provisioning.
The results have proven formidable: an estimated 1200 person-hours saved in the first seven months of the project through the automation of more than 800 tasks routinely occurring in the Labs. Furthermore, the eventual operational savings at project completion are expected to exceed $2 million annually.
Finally, and perhaps most importantly, by optimizing the testing environment with TPM's automated provisioning, Tivoli Development Labs was able to improve Tivoli software build quality, leading ultimately to enhanced end-user satisfaction, improved market share, and a more profitable bottom line for IBM.
Browse full Tivoli Beat archive
|
 |
|
|
Tivoli Beat articles are available via an RSS feed. To add this
RSS feed to your reader, right click on the RSS button, click “Copy Short-cut” and add the URL to your feed reader.
If you are new to RSS, we suggest you read the Introduction to RSS article.
|
|