October is here, and most eCommerce sites have completed the code changes in preparation for the holiday shopping season, so now is the time to test their websites. Here is what some great companies are doing to ensure that their apps and sites are ready to handle the increased traffic of the upcoming eCommerce season.
One of the most important aspects of testing is planning to ensure that all bases are covered and ample time is allotted for the most critical components.
Knowing what to test is the key here, and that can be determined by identifying what has changed, where, and how. RUM data or web analytics are helpful in figuring out what pages users frequent most, which path they generally follow, and what devices and networks they typically use. It is important to make sure that the infrastructure and code that handle these processes that drive revenue are both reliable and fast. Also remember to check with the Marketing team to see what other pages may see increased traffic (such as promotional and landing pages) since these are often the first impression for the customer.
Once you’ve determined what to test it is important to follow a strict methodology. This is where you put the RUM data and planning into work.
We won’t go too in depth here, but new pages/features require the following:
- Unit Testing: The developer tests the individual unit of code.
- Integration Testing: The code is tested with the components it is integrated with.
- System Testing: The entire application is tested.
- Regression Testing: This ensures that the changes have not introduced any new bugs.
- Acceptance Testing: This validates that the requested or required changes have actually been implemented, and is done by the requesting product team as well as QA.
A similar process can be followed for infrastructure changes. Depending on the nature of the change it is worthwhile to measure performance from within your infrastructure using APM and externally with Synthetic Monitoring both before and after. This will help ensure that any degradation can be identified and fixed before it becomes amplified at scale.
Congrats, you’ve made it past functional testing without anything exploding! Now you can move on to non-functional testing, which includes analyzing performance (note the optimizations mentioned in our recent blog post) and security. Synthetic monitors can help in this process to detect any issues, and will also be useful for performance comparisons before and after.
Review recent RUM data, log files in systems like Splunk, and last year’s traffic numbers to see where and when you experienced peak activity; look at critical aspects of site experience, such as login and checkout flows. This will pinpoint which areas should be focused on during load testing.
Assuming your servers can handle that level of traffic, you can then move on to stress testing. Touching the upper limit of the system by exceeding the expected load, stress testing can help identify links in the chain that didn’t seem as important, but can still take down the whole system when they fail. Examples of this might include a database going offline or a load balancer failing. Stress testing will also reveal how well the system recovers after failure.
Then we come to security testing. It would be terribly sad to thoroughly go through this whole process of testing and ensuring that you are ready for an increase in traffic to have it all be thwarted by a security flaw. This is one of the most important pieces of the puzzle; your infrastructure performance could be severely affected, and most importantly, your customers’ information could be at risk.
Finally, you have to prepare for disaster. No matter how ready you think your systems are, failure can come from unexpected places. When that happens, you need to know that your failover or backup systems will work as expected.For example, you can test your failover by taking nodes or services offline simulating power or connectivity issues.
Preparing for disaster also includes checking on your support channels and customer service personnel to make sure they’re ready, as well as any relevant vendors to make sure that they’re readily available throughout the holiday season and aren’t planning any major changes.