testingload-testingstress-testing

Setting up a lab for developers performance testing


Our product earned bad reputation in terms of performance. Well, it's a big enterprise application, 13 years old, that needs a refreshment treat, and specifically a boost in its performance.

We decided to address the performance problem strategically in this version. We are evaluating a few options on how to do that.

We do have an experienced load test engineers equipped with the best tools in the market, but usually they get a stable release late in the version development life cycle, therefore in the last versions developers didn't have enough time to fix all their findings. (Yes, I know we need to deliver earlier a stable versions, we are working on this process as well, but it's not in my area)

One of the directions I am pushing is to set up a lab environment installed with the nightly build so developers can test the performance impact of their code. I'd like this environment to be constantly loaded by scripts simulating real user's experience. On this loaded environment each developer will have to write a specific script that tests his code (i.e. single user experience in a real world environment). I'd like to generate a report that shows each iteration impact on existing features, as well as performance of new features.

I am a bit worried that I'm aiming too high, and it it will turn out to become too complicated.

What do you think of such an idea? Does anyone have an experience with setting up such an environment? Can you share your experience?


Solution

  • It sounds like a good idea, but in all honesty, if your organisation can't get a build to the expensive load test team it has employed just for this purpose, then it will never get your idea working.

    Go for the low hanging fruit first. Get a nightly build available to the performance testing team earlier in the process.

    In fact, if this version is all about performance, why not have the team just take this version to address all the performance issues that came late in the iteration for the last version.

    EDIT: "Don't developers have a responsibility to performance test code" was a comment. Yes, true. I personally would have every developer have a copy of YourKit java profiler (it's cheap and effective) and know how to use it. However, unfortunately performance tuning is a really, really fun technical activity and it is possible to spend a lot of time doing this when you would be better developing features.

    If your developer team are repeatedly developing noticeably slow code then education on performance or better programmers is the only answer, not more expensive process.