ASIC Verification: Developing Test Plan

Saturday, May 17, 2008

Developing Test Plan

What is the difference between Test Specification and a Test Plan?

Test Specification – A detailed summary of what scenarios will be tested, how they will be tested, how often they will be tested and so on. Example of a given feature include, if the USB2.0 hub receives the token packet followed by a data packet with a payload of 64 bytes for the bulk endpoint, it has to give the acknowledge back the host controller within the specified time as per USB2.0 specification.

Test Plan - A collection of all test specifications for a given area. The Test Plan contains a high-level overview of what is tested and what is tested by others for the given feature area.

If you ask a tester on another team what is the difference between the two, you might receive different answers. In addition, I use the terms interchangeably all the time at work, so if you see me using the term test plan, think of test specification.

Parts of a Test Specification


A Test Specification should consists of the following parts:


  • History / Revision - Who created the test spec? Who were the developers and Program Managers (Usability Engineers, Documentation Writers, etc) at the time when the test specification was created? When was it created? When was the last time it was updated? What were the major changes at the time of the last update?
  • Feature Description – A brief description of what area is being tested.
  • What is tested? – A quick overview of what scenarios are tested, so people looking through this specification know that they are at the correct place.
  • What is not tested? - Are there any areas being covered by different people or different test specs? If so, include a pointer to these test specifications.
  • "Nightly" Test Cases – A list of the test cases and high-level description of what is tested each night or whenever a new release becomes available.
  • Breakout of Major Test Areas - This section is the most interesting part of the test specification where test plan writers arrange test cases according to what they are testing.

Setting Test Case Priority


A Test Specification may have a couple of hundred test cases, depending on how the test cases were defined, how large the feature area is, and so forth. It is important to be able to query for the most important test cases (nightly), the next most important test cases (weekly), the next most important test cases (full test pass) and so forth. A sample prioritization for test cases may look like:


  • Highest priority (Nightly) – Must run whenever a new release is available
  • Second highest priority (Weekly) – Other major functionality tests run once every three or four release
  • Lower priority – Run once every major coding milestone

1 comment:

Unknown said...

it will be better if u explain "How to devlop a test plan" with an example