We have been experiencing some issues with our product under a reasonable load. So our QA department jumped in and decided to load test the product. They decided to run our servers under a profiler and put a massive load on these servers inorder to find out what is going on.
I was having a discussion with the QA manager about this and I was asked to recommend JProfiler to the management so that a license could be acquired. To be frank I am not a very big fan of JProfiler. I usually don’t go with these commercial profilers unless the tools available with the JDK are simply not enough – which is rare. Even in that situation I use the YourKit Java Profiler. This is when I was asked “Is it QA friendly?”
Well, this seems to me a wrong question because:
- The profilers are never QA firendly as their target audience is never QA people, they are meant for the developers as its the developers who have written all the code and they who know their code the best and can put all the information to good use that the profilers produce.
- Since the developers know how their code works they know what to profile and what not to profile. Profilers usually make the product slow and it really helps if you know what to profile. As you you don’t waste a lot of time waiting for the test case to complete and analyzing results.
- QA generally regards everything as bug, if the profiler produces a dump having tons of byte than QA files this as a bug/root cause of the load issues. But in fact this can be wrong. And developers have to find out the root cause by themselves and it turns out that they end up wasting time finding the root cause of a problem which never existed.
So in my opinion all these activities should be left to the developers and the QA should act as a helping hand in these scenarios coming up with a reproducible test case that the developrs can use to find out the root cause be it using profilers or reviewing the code.