jim.shamlin.com

4: Planning Your Test

Testing is a critical step to ensure that the solution will operate as designed, in order to identify and address potential problems when the solution is released to production, where any malfunction can cause serious problems.

"Selling" the Need to Test

Many organizations see little point in it: they expect that they system was "tested" by those who did the development work, and seek to save time and money by skipping or foreshortening the testing step.

It's largely a political problem, and the author recommends "selling" testing as a method of avoiding the impact of problems in production (which are mote costly, more publicly embarrassing, create an emergency situation, etc,) and making sure that time and resources are allocated to testing in advance.

What Is the Purpose of Planning a Test?

In order to be effective, testing must be methodical: you must assess the performance of a system under normal operating conditions as well as testing for a wide array of foreseeable anomalies.

It's also noted that one of the greatest risks to a project are change-requests - the "little extras" that seem to arise as the project moves forward and are bolted on without much regard for how the impact the core operations. The author goes into quite a lot of detail about this.

A test is based on "cases" or "scripts" that define what is being tested, how it is being tested (sequence of actions), what data is to be used, and the expected outcome. After the test is run, the results are "success" (the expected outcome was achieved) or "failure" (the expected outcome was not achieved, or there were side effects that were unforeseen) and in the latter case, details as to the difference between expected and actual outcomes.

Testers should be as objective and unbiased as possible. Ideally, testing should be done by an independent group, who has not been directly involved in the project and who do not have conflicts-of-interest over its success.

Kinds of Tests

The author provides a fairly extensive list of the kinds of tests that can be performed: