You are on page 1of 9

Regression Testing

And
Smoke Testing
Regression testing is any type of software testing that
seeks to uncover new errors, or regressions, in existing
functionality after changes have been made to a system,
such as functional enhancements, patches or configuration
changes.

The intent of regression testing is to ensure that a change,
such as a bugfix, did not introduce new faults. "One of the
main reasons for regression testing is that it's often
extremely difficult for a programmer to figure out how a
change in one part of the software will echo in other parts
of the software."
Common methods of regression testing include rerunning
previously run tests and checking whether program
behavior has changed and whether previously fixed faults
have re-emerged.

Regression testing can be used to test a system efficiently
by systematically selecting the appropriate minimum set of
tests needed to adequately cover a particular change.

Regression testing can be used not only for testing
the correctness of a program, but often also for tracking the
quality of its output. For instance, in the design of
a compiler, regression testing could track the code size,
simulation time and time of the test suite cases.
A common approach for creating daily builds for
product software(time critical projects).

Smoke testing is a preliminary to further testing, intended to
reveal simple failures severe enough to reject a prospective
software release. In this case the smoke is metaphorical.

A subset of test cases that cover the most important
functionality of a component or system are selected and
run, to ascertain if the most crucial functions of a program
work correctly.
For example, a smoke test may ask basic questions like
"Does the program run?", "Does it open a window?", or
"Does clicking the main button do anything?

The purpose is to determine whether the application is
so badly broken that further testing is unnecessary.

"smoke tests broadly cover product features in a limited
time ... if key features don't work or if key bugs haven't
yet been fixed, your team won't waste further time
installing or testing".

Smoke testing performed on a particular build is also
known as a build verification test.

A daily build and smoke test is among industry best
practices. Smoke testing is also done by testers before
accepting a build for further testing. Microsoft claims
that after code reviews, "smoke testing is the most cost
effective method for identifying and fixing defects in
software".

Smoke tests can either be performed manually or using
an automated tool.
Smoke tests can be broadly categorized
as functional tests or unit tests:

Functional tests exercise the complete
program with various inputs.

Unit tests exercise individual functions,
subroutines, or object methods.


Benefits:
Integration risk is minimized
The quality of the end-product is improved
Error diagnosis and correction are simplified
Progress is easier to assess

You might also like