- Need for Performance Testing
Too often, the software applications performance and stability is either an afterthought or not even a thought at all, and yet the consequences are often severe, if not catastrophic.The numbers of websites and software applications today are more than likely in the millions and they are rapidly increasing on a daily basis. It is very easy way to be an entrepreneur and start sites and develop applications for usage.
Traffic is the most important aspect regarding websites. An average site has several thousand visitors per day and usage of the applications depends on the usage of the application and size of the organization. With the passage of time and massive increase of traffic, data also grows and can go out of its limit. This data is very beneficial but can bring the site down if not handled properly. All of this data including traffic can make the websites and applications sluggish and slow to load. This is also true with respect to the inhouse built application software which is bulit by IT departments of the companies. Although, getting traffic to your website is difficult, getting returning users is more difficult. If someone becomes annoyed while visiting the company’s website, they are not likely to return.
Also issues with the performance of business-critical applications can cause deterioration of an organization’s business performance. Slow or not readily available applications that support key business processes can cause revenue loss, and decline in customer satisfaction, employee productivity or brand reputation
This can be very hard for the business stakeholders to realize on their own since no one is going to email them or inform them to let them that their application or website is slow or not responding. For such purposes, there is a test or technique, which is called performance testing.
Performance testing is testing that is performed to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability and reliability. An application’s performance, in turn, can only be as good as in comparison to its performance objectives. Performance problems affect all types of systems, regardless of whether they are client/server or Web application systems.
Some of the classic examples which occurred as performance testing were not considered before going live
1. CNN reported a fivefold rise in traffic and visitors in just over an hour after Michael Jackson’s death,The site received 20 million page views in the hour the news broke and the site had crashed
2. For 35 minutes some Google News users experienced difficulty accessing search results for queries related to Michael Jackson after news about his death
3. The Wal-Mart website had crashed on when it was swamped with users for online purchases on Black Friday
4. The official Scotland Supporters Club site crashed as the fans went into a ticket frenzy for the crunch Euro 2008 qualifier against Italy.
5. The Tata Motors website crashed on Day 1 as it opened bookings for its ‘Rs 1 lakh car,’ the Nano. The site registered 40 million hits on the first day itself and crashed.
The following are some of the common performance issues noticed with respect to performance of websites of applications
• Actions take longer than expected to run – for example, a Web page takes a long time to load after the user has clicked a button
• The application fails – either by suddenly ending with or without warning or by entering an non responsive state
So to take corrective actions and to conduct performance testing an approach needs to be adopted and there is a need to adhere to processes to achieve the objective.
So what is a Process? The web definition of a process is procedure: a particular course of action intended to achieve a result
Process is a set of steps that define how an activity can be done. An activity should be – Definable, Repeatable and Measurable A process helps us to do an activity in a better way and is needed when the activities are complex. The right processes allow the organizing and streamlining the work flow and these results in maximizing the outputs and resource utilization.
“People are more important than any process.Good people with a good process will outperform good people with no process every time.”
—Grady Booch
Whatever the stage is the software in its development process, be this early planning and design of a new development project or two years of live operations, it is never too late to make performance testing a top priority. Adopting a Performance testing approach across all areas, be it application or infrastructure, ensures high performance and stability of the software applications and the businesses.
Performance Testing should aim to simulate a realistic blend of user journeys through the application, against live sized infrastructure using live like test data and volumes.The Performance test approach focuses on test planning, scripting, and monitoring of the test execution, repeatability of the tests, and validity of the test results. The following are the phases of Performance Testing:
- • Planning
• Design
• Development
• Execution & Analysis
• Reporting - The overall performance testing effort should be well planned and should focus on following 4 Phases:
Phase 1: Planning
The main activities that will involve in this phase:
• Understanding performance objectives and timelines
• Identifying business critical processes/transactions
• Verifying the expectations and determining acceptable test conditions - Phase 2: Design
During this Phase the Performance test team will perform the following activities:
• Operational Scenario Design
• Business Scenarios Design
• Create Performance Test Strategy and Plan - Phase 3: Development
During this Phase the Performance test team will perform the following activities:
• Environment setup
• Script development and validation
• Test Data Generation - Phase 4: Execution and Analysis
During this phase, the Performance test team will perform the following activities:
• Performance Test Execution
• Performance Test Monitoring
• Results Analysis
• Performance Tuning & Re-execution - Phase 5: Reporting
During this phase, the Performance test team will perform the following activities:
• Create a Scorecard
• Develop Reports and Recommendations