By bringing practical tools and advanced techniques to how you test, the costs and risks associated with testing can be reduced dramatically.
The following article is an extract from the white paper "A Visual Guide to Cost-Effective Testing on the iSeries," available for download free from the MC White Paper Center.
Managers and developers working with legacy RPG and COBOL applications face serious testing challenges. Few, if any, of these applications have a complete set of specifications of how the applications should perform, and even fewer have a complete library of test cases. Results from over 12,000 software projects show that detecting and removing defects is the single most costly task in software development.
The majority of the work being done on iSeries applications involves enhancements and corrections. This type of work requires regression-testing the modified code to ensure that new defects have not been introduced into production systems. Without a complete library of test cases, testing becomes increasingly difficult, expensive, and risky, leading to the following unfortunate truth for most iSeries development projects that lack good testing capabilities: regression-testing is either the biggest task in a project or the biggest risk.
This white paper describes the variety of tools that can be used to improve testing productivity and results for both regression-testing and new-functionality-testing. It is divided into the following sections:
- The Business Case for Investing in Testing
- Extreme Testing of Legacy Applications as a Strategy
- Overview Diagram of Testing Tool Applications
Tools
- Test-database preparation tools
- Intelligent test-data construction tools
- Test-data output-comparison tools
- Screen-testing automation tools
- Test-coverage tools
- Test-harness tools
- Test-case development tools
- Test-driven development tools
- Defect-tracking tools
The Business Case for Investing in Testing
Of key interest to IT managers is the statistic that defects found in production are 5–10 times more costly to fix than defects found in the coding stage. It doesn't take too many of those defects to become a significant factor in IT budgets.
From 50 years of statistics on over 12,000 software projects, it has been clearly shown that the single most costly aspect of software development is detecting and correcting defects, comprising roughly 35 percent of total software development and maintenance costs.
While large statistical studies of RPG defect rates are hard to find, by using defect rates per function point and extrapolation of lines of code per function point for RPG, it is possible to estimate that there are roughly eight defects per hundred lines of code changed or written.
Across industries, the average rate of change per year in application code bases is roughly seven percent. Using these figures provides the basis for estimating the number of defects that IT must deal with.
Of general interest are the figures for the point in the software lifecycle where defects originate:
Defect Sources |
Percent |
Requirements errors |
20 |
Design |
25 |
Coding |
35 |
Documentation |
12 |
Bad fixes |
8 |
Also of interest is the pattern of defect detection and removal. Most IT managers understand that testing never detects all defects, but what is the actual pattern of detection?
Key Fact: Testing is never perfect and produces diminishing returns; therefore, it is crucial to optimize testing efficiency.
Defect detection proceeds in a manner similar to that of the half-life decay of radioactive elements. For example, on average, unit testing will detect 25 percent of the resident defects. If unit testing were performed a second time, it would detect 25 percent of the remaining defects.
The First Step Toward Testing Efficiency
By bringing practical tools and advanced techniques to how you test, the costs and risks associated with testing can be reduced dramatically, measurably improving IT throughput and saving scarce IT dollars.
Extreme Testing of Legacy Applications as a Strategy
One of the fundamental strategies of testing legacy applications is to perform high-volume (or "extreme") testing, enabled by the use of powerful tools and testing techniques. Such testing is the best substitute available for regression testing in the absence of complete libraries of test cases or application specifications. In particular, wherever possible, run high volumes of data through parallel tests. This requires the use of a number of tools for tasks such as preparing databases, comparing results, creating test harnesses, and so on, as described below.
Want to learn more? Download the white paper "A Visual Guide to Cost-Effective Testing on the iSeries," free from the MC White Paper Center.
LATEST COMMENTS
MC Press Online