Wednesday, May 6, 2009

How can I design test cases, if I don't have a Requirements Document?

How can I design test cases, if I don't have a Requirements Document?"

But, there are ALWAYS requirements - even if they are not formally documented. They may take some time to discover and list, but they exist. Here's one approach to finding those "hidden" requirements.

First, look for general requirements and work to document them. Some of these requirements come from previous versions of the application, some come from generally accepted usage. For example:
1. Must run on platforms x,y,z (perhaps because those platforms have always been supported)
2. Must use abc database
3. Must be able to process n records in m seconds
4. Must be at least as fast as release n - 1
5. Must not consume more memory (or other resources) than release n - 1
6.Must not crash
7. Must not corrupt data
8. Must use standards relevant to the platform (standard Windows UI, for example)
9.Must not have any misspellings
10. Must be grammatically correct
11.Must incorporate the company's usual look-and-feel
12.Must be internally consistent
13.Must work in particular locales
14.Must be complete when expected by the stakeholders (perhaps for some event, such as a Beta)
If it's a web site or application, some additional requirements might include:
1. Must not be missing any images
2. Must not have any broken links
3. Must bascially work the same in all browsers which are officially supported by the company
Then, interview the project manager or developers and find out what they intend to do with this release. Document the intentions and use them as requirements.
Solicit input from anyone who is a stakeholder in the project. Share everything you find with everyone and revise it as needed.
Sometimes, writing all of this up as assumptions can go a long way toward gaining a consensus as to the "real requirements" you can use to test against.

Once the system is at all testable, do some exploratory testing. As you find "undocumented features", add them to the list of topics to be discussed.

Find out if the product is internally consistent. (This is an area I find to be very useful) Even if I know nothing at all about a product, I assume it must be consistent within itself, and within the environment in which it must operate.

Look for external standards within which the product must operate. If it is a tax or accounting program - tax law must prevail and generally accepted accounting principles must apply.

Ideally, all of these issues have already been considered and written into the formal Requirements documentation which is handed to you. But if not, don't give up. Dig in and discover!