Leveraging Cloud Infrastructure for Performance Testing
Load or performance testing is the discipline which is concerned with determining and reporting the current performance of a software application when subjected to virtual users load. Load testing helps in preventing failures by predicting application behavior and capacity prior to going live. In traditional load testing, it is required to first setup test infrastructure and test environment. Setting up an in house test environment can cause considerable challenges.
Challenges that could be faced during setting up a test environment are as under:
- Initial cost incurred on procurement of hardware and software infrastructure, and maintenance cost of these infrastructure.
- Significant time is required for procurement and provision of test infrastructure.
- Experienced people are required during entire software testing life cycle to set different testing requirements.
- Co-ordination is required among multiple teams in using the test environment and there are challenges to make sure that test environment remains stable and is not inconsistent.
- Most of the time test infrastructure remains un-utilized.
Most of the above mentioned challenges can be addressed by setting up the test environment on the cloud infrastructure. Let us see how above mentioned challenges are addressed.
- Upfront investment is not required for procurement of hardware and software infrastructure. Cloud providers allow using infrastructure at minimal costs. Also there is no maintenance cost.
- You can easily and quickly procure the required infrastructure.
- Adding and removing of the resources and other changes in the test infrastructure can be done very quickly and easily and thus managing the environment is not a big challenge.
- You can rent cloud infrastructure when required and un-rent when not required, thus your test environment doesn't remain un-utilized.
- You pay only for the time duration for which you are utilizing cloud infrastructure.
Cloud infrastructure for setting up test environment can be very useful in the scenario where there is requirement of distributed servers and distributed load generators. Setting up actual test infrastructure in different geographic locations can be very difficult, time consuming and expensive, but in case of cloud this would be very quick and less expensive. Also number of load generators required for testing can be easily increased and decreased in case of cloud, but it becomes difficult in case of in house test environment.
There are some considerations that should be taken care before choosing to set up the test environment on cloud. One of the main considerations is to understand how the test results will be applicable to the production scenario which is not based on cloud. But clearly test environment on cloud can be very beneficial because of the many advantages that could be obtained from it.