Defining Your Goals

Once you've defined you scenario, it's important to spend time determining your main objectives and goals.

Typical goals of performance testing, for both web and mobile applications, can include:

  1. Checking for failures or errors that occur in an application due to high load.
    • High load may culminate in transaction failures or errors, resulting in problems within an application (like a HTTP 500 error).
    • Measure high response times and latency issues that arise due to load.
  2. Determining the user limit for the application.
    • The user limit is the maximum number of simultaneous users that the application can support while remaining stable and providing reasonable response times to users as they navigate an application.
    • The user limit should always be higher than the required number of concurrent users that the application must support while deployed.
  3. Determining client-side degradation and end user experience under load. Ask yourself:
    • Can your users get to the application in a timely manner?
    • Are your users able to use the application as intended within an acceptable time?
    • How does the time of day, number of concurrent users, transactions and usage affect the performance of the application?
    • Is the degradation "graceful?" Under heavy loading conditions, does the application behave as expected or do components crash and/or send erroneous/incomplete pages to the client?
    • What is the failure rate that your users observe? Is it within acceptable limits? Under heavy loading conditions do most users continue to complete their business transactions or do a large number of users receive error messages?
  4. Determining server-side robustness and degradation. Ask yourself:
    • Does the web server crash under a heavy load? High user load may initiate a large number of processes in the server and create high CPU & RAM consumption. Would an increase beyond a specific point bring down the server?
    • Does the application server crash under a heavy load?
    • Do any of the other middle-tier servers crash or slow down under a heavy load?
    • Does the database server crash under a heavy load?
    • Does the system load require balancing or, if a load balancing system is in place, is it functioning as intended? In a scenario where multiple servers are in use, is the load distributed across them efficiently so that parallel processing occurs correctly? Or, are particular servers in the balancing cluster subjected to a heavy load?
    • Can the current architecture be fine-tuned to extract better performance?
    • Should you make hardware changes for improved performance?
    • Are there any specific changes in the application or its architecture that could further improve performance?
    • Are there any resource deadlocks in the application system?

Click here to go to the next page.