Welcome to MSDN Blogs Sign in | Join | Help

Sara Ford's WebLog


My adventures in sharing Microsoft source code

News

MSFT Women Bloggers

Developing a Test Specification

Definitions

 

I’ve seen the terms “Test Plan” and “Test Specification” mean slightly different things over the years.  In a formal sense (at this given point in time for me), we can define the terms as follows:

 

  • 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 and so forth, for a given feature.  Examples of a given feature include, “Intellisense, Code Snippets, Tool Window Docking, IDE Navigator.”  Trying to include all Editor Features or all Window Management Features into one Test Specification would make it too large to effectively read.

 

  • 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.  For example, I might want to see how Tool Window Docking is being tested.  I can glance at the Window Management Test Plan for an overview of how Tool Window Docking is tested, and if I want more info, I can view that particular test specification.

If you ask a tester on another team what’s 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 “Test Specification.”

 

 

Parts of a Test Specification

 

A Test Specification should consist 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 spec 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 specs.

 

  • Nightly Test Cases – a list of the test cases and high-level description of what is tested each night (or whenever a new build becomes available).  This bullet merits its own blog entry.  I’ll link to it here once it is written.

 

  • Breakout of Major Test Areas  - This section is the most interesting part of the test spec where testers arrange test cases according to what they are testing.  Note:  in no way do I claim this to be a complete list of all possible Major Test Areas.  These areas are examples to get you going.

 

    • Specific Functionality Tests – Tests to verify the feature is working according to the design specification.  This area also includes verifying error conditions.

 

    • Security tests – any tests that are related to security.  An excellent source for populating this area comes from the Writing Secure Code book.

 

 

    • Stress Tests – This section talks about what tests you would apply to stress the feature. 

 

    • Performance Tests - this section includes verifying any perf requirements for your feature.

 

    • Edge cases – This is something I do specifically for my feature areas.  I like walking through books like How to break software, looking for ideas to better test my features.  I jot those ideas down under this section

 

    • Localization / Globalization  - tests to ensure you’re meeting your product’s International requirements.

 

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 build is available
  • Second highest priority (Weekly) – Other major functionality tests run once every three or four builds
  • Lower priority – Run once every major coding milestone
Posted: Thursday, October 28, 2004 10:21 AM by saraford
Filed under:

Comments

Alex Moskalyuk Weblog said:

Sara Ford from Microsoft posted a good outline of a test spec. The experience comes directly from working on Visual Studio product, I assume. Joel's article on testing is also a good one to accompany this posting....
# October 28, 2004 2:06 PM

Waseem Sadiq said:

# October 28, 2004 3:05 PM

Waseem Sadiq said:

# October 28, 2004 3:06 PM

Matt said:

Its a nice information.. but can u post some sample docs so that we get a real picture... thanks
# October 28, 2004 3:34 PM

dotRob said:

# October 29, 2004 8:44 AM

Sara Ford's WebLog said:

# November 1, 2004 8:13 PM

Chua Wen Ching said:

Interesting :) Thanks.

We do not use test specs here in my job.
# November 23, 2004 1:46 AM

Hemanta said:

Good
# May 16, 2005 3:40 AM

AzazeL said:

Quite good tanx...
# August 14, 2005 3:05 AM

Rajesh said:

Wow.. What a wondeful blog on testing.

That too..i was looking for how to develop
a test specification...and here comes a
nice article...

Thanks Sara...
# November 17, 2005 11:21 AM

Pernilla said:

Sara,
I need to prepare a use case for doing performance testing. you have any ideas?
# February 24, 2006 6:46 AM

Rakesh said:

Hi Sara,

How r u ? ... I just want some docs for testing ... I am fresher want to persue my career in Testing....

Please do the favour

Mail ID: rakeshkumargl79@yahoo.com
# July 28, 2006 2:31 AM

srinivas said:

Hi Sara,
Its nice to meet u,  my request u to plz send me some test scenarios along with test case for a  specific functionality of particular application both 4 manual as welas 4 automatio(QTP).

                   thx
regards
srinivas
# August 12, 2006 3:28 PM

Ankesh Maradia said:

Hey Sara,

Your article is quite good. but i think if you support it with few smaple documents then it would solve the purpose more completely.

Thanks & Regards,
Ankesh.
# August 29, 2006 7:50 AM

Vineet Gupta said:

Hi Sara,

The points you covered are really good. I would like to know more about your articles on Test Specification and Test Plan.

Regards
Vineet Gupta (QA Manager)

# September 1, 2006 12:18 AM
New Comments to this post are disabled
Page view tracker