18 October 2009

Continuous Performance Testing

Continuous Performance Testing - referenced from http://www.javaperformancetuning.com/news/newtips104.shtml
* Industry has learned the hard way that holding a big testfest at the end of the development phase of a project is a great way to ensure failure - this applies equally to performance testing.
* Avoiding premature optimizations has been confused by some as avoiding performance aspects of a project altogether, only focusing on it when it becomes necessary - this is wrong. You need to consider performance at all stages, or you are setting yourself up for failure or much more work later on.
* During requirements gathering phase you need to collect users expectations for performance.
* During architecture defining, you should use benchmarking to determine that your decisions will not prevent your architecture from meeting your performance goals.
* During development you should integrate Continuous Performance Testing to your system so that you can gain an understanding of how your system is progressing.
* Performance testing at unit test level (i.e. method level) isn't completely wrong, but is a level of granularity that isn't advisable.
* Performance testing during development should be done at an appropriate level of granularity: at the component level, or possibly at the class level for some types of classes.