How to articulate and define performance requirements

Java application testing

How to articulate and define performance requirements

By Lukas Stewart

When it comes to application performance, one of the most common problems organizations make is the problem of omission. When it comes to application performance, far too many organizations fail to properly articulate what acceptable performance actually is, and without a basic description of how an application is supposed to perform, when problems arise, nobody knows how to deal with them.

So how do you effectively define the performance requirements for your applications? Using the SMART mnomic is a good start, meaning that any performance requirement you have should be: 

  • Specific
  • Measurable
  • Attainable
  • Relevant
  • Timed

With this in mind, a good performance requirement might read something like this:  “98% of all round-trip response times, when uploading a file less than 50K in size through screenA, should be should be sub-second."  

Passing the SMART test

As you can see, this requirement is very specific, describing both the scenario in which the application is being used, and the particular part of the application, namely screenA, that needs to meet the requirement. Furthermore, the requirement is easily measured and certainly attainable with modern hardware. It is relevant to the user, and it can be effectively timed, so by all means, this requirement passes the SMART test.

And of course it cannot be stressed enough that a performance requirement must be capable of being tested. If a performance tester looks at a given requirement and has no idea how to test its veracity, you've got a serious problem. After any performance requirement is articulated, the question as to how easily this requirement can be tested must be asked. If the answer is not clear, the requirement needs to be rephrased and reworded.

But to actually test a performance metric the requirement must actually exist in the first place, and it is defining sensible and testable performance requirements that organizations often fail to do. Performance should never be an afterthought, but instead, a high-priority requirement that gets defined clearly and early on in the application lifecycle management process.

24 Oct 2012

Related Content

Related glossary terms

Terms from − the technology online dictionary
Java application testing

Related Resources

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.