The Ultimate Guide to Test Methodologies

by | June 28, 2016

You need to test and monitor your website. Not doing so puts your online presence at risk during business critical events such as Black Friday or Cyber Monday and will leave you in the dark on how it performs. Testing your site for its survivability gives you an opportunity to shore up weak or unprotected areas. Using synthetic monitoring allows you to not only monitor up and down time but also user experience on your website during your peak periods.

One of the first tests a website should be hit with is a solid stress test. Its purpose is to locate bottlenecks in the environment and to determine the maximum throughput of the system. By starting with a low number of users and gradually ramping up you can find out where throughput levels out and response times start to increase. Discover if there are inefficiencies in how your web page is delivered and whether your storage is responsive enough to get your content in flight quickly or how big of an impact SSL has on your website in your efforts to secure it.

Your next series of tests should address concurrency testing, determining the high-water mark for the number of simultaneous users and connections your website can handle. Since this type of test is about concurrency, there is less need for high traffic loads than the stress tests use. As a result, this test type can be set up to more realistically emulate normal user activity on the website.  You can load test against a single type of transaction or can run a mixed load test that run multiple types of transactions simultaneously, which will more closely match a real-world scenario.

You will then want to see how your website works during times when its underlying systems may be going through failure scenarios. Run in the same manner as a concurrency test, disaster recovery tests should be run while simulating outages in your systems, such as restarting servers or performing a failover test for your load balancers to verify that settings, failovers or procedures to get the environment up again works.

In order to ‘future-proof’ your website, you will want to run some scalability tests to see how your website scales based on the number of web servers, app servers & etc that you deploy. This type of test uses both concurrency and stress testing methodologies, but allows you to determine when to deploy more capacity based on anticipated traffic or plain throughput.

We are all aware of the peaks and valleys in traffic that every website experiences. But as your website succeeds, it will need to be able to endure ongoing periods of high demand traffic. This is where a ‘Soak Test’, or a stability test, will prove most beneficial. Instead of load testing for short periods to find weak spots, the stability test runs a sustained load for six to eight hours at a time to ensure that your systems are capable of supporting traffic continually.
All website transactions do not affect the systems in the same way. Some transactions are quick deliveries of small objects, others require downloads of significant files. To ensure your website is handling its variety of delivery requirements equally well regardless of the objects being delivered, performing a Volume test is ideal. Exercise your website’s capabilities by reading or writing to and from files of appropriate sizes to see where your application can be tweaked to ensure optimal performance.

Finally, to keep your customers engaged while there are periods of system disruption, run a Business Continuity test by simulating hardware and network outages. By being proactive in this way, when the random problems that pop up in any system start showing up in yours, you can be sure that your customers won’t feel the pain.