“Plans are nothing; planning is everything.” Dwight D. Eisenhower
These words apply to everything that is important; both personally and in business. Software testing is no exception. If you don’t formulate your plan then you have nothing to execute, track and report against. Not only do you need to plan, but your plan must be flexible, and this is where the excitement starts. While planing a test cycle, keep in the back of your mind that, “…anything that can go wrong will go wrong.” This pessimistic view, on the other hand, is tempered by the reality of the delivery date. Given these extremes a natural balance occurs between expecting the worse and getting the cycle completed on time.
As you plan, also keep in mind that software testing is a dynamic iterative process. It is more like preparing a meal than building a bridge. There are four basic elements to software testing. These are the test environment, levels, approach and type. The quality assurance manager is the master chef. His or her knowledge of these elements and how to combine them into an effective plan should result in a stable product which is useful to the enduser.
The test environments are like the cooking pot. It answers the question, where will I cook this meal, development, QA, staging or production? The test level is like the menu. What will you “cook up” this time; a unit, integration, system or acceptance test? The test approach is like the ingredients – vegetables, tofu, sprouts? Will you add a white box, grey box or black box test to the menu? Finally the numerous types of tests are like the spices to your delicious meal. Should you add a pinch of installation testing, dash of compatibility testing, sprinkle of smoke or sanity testing? How about a very large dose of regression testing? Of course one may not forget the fresh acceptance test! If the family really likes it spicy don’t forget to carefully add both performance and destructive tests. For details on what these and other test related subjects mean, read the Wikipedia article on software testing.
Finally, it is important to have a clear understanding of the word “success” as it applies to software testing. No application is released to productive use without bugs. Success is not measured by the amount of issues which are discovered, but how these issues impact the business. You may have a handful of minor issues which do not disrupt the work of the end user on one hand and on the other hand one major issue which brings the system down. If the end user is unable to work, the test cycle must be considered a failure requiring close scrutiny and most likely the creation and follow-up of a corrective action plan. The success of a release must always be seen through the eyes of the end user.
Click here for Part One – Unit Testing