Learning Performance Testing
Performance testing is a very interesting area. From one side, it is rather an established discipline with thousands of people involved. From another side, there is not much information about it considering 20+ years of history. And, in particular, not many books. We have a number of books about performance modeling, performance analysis, capacity planning, tuning and optimization – but very few books about performance testing per se.
One issue with performance testing is that it is tool-dependent. So talking about performance testing you have a choice of making it tool-independent (thus making the discussion rather generic) or use a specific tool for illustration (thus somewhat limiting potential readers to users of this particular tool – and limiting the life of the book as tools evolve).
There are just a couple of good generic books I’d recommend: Performance Testing Guidance for Web Applications (also available online) and The Art of Application Performance Testing by Ian Molyneaux (now in the second edition). A small eBook Load Testing for Dummies by Scott Barber may be a good starting reading (available online with free registration).
Still it would be a challenge for somebody new to performance testing to start from such book: it is difficult to understand generic wisdom when you miss the basic stuff. Many everyday challenges of performance testing are almost impossible to illustrate without specific examples. Until recently we were limited to tools manuals, tutorials, and classes. And, of course, Internet posts (see my collection of performance testing links).
It is very surprising that actually no decent books about load testing tools were published for 20+ years of their history. So it is nice to see a couple of JMeter books by Bayo Erinle published by Packt Publishing recently: Performance Testing With JMeter (already in the second edition) and JMeter Cookbook. They provide many good practical examples and, if complemented by more generic books mentioned above, may be a good starting point for a journey into performance testing
The challenge of performance testing is that creating and running tests is not enough. You need to understand performance concepts in general – such as performance analysis, performance engineering, capacity planning, and systems architecture – as well as performance peculiarities of specific products and technologies. Probably the best book to get familiar with concepts from scratch would be Every Computer Performance Book: How to Avoid and Solve Performance Problems on The Computers You Work With by Bob Wescott (a few excerpts are available online). If you are familiar with the basics, there are many good books looking into different aspects of performance engineering in depth (I have many listed at my site grouped by topic). And, of course, each product or technology has performance aspects associated with them. For example, you would find at least a dozen of thick books only on Oracle database performance.
You may see that mastering all aspects involved in performance testing takes a lot of time and efforts. Books and other available information may get you started and help you to advance as you get experience – but experience is the key to progress. Working along with experience testers and getting, if possible, a mentor would be vital. A good way to get in contact with fellow professionals and get up to speed in advanced topics would be a proper conference.
However there is no perfect event for a performance tester. I believe that the closest is the Performance and Capacity conference by CMG – a practical conference devoted to performance engineering and capacity planning – with a strong performance testing track. Although the stress there is rather on performance than on testing.
The Workshop on Performance and Reliability (WOPR) is probably the only event devoted exclusively to performance testing (and some adjacent areas) – but due to its format it is limited to 20-25 people, by invitation only.
There are many great testing conferences such as STAR conferences, Agile Testing Days, orCAST where you may find some presentations related to performance testing – but they are rather few and far apart.
A little more performance-related stuff can be found at the Software Test Professionals (STP) conference (I still remember time when STP stood for Software Test and Performance) – but the stress there is much more on testing than on performance, and usually not much there on performance engineering at all.
The Velocity conference is the primary event for web performance. You would see quite a few performance testers attending and many performance tool vendors exhibiting, but very few sessions touching classical performance testing.
And, of course, there are many vendor events covering their particular products – which may interest you if you are using these products.
Another good way to get in contact with fellow professionals is Internet groups. Looks like most of them can be found on LinkedIn. Look for topics of your interest – and you find dozens of groups there.
Learning performance testing is a challenge and there is no easy shortcut. Unfortunately there is no simple path to mastery – you need to learn from all possible sources of information combining them with practical experience and networking with experienced professionals. But good news is that there are sources around that help you on the way – from books and blog posts to different conferences and Internet groups.
[The post was originally published in the April 2015 issue of Testing Circus – adapted to better fit blog format.]