Performance Testing has grown to be a niche that testers aspiring to build a specialization can focus on. Performance Testing is a large discipline in itself covering several aspects such as load, stress, overhaul test scenarios, capacity planning etc. While each of these warrant their own tests, every kind of performance test fits into a larger test life cycle that involves collecting requirements, defining and designing tests, test data generation (which is a rather important piece in performance testing), test execution, performance benchmarking and tuning. Tuning essentially refers to the activity of making changes (be it configuration or code, sometimes even at the design level), aimed at improving system performance. So, tuning could either be pro-active or re-active depending on when in the product lifecycle it is actually done. Performance tuning is not always undertaken at the request of a tester. A developer, designer, analyst could equally bring in tuning suggestions based on their scope of operations. A tester could take in tuning suggestions based on his test findings but since this is done most often after implementation these are not as proactive as they can be. If the same tester is able to make these tuning suggestions even at the design or coding phase based on his review of the specifications, it can get more proactive in nature. However, tuning is not always very black and white. There are a lot of gray areas that need iteration, ongoing evaluation and understanding of the product, competitive analysis etc. Given all of these, the tuning recommendations made even at the testing stage are very valuable rather than having these come in from the end user after implementation. Also, tuning may sometimes be very quick to implement; however, more often than not, they require a lot of trial and error, troubleshooting and debugging to ensure the right areas are touched on and tuning is done without impacting the performance of other modules in stake.
Tuning is an area of specialization of its own even within the larger performance umbrella. As a tester in the performance space, one can either build specialization as a generic performance tester or a core go-to person in performance tuning spreading his reach across the product and performance life cycle significantly enhancing the system’s overall performance.