Skip navigation.

Peformance Testing and Performance Engineering

non-functional testing | performance testing
I completely agree with Wikipedia definitions that performance testing is a part of performance engineering.

The scope of performance testing is not well defined and varies from creating scripts and running tests in its narrow definition to all kinds of performance-related activities when synthetic workload is applied to the system in its wide definition. And the wide definition often includes performance analysis, performance troubleshooting / diagnostics, tuning, and capacity planning making the word "testing" to be rather disguising the substance of what it behind. The difference behind these definitions can partly explain the wide range of opinions about a path from functional testing to performance testing: while the path from automated functional testing to "narrow definition" performance testing is quite straightforward, skills required by other areas of "wide definition" performance testing are quite different.

If speak about the "wide definition" of performance testing, it is definitely highly interwoven with performance engineering. Performance testing is a source of data for any kind of modeling and capacity planning activities. It is way to calibrate and verify models (where models mean not only formal models, but any kind of perception of how the system is supposed to work). If any pro-active performance experiment consider as performance testing, only other source of data may be observation or log analysis of real work with the system, when you never know what exact level of load was applied and what else happened around (so data won’t be "clean"). A notable exception is data defining load (like throughput) which are parameters of performance testing; so they can’t come from its results, they should come from analyzing real systems or other sources.

Unique opportunity to exactly reproduce workload in performance testing is priceless during tuning and diagnostics of performance problems. You get exact impact of suggested change, while, for example, doing that in production you never know what other unknown factors may impact results.

While performance testing wasn’t discussed much by Dr. Connie U. Smith or Dr. Lloyd G. Williams (people who probably done most to promote software performance engineering), it is implied as an integral part of performance engineering. For example, the QSEM: Quantitative Scalability Evaluation Method paper really described performance testing to investigate system’s scalability.

Performance testing is not "sexy" from scientific point of view. While it has rather mature practice, there is no mature performance testing theory around. There is no classic textbook, for example, most education goes around vendor’s tools. It is difficult to put many formulas in it (I always enjoy performance management / capacity planning books where after some initial performance- and computer-related discussions usually there are many chapters of plain queuing theory and other part of mathematics that are supposed to be used).

Performance testing is a very good step to introduce performance engineering. At least it is the area where some low hanging performance fruits could be easily found and it is quite clear what to do it. While performance testing theory is almost non-existing, performance testing practice is pretty mature (although often grouped around tool vendors, their training and user communities). It looks like performance testing groups becomes the centers of performance engineering ("a performance center of excellence", for example) in the enterprise instead of performance analysis and capacity planning groups that were typical for corporations using mainframes.

QA VS. Tester

Having been in IT for over 30 years, I know that duties,titles and technical skills vary from company to company, but assuming we are an above average QA professional, lets say someone who has been doing QA work for at least 7 years and takes his job seriously as opposed to doing some low level testing just as a means to break in to IT.

QA professionals are part Business Analyst part System Analyst part Programmer and so on.

I do not pay my QA Professionals 150K a year just to TEST.
Real QA people are forced to understand the intricities of every system that they test and bring experience to the possibilities that a complex IT system can easily be flawed.

If anyone would like to take this conversation offline please email me.

Comment viewing options

Select your preferred way to display the comments and click 'Save settings' to activate your changes.