Failover Testing: There may be a case when the server is expecting heavy traffic and having heavy use and heavy traffic at the peak time involving lots of data transfer. In such scenarios, it may happen that the available server may become unable to render service to all the requests that come to it.
|Post On:||Failover Testing|
|Post Type:||Manual Testing Tutorials|
|Applicable For:||Freshers & Experience|
|Get Updates:||Software Testingo Telegram Group|
There has to be a solution to solve this problem otherwise server may crash or may become inactive or get hanged for a long time. To prevent such scenarios to happen in real life, there is a need to do Failover testing in order to prevent disaster due to the Failover system.
It is Failover testing that verifies whether the system is able to continue daily operation with the increased load at peak times and is able to recognize that a need has arisen to allocate additional resources and allocate additional resource in the scenario when the system is not able to handle the traffic without additional resource.
Let us make it more clear from one example. Let us suppose that there are 4 web servers that are undergoing heavy load and one of them crashes due to heavy load, then there is a need to see whether Load Balancer is working as per expectation and are the three web services capable enough to handle the load or does it require manual help or whether the notification is sent to right people at the right time to recover from such situation.
In Failover testing, we need to see all things which are related to recovery and are working as per expectation to recover from such scenarios.
Importance of Failover testing
Apart from load balancing, Failover testing also helps in determining the future requirement of the resource for load balancing and set the benchmark for the future. Also by setting the load balancing, the system can afford to bring down any server for maintenance without having downtime without impacting any operation by moving operations to the backup system.
And keeping the existing system in maintenance, and allocating the extra resource to prevent failure of the system after the system reaches the threshold value of the load and after which the system is bound to crash if the required external resource is not allocated to the system. The extra resource here means an additional CPU or server is required to maintain the continuity of the operation without any downtime.
One more thing to note here is that Failover testing is done as part of performance testing and is very important when doing performance and capacity planning.
Factors considered for doing Failover testing
There are some applications which are very critical and scheduling downtime in such applications can be a great loss to the business of the client. For doing Failover testing there is a need to schedule downtime. Therefore there are many factors that are to be considered before scheduling downtime in order to do Failover testing some of which are given below:
- Loss to the company during the scheduled downtime
- Cost to prevent the system from breaking Down
- Duration of the downtime
- Probability of system failure
Let us discuss these points in brief
- Loss to the company during the scheduled downtime: it means there will be a business loss to the company during the scheduled downtime and whole operation will be interrupted due to this downtime.
- Cost to prevent the system from Breaking Down: it means when the system reaches the performance threshold where the system is bound to break, there is need to allocate extra resource to prevent the system from Breaking Down such as adding CPU or server to maintain the balance and share the load so that operation is continued. The cost will be associated with allocating extra resource which will be also considered before doing Failover testing.
- Duration of downtime: Any client will not like to get the operation interrupted for a very long time. So if the duration of downtime is more, the client is less likely to approve Failover testing.
- Probability of system failure: If the probability of system failure is very less almost zero, then in this situation also client is less likely to approve Failover testing.
How to perform Failover testing
- Failover testing plan should be done in terms of performance requirement which will be there in coming future or is already required.
- Set up suitable benchmark to meet the performance requirement
- Prepare test plan as per market requirement
- Execution of the test plan
- Preparation of report regarding issue or resource requirement
Things that require special attention while doing Failover testing
Proper backup and restore mechanisms should be in place before doing Failover testing. There should be a proper backup of data so that in case any problem occurs during the Failover testing, the same data can be restored. Also, there should be a proper mechanism to handle system failure or crashes during taking data backup.
Overall, we can say that the main purpose of Failover testing is to, first of all, identify the phase at a particular load where the system stops responding and allocate extra resources to that system so as to provide support to the system in handling the load by sharing of load or taking a whole load of extra resources, in case required. So we can say that purpose of Failover testing is to build a system that is stable and robust enough to provide continuous service without having any type of failure.