Monday, May 12, 2008

SMOKE TESTING

SMOKE TESTING

Smoke testing is an integration testing approach that is commonly used when “Shrink-Wrapped” software products are being developed. It is designed as pacing mechanism for
time-critical projects,allowing the software team to asses its project on a frequent basis.

Smoke testing approach encompasses the fallowing activities:

1.Software components that have been translated into code are integrated into a “build”.
A build includes all data files,libraries,reusable modules,and engineering components that are required to implement one or more product functions.

2.A series of tests designed to expose errors that will keep the build from properly performing its function. The intent should be to uncover “show stopper” errors that have the highest likelihood of throwing the software project behind schedule.

3.The build is integrated with other builds and the entire product (in its current form) is smoke tested daily. The integration approach may be top down or bottom up.
(Source:Software Engineering :Roger S Pressman)

The smoke test should exercise the entire system from end to end.It does not have to be exhaustive,but it should be capable of exposing major problems. The smoke test should be thorough enough that is the build passes,you can assume that it is stable enough to be tested more thoroughly.

Smoke testing benefits:
Integration risk is minimized: Because smoke tests are conducted daily,incompatibilities
and other show-stopper errors are uncovered early,thereby reducing the likelihood of serious schedule impact when errors are uncovered.

The Quality of the end-procuts is improved: Because the approach is construction (integration) oriented,smoke testing is likely to uncover both functional errors and architectural and component-level design defects. If these defects are corrected early,better product quality will result.

Error diagnosis and correction are simplified: Like all integration testing approaches ,errors uncovered during smoke testing are likely to be associated with “new software increments”- that is, the software that has just been added to the build(s) is a probable casue of a newly discovered error.

Progress is easier to asses: With each passing day, more of the software has been integrated and more has been demonstrated to work. This improves team morale and gives managers a good indication that progress is being made.

No comments: