Problem Statement: Java application XYZ failed UAT because of slow performance.
Many times team neglects application performance until test team / client reports back.
Performance is one of the most important quality attributes.
Requirements Phase: Get the client expectations on application performance.
Design Phase: Design the application architecture for better performance.
Coding Phase: Use java profiling tools to measure and tune the code.
I used JAMON API and it helped me a lot. http://jamonapi.sourceforge.net/
At run time we can enable / disable the logging with the help of configuration.
Testing Phase: Success assured.
It is difficult to do the reverse steps. Just see the wrong path…
Testing Phase: Application failed load/performance test
Code: Go back and enable logs and start understanding who is taking more time
Design: Some thing wrong in design and need to be modified and code need to be realigned according to it.
Requirements: Some times users won’t understand the complexity of screens.
Example: One screen needs more than 5000 calls to external systems, databases, …etc. We need to educate the user to understand the complexity behind it. Also we need to move this type of work / reports to batch process. Or do the calculations before hand and serve the user when required.
It is lengthy subject and lots of books are available for further study.
Java Performance Tuning (2nd Edition) [Paperback]
Jack Shirazi (Author)
I purchased this book in year 2003 and still referring.
UAT: User Acceptance Test