When to start Performance Testing?

While, it is ideal to start performance testing as soon as there is a confidence in stability of the system under test; that shouldn't be an entry criteria always. With that being said, doing performance testing after achieving the desired stability will keep the testing outcome clear and precise.


In case of modern, distributed systems; doing performance testing at independent component level shall be right thing to do. For example: Backend can be tested for its overall response/latency measurement and GUI can be test doubled and verified for its overall responsiveness under various conditions, which you can create in your test environment (Ex. high latency network links, slow responding backend under certain load conditions etc.). This strategy shall give you the performance assessment at individual unit level and its good to know baseline & benchmark of each of the component. So when you run end-2-end performance tests after integration, identifying bottlenecks could be relatively easy.

Now about performance goals; there could be different goals to measure for your application depending on what usecase it caters to. Here are few diverse examples:

  • WebApp, Mobile App: Responsiveness, loading of application, across support/interoperability matrix.
  • Cloud storage: Latency, IOPs, Throughput of file/object transfer upstream and downstream.
  • Virtual machines, VDI: Latency, Responsiveness of the VDI/VM, Individual application loading time on each of the instances etc.
  • Databases: Transactions per second

In summary, having goals pertaining to application's performance SLAs would be an ideal thing.

In my atomic talk  - "Outperforming in the Chaotic world!" in last year' TestFlix, I presented a strategy to combine performance with Chaos engineering to test application's performance in all possible, real-world conditions. Since conditions will not be the same always; it becomes important to benchmark performance of your applications during steady state as well as turbulent situations.

Happy Testing!

Comments

Popular posts from this blog

Docker: What is it? How can it be used in Testing?

What DevOps mean to QA/Test?

Smart Testing – In the age of Machine Learning!