Effectively Go Live With Awesome Performance Testing!

Isn’t this is a common problem we all face? This happens when your website or app has not gone through robust Performance Testing.

Most performance problems revolve around speed, response time, load time and poor scalability. Speed is often one of the most important attributes of an application. A slow running application will lose potential users. Performance testing is done to make sure an app runs fast enough to keep a user’s attention and interest. It also uncovers what needs to be improved before the product goes to market. Without performance testing, software is likely to suffer from issues such as:

Running slow while several users use it simultaneously

Inconsistencies across different operating systems

Poor usability.

Thus a tester plays a key role while developing and releasing product into the market. The challenge of performance testing is that creating and running tests alone is not enough. You need to understand performance concepts in general – such as performance analysis, performance engineering, capacity planning, and systems architecture – as well as performance peculiarities of specific products and technologies.

Firstly, What exactly is Performance testing?

Performance testing is a non-functional testing to determine how the system performs in terms of speed, scalability, stability, reliability and confidence under the user load.

“Performance is the customer’s perception of how long they had to wait.”

A Speed verification and validation can be user interaction and quick navigation between pages, fast loading content and image loading, user experiences, psychology, hardware configurations, network, software cost etc. Metrics can be collected during the speed test, such as response time, latency etc. Measuring speed can be an expensive attribute.

A scalability tests will be design and execute to find how many users current system handles before it gets ‘slow’, validate the numbers of users which sustain with current system configurations, the size of application or database servers how much data can it hold, Database capacity, File server capacity, Backup server capacity, Data growth rates etc. Metrics can be collected during the scalability tests are: Throughput, CPU utilization, Memory usage, disk I/O data.

The stability test are used to validate what happens if suddenly lot of users visit the same page, try to take the same action, or if the user suddenly get disconnected, or the web server goes down in between transactions, and many such cases such as – unavailability of system resources, communication failures, invalid or stressful inputs, unanticipated events, corrupted internally stored data, improper uses by system operators, unavailable databases, stress overloads, equipment damage loss of power, software crashes, etc. Metrics can be collected during this test: Deadlocks, Failed connections, Failed requests, attack vectors etc.

Reliability – Is the application able to function, with given environmental conditions, for a particular amount of time. (How Often?)

Reliability tests can verify most likely scenarios under normal usage conditions and validate that the application provides the expected service. A test is considered reliable if we get the same result repeatedly. It is more about exercising an application so that failures are discovered and removed before the system is deployed. This test includes smoke testing, feature testing, load testing and regression testing. The test objectives include:

To find perceptual structure of repeating failures

To find the number of failures occurring in a specified amount of time

To find the mean life of the software

To discover the main cause of failure

Checking the performance of different units of software after taking preventive actions.

Confidence – Are you sure that users will have a positive experience on go-live day? (How Trust?)

Confidence testing is the user acceptance testing which defines formal testing with respect to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.

If we are aware of the system performance level and ready to face the risks, we can make informed decisions and plans for the future. In simple words, End-User Testing or Field Testing is the final verification of a system before it is released into the production.

“The peace of mind that it will work on go-live day alone justifies the importance of Performance Testing.”

One response to “Effectively Go Live With Awesome Performance Testing!”

Your email address will not be published. Required fields are marked *

Comment

Name *

Email *

Website

Social Networks

About Author

Suvarna Priya
Associate Test Analyst

Working as a 'Associate Test Analyst' in Tech Vedika Software Pvt. Ltd. Have experience on web and mobile application testing and software testing methodologies and techniques used and test reporting with the client perspective. Knowledge and expertise with open source tools like Selenium, MonkeyTalk, Jmeter etc… Exploring and extensive skills on new testing techniques and use of automation tools in various projects.

About Tech Vedika

We are an Agile Software Development company focused on helping mid-size businesses reach their full potential by being their scalability and technology partners. We are passionate about things we do, striving for simple, elegant technology solutions in response to complex tasks.