Tuesday, July 19, 2011

What requirements to collect

After a long time I felt like restarting my blog with useful information. As promised in my earlier posts, I like to continue with the requirements collections.

First you must need to know the purpose of the performance testing for a project and then collect the possible requirements. I would like to give you a small list of requirements that will help you better understand to go for your performance tests.

1 What is the purpose/goal of this current proposed performance testing?
2 Has the application been Performance tested before? If yes do you have a baseline ?
3 What is the total number of users who use the system each day?
4 What is the total number of concurrent users?
5 What is the current growth rate seen in the past year in users?
6 What are the business hours per day in which application is used?
7 What are the peak times? What is the duration of the peak time?
8 What are the various user profiles and their frequency of activities on the site?
9 Also provide the peak load that can be expected from each user profile and the duration for which the peak load is to be maintained.
10 What are the major transactional functional flows for the application? (List the frequently used functionalities and Business critical functionalities in the application/system/product)
11 What are the business critical flow/ Scenarios in the application
12 What are the no of transactions in a day or over a period of time?
13 What are the number of transactions/hour for each business transaction identified above? 14 What is the target load in terms of Hits per second?
15 What is no of transactions to be performed in defined test duration?
16 How long does it usually take to complete each scenario/process flow?
17 What is the acceptable response time for each transaction of page loading?
18 What is the acceptable time out for each page and session?
19 Is there any acceptable throughput for the server?
20 What is the protocol used for communication? Does it use SSL or multiple protocols?
21 What is the major browser used on the application
22 What is the architecture of the Application?
23 Is the test environment identical to production?
24 Was the test environment scaled one? If so, what scale compared to production as the requirements might need to be scaled accordingly?
25 Is the application environment clustered?
26 If the environment is clustered, How many machines/legs are going to be used in each layer?
27 What are the different S/W used in environment like O/S, Web serer, App server, DB?
28 How many CPU are available for each server?
29 What is the acceptable resource utilization? (%CPU Usage <75%, % Memory usage < 80% , % Wait time<10%)
30 What monitoring tools are available? What needs to be monitored? Who is going to monitor what servers?
31 Are there any load balancers or proxy servers in Environment?
32 Is there any proxy between Test Environment and LR environment?
33 What is the network bandwidth that we need to consider for the test? Is it scaled as per Production environment?
34 Do we have any other applications running in the same environment?
35 Is there any impact or relationship between these two applications
36 What are the known application issues?
37 Are there any data dependencies in the application that will impact scripting?
38 Is the code frozen?
39 Is the test environment stable?
40 Are there any specific risks associated with the application or the project?
41 What is the average session duration for a user?

There may be other questions/requirements need to collect depending on your project and the objective of performance testing. Its very common to measure that the no of users sustained by system, response time of various transaction times, throughput of the servers, resources utilization under different workloads.

Once you collect the requirements you need that could allow to meet the objective of your performance test then you continue with work load modeling and designing of the load tests.

We will be continuing with different types of tests we can conduct to measure performance of systems and the importance of work load models.

Wednesday, August 13, 2008

Why do we need to consider performance

Dear readers,

This is my first posting on "Performance", may be it is system's that we develop or may be it is our's to asses. There are lots of issue that may come with mission critical applciations where we need to assure the performance of the system even before going to live. Unless we are confident enough on the performacne of the system we should not go for deleiver the system, as it might causess production issues where we loose our business.Below are the few of the practical reasons that we can take an example:

1. When an end user tries to access a particular page and the performance is poor then he could not talarate the performance of system and could have left the site instead of looking at the products available over there. For example, if you are having an email account with XYZ and tried to open the system to log in but is taking more time and have been made you to wait for a longer duration. You could not tolerate the performance of the sytem and might change your email account to other system where XYZ will loose its business.

2. Suppose there is an application for a reputed bank which handles the retail banking accounts connected to ATM machines. While many of the users are trying to access their accounts with thier ATM cards from different ATM machines, there may data loss due to poor performance of the system. some times ATMs might get hanged and the people may not prefer such a bank to have their transactions further more. Some times, the data also could not be get updated in the centralized data base.

If we continue to discuss like this there are lot more reasons where we need to be confirmed with the performance of an application or system before sending to live.

In the next posting we will discuss on how do we get the correct performance test requirements of system.

Tuesday, August 12, 2008

What for this blog is

Dear readers,

This blog is written to share my knowledge and experiance on performance testing and analysis. There are lots of people with expertise knowledge on these areas fo work and running lot more blogs from which I leanred during my stage of learning and I feel now its my turn to share my knowledge. I appreciate all who are having blogs through which they have been sharing their knwoledge for the people. I appolozize if there will are any mistakes like typo erros or gramatical errors, I request you all to let me know so that I can correct it.


Anandha Pudota