With User Experience gaining more & more importance during recent days, digital application performance evaluation is not a luxury anymore. With the impact of performance being realized by all the digital players, big or small, the market demand is very clear now, all they need is a team who can test, analyze, diagnose, tune & fix the performance issues quickly & effectively to meet their performance SLAs (Service Level Agreements).
Service providers have already started to shy away to project themselves as Performance Testing Experts or Performance Engineering Experts. Having realized the need, smart service providers started building a Performance Assurance Team with experts who as a team will have the capability to support throughout the SDLC phases (architecture review, budgetary capacity sizing, early performance testing, code profiling, hardware foot-printing, performance modeling, etc) for building digital systems with performance & once development is completed, to support in test evaluation, diagnosis, tuning & ongoing performance monitoring to meet the stringent non-functional requirements. But still, we need to agree the fact, a small percentage of application still follow traditional performance testing methodology in reactive fashion.
Every Performance Tester always aspires to get transitioned to Performance Engineer. We all need to realize the fact that it doesn’t happen overnight or through classroom training, it might take several years based on your learning & experimentation pace.
A Performance Tester can easily get transitioned to next level, for providing engineering recommendations & beyond through two popular modes. The foremost option is constant self push to explore & experiment to go beyond testing and the second option is through constant push from business (from your supervisors / organization where you work). You are definitely lucky, if both these push options work out for you in your career.
A Performance tester as every other testing professional, start their career thinking they will do only testing. But very soon performance testers will realize, though Performance Testing is under the umbrella of Testing, it is no longer a pure testing game, it’s much more. Below mentioned are some of the practical demands that start adding twists in the performance testing career. If you understand the demand carefully, from a business standpoint, you will realize as though you are lacking the demanded skill, though it’s not the case.
Transition demands imposed by business
Once you get into Performance testing as a beginner, shortly in a while, a high expectation gets quickly built on you and in no time business demands you to start using few commercial & open source tools to meet client requirements. You take it as a challenge & learn the handy tools quickly. This will make a Performance Tester, a practitioner of one or more performance testing tools.
Product managers across various technology stacks, will seek your help to do performance testing for their applications of various technologies including J2EE, .NET, Siebel, PeopleSoft, Oracle Forms, SAP, Mainframe, Web Services, IOT, Big Data, etc. This will make a Performance Tester, a tool expert who masters most of the protocols supported by the tools.
Performance testing demand from various domains / businesses that includes client-server application, digital products, mainframe application, web services, CMS application, banking applications, data warehousing applications, online shopping portal, wordpress sites, etc, will bring-in challenges to decide the right test strategy to test different type of applications. This will make a performance tester, a good Performance Test strategy specialist & make you to gather fundamental knowledge about all the technologies & how to validate performance on each technology stack.
Now comes the bigger twist, business will often feel your test result is incomplete as you are just reporting the transaction performance & scalability levels, but have no idea why the Performance SLAs are not met. This demand will make you to probe on appropriate server monitoring tools & gathering additional metrics on each of the web/application/DB tier for identifying layer specific performance metrics. You will start focusing on the performance issues of specific technology stack & deployment architecture. Often, projects follow different development models – water fall, agile, iterative, etc. You end up tweaking your test strategy to fit to the required development model. This will make a performance tester, a Performance Test Architect.
Upon reporting the first level of analysis results (test observations & symptoms) & second level of analysis results (tier specific health metrics & server resource health metrics) of your view of performance bottlenecks, often business will demand detailed root cause analysis. For example, if you report application server JVM heap size is small to support the target load; business will demand you to identify the best JVM heap size configuration for the application to support the target user load. On DB layer, once you report slow running queries/waits/locks.etc through Statspack/SQL profiler, business will demand detailed analysis recommendations for making DB performance better. On Application server layer, you start probing the reasons for memory leaks, out of memory exceptions, etc end up doing heap dump analysis, thread dump analysis, GC analysis, code profiling. On Network layer, you end up using Wireshark/Fiddler tools to probe what is happening at TCP/IP packet level. Thus you start doing deep dive analysis on every layer. This will make a performance tester, a real Performance Engineer.
The expectation is not yet over….
With Agile & Devops becoming more & more popular, business has a constant ask, can we bring proactive performance & capacity analysis measures as early as possible. This demand will lead to performance modeling, application capacity sizing, QN modeling, early performance testing, etc. Ability to predict the system performance & forecast the production environment performance is very important milestone. CI/CD integrated performance testing becomes essential piece of your Performance test methodology. This will make a performance tester, a Performance Modeling Expert.
Business demands will still be on the higher end, providing sizing recommendations for the application under test (AUT) based on the performance test benchmarks, doesn’t help business much in planning for the infrastructure investment. Hence there will be a demand for periodic analysis of infrastructure usage levels & provide sizing recommendations, which will lead to capacity management. This will make a performance tester, a Capacity Planning Expert.
Stringent performance & high availability requirements will demand quick & effective performance bottleneck detection & diagnosis in few button clicks. This has led to the revolution created by Application Performance Management (APM) tools. Obviously, performance testers are expected to be comfortable using various APM tools to detect performance issues in production environment effectively. This will make a performance tester, an APM tool expert & Production Performance Assurance Engineer.
With too much data gathered about ongoing system performance, how to interpret various performance metrics collected every minute on production environment to make useful analytics that can help business. The business demands performance analysts to be a data scientist to detect anomalies in production using the time series trends & to provide forecasts. To start with, this will make a performance tester, a data analyst and finally a data scientist as we start experimenting, developing & recommending right statistical or machine learning technique that can detect production anomalies effectively.
Other than technical skills, as a performance tester move up in the ladder, upon gaining expertise in additional areas like handling proposals, liaising with marketing & pre-sales team, test management, effort estimation strategies, resource planning, people management, delivery accountability, project health audit, accounting client calls, etc, this will make a performance tester, a Performance Testing Leader (Manager).
If we carefully evaluate all the business demands described above, it doesn’t require more time to reply back stating you are responsible only for testing, & you will not be blamed at all. Rather, when we try to develop an attitude to use it as an opportunity to learn & gain experience in all new unexplored areas, making our hands dirty, that’s when we become real Performance Engineering Expert.
A Performance Engineering Expert is one who has a holistic mindset to assure end to end system performance who carries good problem investigation skills combined with mathematical/statistical skills that can help in testing, analyzing, evaluating, modeling, sizing, predicting & forecasting system performance throughout SDLC phases with the support of sophisticated tools.
Often, a Performance Engineer cannot be a Subject Matter Expert (SME) in all the areas mentioned above. But that cannot be used as an excuse, to be ignorant on any of the areas mentioned. As one gains more years of experience in this field, it is definitely expected to develop the skills across these areas.
There are some limitations that we need to digest & fight back due to frequent twists. Often, it becomes a tough challenge to keep updated on new advancements in all the tracks that we travel along, as we might stick to specific track for a while. For example, we might be an expert in a tool, say, LoadRunner 9.x but due to change in the focus area, area of interest, you might not completely be in touch with the new features developments on recent version of LoadRunner 12.x. We might have struggled to fix up a memory leak issue / reducing time spent in garbage collection, for day & night through heap dump analysis & GC log analysis during our past experience, but we might not remember the tool specific configurations & best practices to catch up the issue quickly over a period of time, once you start moving into different tracks.
How to get rid of this challenge? There is no one specific best answer to this question. You are the best judge to get an answer for yourself. Here is my answer based on my point of view:
That’s OK. Do what you are passionate about, not just because industry demands it. Stick onto those tracks which you are very much inclined & be a good learner on other tracks for knowledge gathering purpose to make yourself complete. You can learn about 10 different tracks, interested in 7 different tracks, experiment 5 different tracks & finally become an expert in 3 different tracks. That’s ok. Do what you love. It’s ok to learn & forget to give room for new learning.
A few performance testers, are held up & really locked, due to delivery pressure & project constraints, & don’t get a good playground to explore & experiment within the organization, a few performance testers are not interested to come out of their comfort zone, a few performance testers are not bothered to go beyond using their favorite commercial performance testing tool, a few performance testers are just behind doubling or tripling their salary, a few performance testers are scared about words like performance engineering, modeling & forecasting, etc and a few performance testers are so much energetic & passionate to get onto the race & bold enough to take up as many twists as possible to learn new things. None of the above category of performance testers can be called good or bad. The aspirations, career needs & life priorities vary from person to person. What best suits you might not suit best for others. If one starts analyzing which of the above category best describes yourself & what you want to become really in your career?, you are half way towards your success path, you can easily figure out the rest , i.e., how to reach your target.
The only aspect which remains static in this field is “CHANGE”. Gear up & get ready to take up the next challenge that is on the way!!
FACE IT, DON’T EMBARRASS the ever changing business demand. Just remember, we need to do justice to our title ‘High Performance‘ Testers!!
Do share your views & ideas to succeed as a performance tester..Do you have any interesting career transition story of yours? Write to us to get it published at our blog.
Happy Performance Testing Transitions!! Good Luck. 🙂