Log In
E-mail or User ID
  Keep me signed in
Recover Password
Create an Account

stress testing vs performance testing

hello all,

stress testing and standard application performance testing are two very different things.
the first major difference between the two is their intended goal :
the goal of stress testing is usually to evaluate the hardware and or the system's configuration.

in other words, these test are intended to find hardware and/or software and/or configuration related bottlenecks, so that once they are found , they can be widended.
sometimes all it takes is a configuration change to get more out of the hardware, othertimes you may be forced to buy "stronger" hardware.

the goal of standard application performance testing is to test a program for performance related errors like
inefficiencies in the application's algorithm or sql statments that can be made to run faster (consume less resources) .
it should be clear that not all programs "were created equal", they can't all be winners in the 100 meter dash ( they can't all have subsecond response times),
but sometimes you may be able to help them with a small change of the sql code, or add an index ,
sometimes you may be forced to perform a massive rewrite,
and sometimes you may decide to run them during the weekend so that they don't have an adverse effect on system.

once you understand the difference in goal , all the other differences like the where when & how of each type of testing is a lot simpler to grasp.

where :
usually stress testing should be conducted on the hardware you wish to test, be it your actuall production servers or an exact replica of them.
on the otherhand, you should be able to perform perf-testing on "any" hardware - as long as it meets other relevant requirments, like having all the data that will be processed

by the program in the future ( in the production system).

when :
stress testing is usually conducted before a major rollout of a new release, or before a major hardware change.
applicataion perf-testing should usually be conducted after any major change in the application itself.

how :
stress testing usually requires using some sort of automation tool that can simulate concurrent executions of various programs.
during the testing you monitor the utilization of the various hardware/software components ( all the known potential bottlenecks),
and the system's throughput and average response times are measured in order to see if the test was successful or not.
personally, I find that conducting several tests of increasing intensity ( x, 2x, 10x, 50x, 100x....) makes it easiyer to locate the bottlenecks.
( conducting one massive test on full capacity can only generate a yes/no answer to the question - "can these servers handle the expected load").

app perf testing - is a lot simpler and cheaper to perform,
there is [usually] no need to execute the program in parallel.
usually all you need to do is execute the program with indicative input - a few tests with the most common input,
a few tests with the input that represents the worst case.
during these tests you should use the relevant tracing tools to "look into" what the program is doing, and make sure it all makes sense.
it has been my experience that many people concentrate on the programs elapsed time, I have written before about the downside of this method,
you can read more about it here and here.

all the best.
if only writers block would be as simple to treat as other forms of blockage
omer brandis.

Read 2 comments


very nice
thanks for this........ nothing could be as clear as this...

Leave a Comment

Connect to this blog to be notified of new entries.
You are not logged in.
Sign In to post unmoderated comments.
Join the community to create your free profile today.
Archive Category: administration tips
Keyword Tags:  administration   netweaver   abap   database  

Receive the latest blog posts:
Share Your Perspective
Need Some Professional Help?
please contact me using linkedin contact me using linkedin

submit to reddit

PCMag Digital Group TRUSTe European Safe Harbor certification