Performance Testing Note

Performance Testing

 

Software performance testing is a means of quality assurance. It involves testing software applications to ensure they will perform well under their expected workload. 

 

The goal of performance testing is not to find bugs but to eliminate performance bottlenecks

 

The focus of Performance testing is checking a software program’s

     √ Speed - Determine whether the application responds quickly

     √ Scalability - Determine maximum user load the software application can handle

     √ Stability - Determine if the application is stable under varying loads.

 

Performance testing uncovers what needs to be improved before the product goes to market

 

Performance testing will determine whether or not their software meets speed, scalability and stability requirements under expected workloads.

 

Also, mission critical applications like space launch programs or life saving medical equipments should be performance tested to ensure that they run for a long period of time without deviations.

 

Types of performance testing:

     - Load testing

     - Stress testing

     - Endurance testing

     - Spike testing

     - Volume testing

     - Scalability testing

 

Common Performance Problems

Performance testing is done to make sure an app runs fast enough to keep a user’s attention and interest.

     - Long Load time — Load time is normally the initial time it takes an application to start. This should generally be kept to a minimum. 

     - 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. 

     - 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 system which degrade over 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.  Bottle necking is generally fixed by either poor running processes or adding additional hardware. Some common performance bottlenecks are:

          — CPU utilization

          — Memory utilization

          — Network utilization

          — Operating System limitations

          — Disk usage

 

Performance Testing Process

1, Identify your testing environment — Know your physical test environment, production environment and what testing tools are available. Under details of the hardware, software and network configurations used during testing before you begin the testing process. 

2, Identify the performance acceptance criteria — This include 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 benchmark. 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, Configure the test environment

5, Implement test design

6, Run the test

7, Analyze, tune and retest — Consolidate(加固), analyze and share test results. 

 

Performance Parameters Monitored

√ Processor Usage — 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/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 calling 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. number 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 that two means a delay and bottlenecking needs to be stopped.

√ Network bytes total per second — rate which bytes are sent and received on the interface including framing characters.

√ Response time

√ 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 — 

√ Hit ratios — This has to do with the number of SQL statements that are handled by cached data instead of expensive I/O operations.

√ Hits per second

√ 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 number of threads that are running and currently active. 

√ Garbage collection — has to do with returning unused memory back to the system. GC needs to be monitored for efficiency. 

 

 

Performance Test Tools

√ HP Loadrunner

√ HTTP Load

√ Proxy Sniffer


转载于:https://my.oschina.net/shuay/blog/338221

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值