The document discusses performance testing and provides guidance on when and how to conduct it. Performance testing is an essential part of the software development lifecycle used to ensure an application performs well under different loads. It should be done when an application has concurrent users, long response times are unacceptable, or before major releases. Performance testing involves designing a test environment, creating scripts to emulate user transactions, monitoring performance as tests are run, and analyzing the results.
2. Walkthrough
1. What is
2. Why is
3. When is recommended
4. What can I do
5. Inside the project
6. What do I need
2miguellopez@java.com.pe
3. What is Performance Testing
- Non Functional test.
- Application + Environment.
- Different kind of tests.
- Essential part of software development life cycle.
- Performing well? => Perception.
- System perf. = Σ Modules perf.
3miguellopez@java.com.pe
4. Why to do Performance Testing
4miguellopez@java.com.pe
9. Performance Testing Standards
- What I want && What I need.
- But…
Application Performance
Management
- There ARE NOT standards.
9miguellopez@java.com.pe
11. When is recommended
1. Application with concurrent users. (dah!)
2. Response Time > Critical.
3. Distributed architecture.
4. Shared infrastructure or components.
5. New version or releases.
6. Before sale campaigns. (e-commerces)
11miguellopez@java.com.pe
12. What can I do?
Replicate: HTTP, FTP, TCP, JDBC,
MongoDB, JMS, WS, LDAP, OS,
SSH, … … … ISO 8583
Monitoring environment.
Export and correlate results.
Analysis and diagnosis.
“Tell me which protocol are you
made of. And I will test you” 12miguellopez@java.com.pe
18. What do I need?
1. Make sure your code is ready and code freeze.
2. Design Performance Test Environment.
3. Setting “Realistic” performance targets.
4. Define and create scripts to emulate transactions.
18miguellopez@java.com.pe
21. What do I need?
1. Make sure your code is ready and code freeze.
2. Design Performance Test Environment.
3. Setting “Realistic” performance targets.
4. Define and create scripts to emulate transactions.
5. Test Data (RIP Performance Testing)
6. Running test.
21miguellopez@java.com.pe
24. Load Test
- Am I ok or not?
- Simulate expected
conditions.
- Important/Critical
transactions.
- Overall performance.
- SLA defined by owner.
24miguellopez@java.com.pe
25. Scalability Test
- How much can I grow?
- Same app, same env.
- Future expectations.
- Max acceptable level.
- SLA could be changed.
25miguellopez@java.com.pe
26. Soak Test
- Is memory fine?
- Load test during long time.
- Memory starvation.
- Garbage collector.
- Could take hours, days or
even weeks.
26miguellopez@java.com.pe
27. Stress Test
- Where am I weak?
- Unexpected conditions.
- Extreme load.
- Modified scripts.
- Find break points.
- Vital for some scenarios.
27miguellopez@java.com.pe
29. What do I need?
1. Make sure your code is ready and freezed.
2. Design Performance Test Environment.
3. Setting “Realistic” performance targets.
4. Define and create scripts to emulate transactions.
5. Test Data (RIP Performance Testing)
6. Run Test and Monitoring.
7. Interpreting results.
29miguellopez@java.com.pe
31. What do I need?
1. Make sure your code is ready and code freeze.
2. Design Performance Test Environment.
3. Setting “Realistic” performance targets.
4. Define and create scripts to emulate transactions.
5. Test Data (RIP Performance Testing)
6. Run Test and Monitoring.
7. Interpreting results.
8. Summary (executive, technical)
31miguellopez@java.com.pe