0% found this document useful (0 votes)
28 views6 pages

Performance Testing For Best Case: International Journal of Pavement Engineering July 2021

The document discusses performance testing which evaluates how a system performs under workload. It defines performance testing and describes the types including load, stress, endurance and spike testing. It also covers common performance problems, the performance testing process, and metrics monitored like processor usage, memory use and bandwidth.

Uploaded by

maiziada.alqemam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views6 pages

Performance Testing For Best Case: International Journal of Pavement Engineering July 2021

The document discusses performance testing which evaluates how a system performs under workload. It defines performance testing and describes the types including load, stress, endurance and spike testing. It also covers common performance problems, the performance testing process, and metrics monitored like processor usage, memory use and bandwidth.

Uploaded by

maiziada.alqemam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/353482454

Performance testing for best case

Article in International Journal of Pavement Engineering · July 2021

CITATIONS READS

0 816

1 author:

Jun Luke Cui


Woosong University
106 PUBLICATIONS 2,085 CITATIONS

SEE PROFILE

All content following this page was uploaded by Jun Luke Cui on 27 July 2021.

The user has requested enhancement of the downloaded file.


Performance testing is the practice of evaluating how a system performs in terms of responsiveness and
stability under a particular workload. Performance tests are typically executed to examine
speed, robustness, reliability, and application size.

Performance Testing is a software testing process used for testing the speed, response time, stability,
reliability, scalability, and resource usage of a software application under a particular workload. The main
purpose of performance testing is to identify and eliminate the performance bottlenecks in the software
application. It is a subset of performance engineering and is also known as “Perf Testing”.

The focus of Performance Testing is checking a software program's

• Speed - Determines whether the application responds quickly


• Scalability - Determines the maximum user load the software application can handle.
• Stability - Determines if the application is stable under varying loads

In this tutorial, you will learn-

• What is Performance Testing?


• Why do Performance Testing?
• Types of Performance Testing
• Performance Testing Process
• Example Performance Test Cases
• Performance Test Tools

what a Performance Testing

Features and Functionality supported by a software system is not the only concern. A software
application's performance like its response time, reliability, resource usage and scalability do matter. The
goal of Performance Testing is not to find bugs but to eliminate performance bottlenecks.

Performance Testing is done to provide stakeholders with information about their application regarding
speed, stability, and scalability. More importantly, Performance Testing uncovers what needs to be
improved before the product goes to market. Without Performance Testing, the software is likely to suffer
from issues such as: running slow while several users use it simultaneously, inconsistencies across
different operating systems, and poor usability.

Performance testing will determine whether their software meets speed, scalability, and stability
requirements under expected workloads. Applications sent to the market with poor performance metrics
due to nonexistent or poor performance testing are likely to gain a bad reputation and fail to meet
expected sales goals.

华威大学 WMG 上海教学中心


地址:国权路 525 号复旦大学复华科技大楼 7 层
Types of Performance Testing

• Load testing - checks the application's ability to perform under anticipated user loads. The
objective is to identify performance bottlenecks before the software application goes live.
• Stress testing - involves testing an application under extreme workloads to see how it handles
high traffic or data processing. The objective is to identify the breaking point of an application.
• Endurance testing - is done to make sure the software can handle the expected load over a long
period of time.
• Spike testing - tests the software's reaction to sudden large spikes in the load generated by users.
• Volume testing - Under Volume Testing large no. of. Data is populated in a database and the
overall software system's behavior is monitored. The objective is to check software application's
performance under varying database volumes.
• Scalability testing - The objective of scalability testing is to determine the software application's
effectiveness in "scaling up" to support an increase in user load. It helps plan capacity addition to
your software system.

Common Performance Problems

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. Take a look at the following list of common performance problems and notice how speed is a
common factor in many of them:

• Long Load time - Load time is normally the initial time it takes an application to start. This should
generally be kept to a minimum. While some applications are impossible to make load in under a
minute, Load time should be kept under a few seconds if possible.
• Poor response time - Response time is the time it takes from when a user inputs data into the
application until the application outputs a response to that input. Generally, this should be very
quick. Again if a user has to wait too long, they lose interest.
• Poor scalability - A software product suffers from poor scalability when it cannot handle the
expected number of users or when it does not accommodate a wide enough range of users. Load
Testing should be done to be certain the application can handle the anticipated number of users.
• Bottlenecking - Bottlenecks are obstructions in a system that degrade overall system
performance. Bottlenecking is when either coding errors or hardware issues cause a decrease of
throughput under certain loads. Bottlenecking is often caused by one faulty section of code. The
key to fixing a bottlenecking issue is to find the section of code that is causing the slow down and
try to fix it there. Bottlenecking is generally fixed by either fixing poor running processes or adding
additional Hardware. Some common performance bottlenecks are

华威大学 WMG 上海教学中心


地址:国权路 525 号复旦大学复华科技大楼 7 层
• CPU utilization
• Memory utilization
• Network utilization
• Operating System limitations
• Disk usage

Performance Testing Process

The methodology adopted for performance testing can vary widely but the objective for performance tests
remain the same. It can help demonstrate that your software system meets certain pre-defined
performance criteria. Or it can help compare the performance of two software systems. It can also help
identify parts of your software system which degrade its performance.

Below is a generic process on how to perform performance testing

1. Identify your testing environment - Know your physical test environment, production environment
and what testing tools are available. Understand details of the hardware, software and network
configurations used during testing before you begin the testing process. It will help testers create
more efficient tests. It will also help identify possible challenges that testers may encounter during
the performance testing procedures.
2. Identify the performance acceptance criteria - This includes goals and constraints for throughput,
response times and resource allocation. It is also necessary to identify project success criteria
outside of these goals and constraints. Testers should be empowered to set performance criteria
and goals because often the project specifications will not include a wide enough variety of
performance benchmarks. Sometimes there may be none at all. When possible finding a similar
application to compare to is a good way to set performance goals.
3. Plan & design performance tests - Determine how usage is likely to vary amongst end users and
identify key scenarios to test for all possible use cases. It is necessary to simulate a variety of end
users, plan performance test data and outline what metrics will be gathered.
4. Configuring the test environment - Prepare the testing environment before execution. Also,
arrange tools and other resources.
5. Implement test design - Create the performance tests according to your test design.
6. Run the tests - Execute and monitor the tests.
7. Analyze, tune and retest - Consolidate, analyze and share test results. Then fine tune and test
again to see if there is an improvement or decrease in performance. Since improvements generally

华威大学 WMG 上海教学中心


地址:国权路 525 号复旦大学复华科技大楼 7 层
grow smaller with each retest, stop when bottlenecking is caused by the CPU. Then you may have
the consider option of increasing CPU power.

Performance Testing Metrics: Parameters Monitored

The basic parameters monitored during performance testing include:

• Processor Usage - an amount of time processor spends executing non-idle threads.


• Memory use - amount of physical memory available to processes on a computer.
• Disk time - amount of time disk is busy executing a read or write request.
• Bandwidth - shows the bits per second used by a network interface.
• Private bytes - number of bytes a process has allocated that can't be shared amongst other
processes. These are used to measure memory leaks and usage.
• Committed memory - amount of virtual memory used.
• Memory pages/second - number of pages written to or read from the disk in order to resolve
hard page faults. Hard page faults are when code not from the current working set is called up
from elsewhere and retrieved from a disk.
• Page faults/second - the overall rate in which fault pages are processed by the processor. This
again occurs when a process requires code from outside its working set.
• CPU interrupts per second - is the avg. number of hardware interrupts a processor is receiving
and processing each second.
• Disk queue length - is the avg. no. of read and write requests queued for the selected disk during
a sample interval.
• Network output queue length - length of the output packet queue in packets. Anything more than
two means a delay and bottlenecking needs to be stopped.

华威大学 WMG 上海教学中心


地址:国权路 525 号复旦大学复华科技大楼 7 层
• Network bytes total per second - rate which bytes are sent and received on the interface
including framing characters.
• Response time - time from when a user enters a request until the first character of the response
is received.
• Throughput - rate a computer or network receives requests per second.
• Amount of connection pooling - the number of user requests that are met by pooled connections.
The more requests met by connections in the pool, the better the performance will be.
• Maximum active sessions - the maximum number of sessions that can be active at once.
• Hit ratios - This has to do with the number of SQL statements that are handled by cached data
instead of expensive I/O operations. This is a good place to start for solving bottlenecking issues.
• Hits per second - the no. of hits on a web server during each second of a load test.
• Rollback segment - the amount of data that can rollback at any point in time.
• Database locks - locking of tables and databases needs to be monitored and carefully tuned.
• Top waits - are monitored to determine what wait times can be cut down when dealing with the
how fast data is retrieved from memory
• Thread counts - An applications health can be measured by the no. of threads that are running
and currently active.
• Garbage collection - It has to do with returning unused memory back to the system. Garbage
collection needs to be monitored for efficiency.

Example Performance Test Cases

• Verify response time is not more than 4 secs when 1000 users access the website simultaneously.
• Verify response time of the Application Under Load is within an acceptable range when the
network connectivity is slow
• Check the maximum number of users that the application can handle before it crashes.
• Check database execution time when 500 records are read/written simultaneously.
• Check CPU and memory usage of the application and the database server under peak load
conditions
• Verify response time of the application under low, normal, moderate and heavy load conditions.

During the actual performance test execution, vague terms like acceptable range, heavy load, etc. are
replaced by concrete numbers. Performance engineers set these numbers as per business requirements,
and the technical landscape of the application.

华威大学 WMG 上海教学中心


地址:国权路 525 号复旦大学复华科技大楼 7 层
View publication stats

You might also like