While deploying a large scale ERP or SCM or Datawarehousing application, an important aspect that the implementing project team has to address is to plan for adequate load testing. Before the go-live of any large scale implementation, the project manager typically plans for various tests on the developed/configured software system to assess the use-worthiness of the system. These tests are called as load tests or stress tests or performance tests depending on their purpose. Generally the terms stress testing, load testing and volume testing are used interchangeably and sometimes confused with each other. However each of the tests has a specific objective and a specific role to play in assessing the use-worthiness of the system.
The table below summarizes the differences between stress testing, load testing and performance testing so that a common understanding of the nomenclature is attained before discussing load testing in greater detail.
Load testing refers to testing the system using the highest possible load without breaking the system. Typically when applications are developed or configured, the load on the system that was used to develop may not adequately represent the real-life load that the system might be subjected to in its normal functioning. Load Testing attempts to simulate a real-life situation and evaluate the system behavior for that load level. The goals of load testing are thus:
- Identify weak-points in the system that are likely to cause issues when the system goes live
- Ensure that the performance of the system matches the baseline performance when the system is run in its normal peak load
Load Testing is sometimes called volume testing because of its difference with regular performance testing of components. The volume of data that is used for load testing will equal the production size data size whereas in performance testing the volume of data might not equal production size dataset.
Decision points in Load Testing:
While the importance of load testing of applications cannot be overstated, the project team will invariably come to a decision point on the approach for load testing during any large scale ERP, SCM or DATAWAREHOUSING implementations. Some of the questions the project will have to address before embarking on load testing can be summarized as shown below:
- Is Load Testing necessary?
- If so, should we go for a manual testing or an automated testing? What are the costs and benefits of an automated testing vis-à-vis manual testing?
- If we have to use automated testing, which tool should be used? What version of the tool?
- What should be the load to be used for testing the system so as to simulate real-life scenario in global deployments? How many concurrent users should the system be tested for?
- If the users are spread across different geographies, should the testers/test agents be based out of one location or should they be across different locations?
Necessity of Load Testing:
The importance of load testing can be understood by analyzing the impact on the business if the implemented software/development does not perform as expected after it has been deployed. If the implemented software/development does not perform as per expectation. It will be very difficult for the project team to resolve issues when the business is already using the software. The project team will be held responsible for having developed software that does not live up to the ‘real-life’ challenges.
Hence, Load Testing is an absolute necessity for any new product development or new software implementation in an ERP/SCM/Data warehousing type of implementation.