Homework 5: Running a testing program

Due Thursday, May 18.

You have been hired by the software quality assurance division of Megabucks Systems, Incorporated. MSI management expects you to run a small team, you will have three people on your staff, two who are expert programmers and one who is a crackerjack records management expert. But before you begin and the stock options start rolling in, you are expected to lay out very clearly and thoroughly what the plan of the testing will be. This homework is to prepare the plan, a report that convinces management to let you go ahead and run the testing as the software evolves.

The testing plan will include:

You may choose the software development project for which to design and run the testing.

One MSI project is an implementation of STL, the C++ standard container library. The design should be organized appropriately for the whole library, but the outline, tables and tests detailed may address only a portion. Certainly major component types such as containers, iterators, and algorithms should be tested. You may restrict attention to certain containers (say associative containers), certain iterators, 3 or 4 selected algorithms.

Another project is LinBox, a library for solving linear systems of equations over finite fields. The design should be organized appropriately for the whole library, but the outline, tables and tests detailed may address only a portion. Certainly major component types such as fields, blackbox matrices, and algorithms should be tested. You may restrict attention to certain fields(say modular, and NTL based), certain blackboxes (say sparse, dense, diagonal), and selected algorithms.

You may propose to design the tests for other software. The project to be tested must be reasonably extensive and have fairly well defined specifications. Clear the choice with me before committing to the project.

It is allowable to work in pairs on this project. Pairs are expected to produce a more extensive and thorough testing plan than individuals. Clear the pair/project combination with me in advance.