This is the first part of a 3 part series on creating a performance engineering trajectory for yourself.

It is important to find inroads within your projects to develop skills. It is never prudent to wait for that right project to make your move to performance engineering. In this part I talk about how you can start shifting your approach from a black box performance testing to performance engineering. And along the way pick up skills through the projects that you are working on. I also try to throw some light on how to mold your mindset for performance engineering.

Mindset Change

Performance Testing vs Engineering can be looked at from several lenses but fundamentally it is a mindset change. The skill set will follow intuitively once you have the mindset. You have to start approaching every application with the intent of improving its performance. (Yes, Even when it may not really need improvement). Think - Engineering is building, Testing is validation*.

Know the application

The main problem that I see is that we test applications without really knowing it. We take a very black box approach. Simulate critical transactions w. load, measure response times and report them. At times may be we go one step ahead measure the CPU and Memory.

When you start a project, start by exploring the application as deeply as you can. (And not by trying to find what Load Runner Protocol to use). Your application design has to be an integral part of your NFRs and Test Design. If you know the application well, you will know how to simulate the load even without Load Runner. Aim to understand the performance characteristics of the application, not just to measure it.

How do I get to know the application?

I tend to look at the application from two dimensions : 1. How is the application used, 2. How does the application work/ behave.

I assume you already have a decent understanding of the application functionality. If not start with that. Know what problem does the application solve for its users. This is the base for both the dimensions.

I. How is the application used:

A great way to develop perspective on user expectation is by understanding the customer JTBD (Job To Be Done). This is helpful in understanding what type of response times(performance) will delight the customer and what may be just about acceptable.

This also helps build thought process around managing(manipulating) user perception in the solution. But user perception is content for a later post.