Learn, Share and Keep Learning
| Software Testing - Performance Testing Requirements |
|
The scope of this article is limited to the need, approach for requirement collection and the steps involved for Performance Testing. We all know and understand that not “one-size-fits-all”. The approach discussed in this article predominantly fits in to most scenarios but is not limited to or the only process to go about. IntroductionPerformance is a "must have" feature. No matter how rich your product is functionally, if it fails to meet the performance expectations of your customer the product will be branded a failure. Application architectural design decisions may be greatly influenced by the importance placed by the customer on one or more specific requirements. Incorrect design decisions, made at the outset of a project as a result of invalid assumptions, may become impossible to remedy downstream. The goal of performance testing is not to find bugs, but to eliminate bottlenecks and establish a baseline for future regression testing.Where do you start? Identify your customer needsIt is extremely important that you fully understand your customer's intentions and requirements as early as possible regarding software performance i.e. the operating environment (both hardware and software) in which your product will be deployed and the manner in which it will be used. So, how do you understand your customer’s requirements? Classify their needsEnd-User Requirements: The users of your application don’t know or care what the results of the performance tests are, how many seconds it takes something to display on the screen past their threshold for "too long," or what the throughput is. The only thing application users know is that they either notice that the application seems slow or not based on what they have become accustomed to.In order to quantify what the end user needs,
The Business Requirements would look like
Technical requirements are usually not directly related to other categories of requirement .These would look something like
For knowing these kind of requirements ask the architects, or other team members who may be responsible for enforcing and/or making decisions regarding targets and thresholds, to share those decisions with you. Standards, Compliance and ContractsDetermining performance characteristics in this category is conceptually Straight-forward, but there are often challenges in obtaining and interpreting the documents that spell out the characteristics of interest. Often, contracts are viewed as proprietary and are not made available for review by non-executives. It is important to explain when facing roadblocks to reviewing contracts that the specific language and context of any statement related to application performance is critical to determining compliance. The bottom line is simply this, don’t assume that you are done capturing goals and requirements until you have checked to see if some official or de-facto standard that your application is likely to be compared against. Determining all the above information is particularly important when a customer is seeking your advice on purchasing suitable hardware and software specifications in order to best deploy your product or his product (in case you are a service provider). As there will undoubtedly be lead times for purchasing and configuring such items, your customer is likely to want this information at the earliest opportunity. Now that you have identified the requirements, the following would be your action items.
Each one of the above steps listed is an exercise by itself – I shall try and cover in my upcoming articles. |