QWE2000 Session 11M

Mr. Richard Kasperowski [USA]
(Altisimo Computing)

Opportunistic Software Quality

Key Points

Presentation Abstract

I recently worked on a project for which I was the sole QA person and the ship date was only three months away. The project was to build and deliver a web-based billing system for the local telephone customers of a large telephone company. The team used HTML and JavaScript to present bills, a relational database at the back end, and Java and Enterprise Java Beans in the middle.

The development team consisted mainly of highly skilled designers and programmers who knew little about quality assurance. They were motivated to deliver a great product on time. My job was to help them do that, by inventing and executing a QA program for the project.

I was the only team member concerned primarily with product quality, and the delivery date was firm. I didn't have time to develop a well thought-out plan to assure the goodness of the product. Instead, I kept my eyes open for opportunities to improve product quality, and took advantage of these opportunities. I later realized that I have done this many times over the years, and began to think of my capitalizing on quality improvement opportunities as a general strategy--"opportunistic software quality."

Here are examples of the opportunities we discovered during this project and how they helped us deliver a high quality product on time:

There were a few techniques we considered using, but did not use. These were: automated GUI testing, code coverage analysis, exhaustively testing all source code, retrofitting pre-existing tests to a better test framework, and reorganizing the source code to improve building and maintenance.

Our results were good. The customer discovered only 7% of the total number of known defects. The two best techniques for identifying defects were manual testing and automated nightly testing. Manual testing was responsible for finding 46% of known defects, and automated nightly testing helped us find 29% of known defects. (These figures are slightly out of date; I will present current figures in the final version of the paper and at the conference.)

We delivered a relatively high quality product on time. The customer accepted the delivery and found very few defects. The opportunistic strategy worked.

About the Speaker

Richard Kasperowski is president of Altisimo Computing, a software development consulting firm based in Cambridge, Massachusetts. Richard has worked as tester, developer, manager, and consultant since 1988. He has a degree from Harvard University, is a member of the ACM, and usually cycles to his clients' offices.