Performance testing is an increasingly popular test area in the non-functional gamut of quality today. End users expect very fast and quick responses at whatever layer of the application they are dealing with – this includes whether it is a static page that is rendered, a simple dynamic page such as a home page load or a complex dynamic page that is heavy on data with several backend channels of communication. With growing platforms on which applications are supported, functional testing is increasingly scaling to an effort that is soon becoming unmanageable making optimization a must.
Specific to performance testing, it does not suffice to just optimize the core test scenarios. One must focus on optimizing the performance test effort itself right from understanding what the testing goals are, what data to use, the tool options, what to report, what competitor analysis to take in, what infrastructure to leverage, how to report actionable bugs etc. Above all the most important attribute in the success of a performance test effort is the right collaboration that the tester brings in with the rest of the product team. Performance is probably the most subjective of all test attributes in a quality effort. What is acceptable performance to one may completely differ from someone else on the team, let alone the end users. Thus it needs to be a very collaborative effort that embraces the business angle, the architectural limitations and challenges, engineering implementation, scalability considerations, test tools and infrastructure, and of course the market considerations of end users and competitors in determining how much and what to cover. Also, although performance test specialists are now increasingly becoming residents in a product team, the performance test effort itself still continues to be a horizontal. It is an effort which cannot be fully contained in a given release but can be logically viewed as complete before the application is released in the market. Understanding these core concepts of cross team collaboration, horizontal functional implementation go a long way in building a successful performance testing engagement – these two together are more important than the core engineering pieces of putting the test effort itself. While this is true of any other test effort too, it is all the more important for a performance testing effort.