incorporating performance testing in agile development process
DESCRIPTION
This presentations explains different aspects of software performance testing and give actionable recommendations on how to integrate it into the Agile Software development processTRANSCRIPT
![Page 1: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/1.jpg)
Incorporating Performance Testing in Agile Process
Michael VaxPresident, onmaas Software
www.onmaas.com
![Page 2: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/2.jpg)
Need Performance Numbers for the Web Site
![Page 3: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/3.jpg)
Types of Performance Testing
Performance Testing
Load Testing Stress Testing
Capacity Testing Focused Testing
![Page 4: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/4.jpg)
Performance Project Phases
Proactive Reactive
Sizing and Capacity Planning
Performance Engineering
Performance Testing
Monitoring & Troubleshooting
![Page 5: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/5.jpg)
What do we need to test performance?
Performance testing
Test Environment
Skills
Working System
Tools
![Page 6: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/6.jpg)
Problems- No functional system until the very end- Bugs prevent test execution- Last minute changes across the board- Test script development is delayed - Testing is delayed to the end of the project- Too late to fix performance unfriendly design decisions- Developers may not be available by the time the performance
testing starts
Performance Testing & WaterfallSizing and Capacity Planning
Performance Engineering
Performance Testing
Monitoring & Troubleshooting
![Page 7: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/7.jpg)
Performance Testing in Agile Project
Iter.0 Iter.1 Iter.2 Iter.3 .... Iter.x-1 Iter.x
Benchmark Test Benchmark Test Benchmark Test
• Test environment setup• Tools selection• Performance
requirements• Test data preparation Focus Test Focus Test Focus TestFocus Test
• Load tests• Stress tests• Capacity
testing• Resilience
testing
![Page 8: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/8.jpg)
Performance Testing is Iterative Process
Analyze
Fix
Test
Doing performance test right before the launch day is not helpful.You need Calendar time!
Multiple Test
Cycles are Needed
Done in collaboration with Senior Developers
![Page 9: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/9.jpg)
Performance Testing is Team Activity
• Performance analyst• Performance tester • Senior developer / architect• DBA• Network engineer
![Page 10: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/10.jpg)
Performance Testing and Iterations
Iter. n-1Feature A
Iter. nFeature B
Iter n+1
Feature C
Feature A• Test requirements• Test development
PerformanceSpike
Feature A - Focus test
Feature B• Test requirements• Test development
Feature B - Focus test
Feature C• Test requirements• Test development
![Page 11: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/11.jpg)
Performance Testing - Agile Best Practices
• Put performance tasks on a SCRUM board• Make fixing functional bugs that block
performance tests a high priority• Do not delay fixing performance issues identified
by tests• Retest after fixes are applied to know if they
worked• You cannot guess where the next bottleneck is• Don’t pre-optimize before testing
![Page 12: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/12.jpg)
Performance Testing-Agile Best Practices (2)
• Understand the production environment• Analyze logs• Know when performance is good enough• You can always add more h/w • Apply low level load to the system under test
during manual testing• Use load test scripts:
• to find functional and stability bugs• to look for memory leaks• to reproduce intermittent problems• as part of smoke test
![Page 13: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/13.jpg)
Skills
• Networking
• Databases
• Application servers
• Development environments
• Application domain
![Page 14: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/14.jpg)
Performance Scripting is software development
– It should follow the same rules and be treated the same
way
– Design, modularization, documentation, guidelines, source
versioning, code reviews should all be carried out
– Allows for long term use and quick adaptability to changes
in the system under test
– Allows for easy creation of new tests
– Invest in automation of test setup, data population,
monitoring, and analysis of results
![Page 15: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/15.jpg)
• Break down your system-interaction model
into a modular framework that can be re-used
Design Smart
Session X
Use Case A
Use Case B
User Transaction AUser Transaction BUser Transaction C
User Transaction C
This modularization allows quick test changes and creation
![Page 16: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/16.jpg)
• This model allows Focused Tests or any sort of testing to be
created quickly
Design Smart
“Long Running” Stress Test
“Check-out” Focused Test
Session Type Y Session Type Z Session Type ASession Type X
![Page 17: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/17.jpg)
Types of Performance Testing
Performance Testing
Load Testing Stress Testing
Capacity Testing Focused Testing
![Page 18: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/18.jpg)
Load Testing
• Load Testing can encompass a large number of tests specific
to some area of performance, such as:
• Throughput testing
• Saturation testing
• End-user response
• Server response
![Page 19: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/19.jpg)
Capacity Testing
• Capacity Testing is typically more specific than general load
testing
• Involves measuring “sizing” statistics, such as:
• Peak Active Sessions
• Sessions / Hour
• Transaction / Hour
![Page 20: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/20.jpg)
Stress Testing
• Stress Testing is typically based off load testing but pushes
things even further until the break point
• Resilience and Availability Testing
• Disaster recovery
![Page 21: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/21.jpg)
Focused Testing
• Not a ‘typical’ performance category
• Allows us to put strain on a specific aspect or functionality of
the system such as product views, check-out, or user
registration.
• Short duration
• Heavy load
• Usually run repeatedly with small tweaks
![Page 22: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/22.jpg)
In Conclusion
Agile Development Process enables performance testing throughout the
entire development cycle and ensures the adequate performance
by the end of the project
![Page 23: Incorporating Performance Testing in Agile Development Process](https://reader033.vdocuments.us/reader033/viewer/2022051513/5465cf9ab4af9f5d3f8b51e2/html5/thumbnails/23.jpg)
Q & A
?