Just like functional tests, performance tests need to be pipelined to the CI in order to fail fast and early in the process of software development. Doing so will not only make defect fixing inexpensive and less painful, but will also save us from the ugly surprises, thus leading to a smoother release to production. This talk explores the methods of incorporating performance testing in CI and the benefits of this practice.
2. Major Performance
issues raised
Tuning an entire
month's worth of code..
It can be a tedious task..
Performance??
No mention in initial plans!!
Project Manager
Short Delivery Deadlines,
Cost is a big issue
“ Lets fit it later ”
QA
Short Delivery Deadlines,
Cost is a big issue
“ Lets fit it later ”
Dev
Story #1:Fit it later
QA
PhotoCredits:Continuous Performance Testing by Mairbek Khadikov
3. New Version goes live soon
Lets check performance
Performance degraded
QA
Lets profile
our application
QA
Performance increase by 10%
But its still poor
CPU utilization is 50%
Application needs to go
Live !!!!
Alert Raised too late
Delivery Manager
Delivery Manager
Story #2:Alert is raised too late ...
PhotoCredits:Continuous Performance Testing by Mairbek Khadikov
4. Performance degraded in
last release candidate
Which branch exactly
Impacted performance
Lets profile
our application
QA Dev
Dev
Story #3:Which branch is culprit?
PhotoCredits:Continuous Performance Testing by Mairbek Khadikov
5.
Leaving load testing until late in the development lifecycle
Inconvenience to developers in fixing performance issues
Decreased productivity
Destroyed Customer relations
Lessons Learnt
Increased development and hardware costs
7. Step One: Include performance in the requirements definition.
Step Two: Work performance testing into the development timeline.
Step Three:Conduct performance tests on a regular basis.
Step Four:Constantly monitor performance activity.
Establishing a process
ProcessCredits:http://www.devx.com/Java/Article/16755/0/page/3 by Cliff Sharples
8. Step Five:Track the performance history as the application grows.
Step Six:Use that data to get a fix on the code responsible for bottlenecks.
Step Seven:Use your knowledge to efficiently tune only the code that caused
the performance problem.
Establishing a process
ProcessCredits:http://www.devx.com/Java/Article/16755/0/page/3 by Cliff Sharples
9.
10. THANKS
For questions or suggestions:
Kriti Mehta
@kriti_mehta
Vishnu Priya Krishnamurthy
@Priyakrish6