Reasons for stress testing include:
• The software being tested is ”mission critical”, that is,
failure of the software (such as a crash) would have
disastrous consequences.
• The time and resources dedicated to testing is usually
not sufficient, with traditional testing methods, to test all
of the situations in which the software will be used when
it is released.
• Even with sufficient time and resources for writing
tests, it may not be possible to determine all of the
different ways in which the software will be used. This is
true for operating systems and middleware, which will
eventually be used by software that doesn’t even exist at
the time of the testing.
• Generally the customers are use the software on the
Computers that have significantly fewer computational
resources (like memory or disk space) than the computers
used for testing.
• It is difficult to test the concurrency with traditional
testing methods. In stress testing it may be necessary to
find race conditions and deadlocks.
• Software like web servers that will be accessible over
the Internet may be subject to denial of service attacks.