Make Quality a Way of Life, Not an Afterthought

One of the major benefits of iterative development is that it allows you to initiate testing much earlier than is possible in waterfall development. Already in the first phase, Inception, you test some of the functionality captured in prototypes , providing you with valuable feedback on key use cases. In the second phase, Elaboration, executable software is up and running, implementing the architecture (see Figure 2.9). This means you can start testing to verify that the architecture really works. You can, for example, do some simple load- and performance-testing of the architecture. Gaining early feedback on this (perhaps one-third of the way into the project) may result in significant time and cost savings down the road.

Figure 2.9. Testing Is Initiated Early and Expanded Upon in Each Iteration. The RUP promotes early testing. Software is built in every iteration and tested as it is built. Regression testing ensures that new defects are not introduced as new iterations add functionality.

graphics/02fig09.gif

In general, the RUP requires you to test capabilities as you implement them. Since the most important capabilities are implemented early in the project, by the time you get to the end, the most essential software may have been up and running for months and is likely to have been tested for months. It is not a surprise that most projects adopting the RUP claim that an increase in quality is the first tangible result of the improved process.

Another enabler is what we call "Quality by Design." This means coupling testing more closely with design. Considering how the system should be tested, when you design it can lead to greatly improved test automation because test code can be generated directly from the design models. This saves time, provides incentives for early testing, and increases the quality of testing by minimizing the number of bugs in the test software. (After all, test scripts are software and typically contain a lot of defects, just like any other software.)

Iterative development not only allows earlier testing, it also forces you to test more often. On the one hand, this is good because you keep testing existing software (so-called regression testing) to ensure that new errors are not introduced. On the other hand, the drawback is that regression testing may become expensive. To minimize costs, try to automate as much testing as possible. This often radically reduces costs.

Finally, quality is something that concerns every team member, and it needs to be built into all parts of the process. You need to review artifacts as they are produced, think of how to test requirements when you identify them, design for testability, and so on.

Summary

Ensuring high quality requires more than just the participation of the testing team. It involves all team members and all parts of the lifecycle. By using an iterative approach you can do earlier testing, and the Quality-by-Design concept allows software designers to automate test code generation for earlier and higher quality testing, thus reducing the number of defects in the test code.



The Rational Unified Process Made Easy(c) A Practitioner's Guide to Rational Unified Process
Programming Microsoft Visual C++
ISBN: N/A
EAN: 2147483647
Year: 2005
Pages: 173

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net