Best Practices for Software Projects - Smoke Tests
 
  September 2004 - Pragmatic Software Newsletters 
 
 
Best Practices for Software Projects - Smoke Tests
This year's newsletters will focus on best practices for software development projects.  Each month will cover a different best practice technique.  This month focuses on improving software development by using smoke tests.
 

Newsletter Sponsor

Software Planner (http://www.SoftwarePlanner.com) helps improve the quality of software releases and decrease software maintenance costs by providing you with tools for managing all phases of the software lifecycle.

Software Planner tracks customer requirements, test cases, defects, support tickets, appointments and to-do lists, and allows you to share documents and hold threaded discussions.  Fully web-based and integrated with email.

Best Practices for Software Projects - Smoke Tests

A smoke test is a series of test cases that are run prior to commencing with full-scale testing of an application.  The idea is to test the high-level features of the application to ensure that the essential features work.  If they do not work, there is no need to continue testing details of the application, so the testing team will refuse to do any additional testing until all smoke test cases pass.  This puts pressure on the development team to ensure that the testing team does not waste valuable testing time with code that is not ready to be tested.

Once smoke tests are implemented as part of your software development life cycle, you will see the overall quality of the product improve and the sensitivity to producing high quality software increased.

Smoke Tests - How to Implement

To implement smoke tests, the quality assurance (QA) lead will develop a set of test cases that are run any time a new release is provided from the development team. These set of test cases are used to test the major functional areas of the system.  They are not nit-picky test cases that test low-level detail of the application, they are higher level test cases that test overall functionality.  Normally, a smoke test will consist of 20 to 30 high level test cases.

To ensure quality awareness, the smoke test cases are publicized to the development team ahead of time, so that they are aware of the quality expectations.  If a build fails a smoke test, it should not be taken lightly, as this may illustrate a discipline problem with the development team.  Each developer should be held responsible for ensuring that their code does not break the smoke test.  Under no circumstance should the QA team agree to continue testing the release until all the smoke test cases have passed.

Some fun ways to enforce smoke test quality is to hold developers to this quality standard by peer pressure.  For example, developers that break the smoke test may have their name posted on your department bulletin board in the "Hall of Shame" until the developer provides a good build.    Or you may consider taping a sucker to the door of the developer that broke the smoke test until the developer fixes the build.   Another good technique is to have the project manager allocate a budget for a team party upon the software being successfully implemented.  Then if teams break the smoke test, a fine is levied, decreasing the total budget for the team party with each infraction.


Using Online Tools

The smoke test cases can be run manually or by automated testing.  Automated testing can speed the smoke test process.  There are several products that can aid you in creating automated test cases, an economical one we recommend is EggPlant by Redstone Software.

In most cases, you will either use automated testing or a combination of manual and automated testing.  For manual testing, we recommend Defect Tracker or Software Planner.  Both of these products allow you to matrix your functional specifications (customer requirements) to test cases, providing traceability of test coverage.  You can see how the test cases feature works here:

    http://www.pragmaticsw.com/GuidedTours/Default.asp?FileName=testcases

Conclusion - Helpful Templates

As you can see, implementing smoke tests can greatly improve your software quality and can prepare your team for delivering on-time and on-budget.  Below are some helpful templates to aid you in developing software solutions on-time and on-budget:

About the Author
Steve Miller is the President of Pragmatic Software (http://www.PragmaticSW.com).  With over 20 years of experience, Steve has extensive knowledge in project management, software architecture and test design. Steve publishes a monthly newsletter for companies that design and develop software.  You can read other newsletters at http://www.PragmaticSW.com/Newsletters.htm.  Steve's email is
steve.miller@PragmaticSW.com.


 

Pragmatic Software Co., Inc.
383 Inverness Parkway
Suite 280
Englewood, CO 80112

 

Phone: 303.768.7480
Fax: 303.768.7481
Web site:
http://www.PragmaticSW.com
E-mail:
info@PragmaticSW.com