[quang nguyen] performance test in best practices
DESCRIPTION
Performance testing is an essential component of software testing to ensure quality of many software applications. Failure to test software performance may result in serious problems when the software is deployed. This presentation discusses the best practices that can be applied for performance testing. This presentation also provides a method that helps you go through all key steps to perform performance testing successfully.TRANSCRIPT
AGENDA
OBJECTIVES
IDENTIFYING PERFORMANCE REQUIREMENTS
DOING PERFORMANCE TEST TASKS
Q&A
OBJECTIVES
Sharing an approach
Doing performance testing tasks efficiently
4 4
PERFORMANCE REQUIREMENTS
Identifying the business transaction
5
• Define and document each execution step
• Identify all input data requirements and expected responses
• Determine the type of users
• What is the connectivity path
• Will this be an active or passive transaction
Providing test data
6
Input data
• User Credential
• Search Criteria
• Associated documents
Target data
• Sizing
• Data Rollback
Runtime data
• Data returned from application
Designing test environment
Numbers of servers, load
balancing strategy
Hardware inventory, software inventory
External links Numbers of
test machines
Network infrastructure(L
AN, WAN, CLOUD)
7
Designing test environment
8
This picture illustrate the typical deployment model
Setting performance targets
9
• In order to design realistic targets you need to consider: environment, business requirements, technical…
Example Target Names Target
Concurrent virtual users/concurrent application users 10000< target <100000
Response Time <1000 ms
Available time or up time available time > 24hrs
Throughput 100/sec
Network utilization
Data Error rate <2%
Server utilization
CPU utilization <80%
Memory utilization <4GB
Disk IO Wait <5%
Db processing delay < 500 ms
Choosing performance test tool
• A test tool typically have the following modules: scripting module, test management module, load injectors, analysis module
• Evaluate a performance test tool you need to consider: tool vendor support, licensing model, scripting effort, solution versus load testing tool, support/community
10
Estimating time
11
• Identify business transaction
• Prepare test environment
• Identify and create enough test data
• Prepare and execute performance test
• Analyze result and report
12 12
PERFORMANCE TEST TASKS
SETUP TEST ENVIRONMENT
• Allow enough time to configure and build the environment
• Take external links into account
• Ensure correct deployment and configuration of application, monitoring tool, performance test tool.
TRANSACTION SCRIPTING
• Identify the transaction runtime data.
• Confirm and apply transaction input data
• Determine the transaction checkpoints
• Ensure that the transaction replays correctly
• Configure the right “think-time”
14
PERFORMANCE TEST EXECUTION
• Execute baseline tests
• Execute load tests
• Execute isolation tests
• Execute soak tests (if time allows)
• Execute stress tests
15
ANALYZE RESULT REPORT,RETEST
• Capture and back up all data created
• Compare test results to performance targets
• Root cause analysis
• Document the results of the project.
• Use the final results as baseline data for End User Experience (EUE) monitoring.
16
Conclusions
• Performing performance test is not only a challenge but also an interesting task. I hope this presentation could help you apply this to your real work.
17
References
• The art of application performance testing – Ian Molyneaux
• Performance Testing Guidance for Web Applications - J.D. Meier, Carlos Farre,Prashant Bansode, Scott Barber, Dennis Rea
18
19 19
Q&A
© 2014 HCMC Software Testing Club
THANK YOU