I recently got some comments/questions related to my previous blog entry on http://agiletesting.blogspot.com/2005/02/performance-vs-load-vs-stress-testing.html - performance vs. load vs. stress testing .
Many people are still confused as to exactly what the difference is
between performance and load testing. I've been thinking more about it
and I'd like to propose the following question as a litmus test to
distinguish between these two types of testing: are you actively
profiling your application code and/or monitoring the server(s) running
your application? If the answer is yes, then you're engaged in
performance testing. If the answer is no, then what you're doing is
load testing.
Another way to look at it is to see whether you're
doing more of a white-box type testing as opposed to black-box testing.
In the white-box approach, testers, developers, system administrators
and DBAs work together in order to instrument the application code and
the database queries (via specialized profilers for example), and the
hardware/operating system of the server(s) running the application and
the database (via monitoring tools such as vmstat, iostat, top or
Windows PerfMon). All these activities belong to performance testing.
The
black box approach is to run client load tools against the application
in order to measure its responsiveness. Such tools range from
lightweight, command-line driven tools such as httperf, openload,
siege, Apache Flood, to more heavy duty tools such as OpenSTA, The
Grinder, JMeter. This type of testing doesn't look at the internal
behavior of the application, nor does it monitor the hardware/OS
resources on the server(s) hosting the application. If this sounds like
the type of testing you're doing, then I call it load testing.
|