Development has changed and testing needs to change to keep pace.
(First in a series on How, What and When to test web applications.)
In the old days engineering would spend months or years working on a product release, once they were done they would hand it off to QA for testing, according to a waterfall development model, and then hand it off to Sys Admin for deployment. Testing was focused primarily around functional tests. Now with the advent of things like Agile and Continuous Integration our development model has changed completely, and our testing modalities need to change as well. Real world behavior testing of your application is the gold standard if you want to ensure that your customers’ expectations are met.
With web applications performance matters as much as functionality from the user perspective. Actually some people would say speed comes first. As an example, for each second of latency your users experience on your site there is corresponding 7% loss of users. Users no longer measure you just against your competitors, but against every other site or application they visit on the Internet. For testing web applications today you need to be prepared for three types of testing.
Three different ways to categorize your testing are:
Performance Testing – Helps to understand the performance of a system under different loads and conditions.
Stress Testing – Helps to understand the upper limits of capacity with in a system.
Load Testing – Helps to understand the performance of a system under a specific expected load.
Today’s sites can be complicated places with many different things users can do, users can follow many different paths while visiting your site, even in a single session. This level of complexity requires that your tests run a myriad of user sessions. Using a record and play tool like Nouvola’s DiveTrace makes creating those sessions far simpler than the scripting of the past. A good test that is built on real world users will need to run multiple different user sessions in the same test and with varying loads. These tests need to be designed with the user experience in mind. You will need to test under what scenarios and what loads you begin to see latency. Testing the applications behavior with real world loads and real world user sessions is the best way to build certainty that you will be safe when you deploy.
The next layer of complexity that you need to build into your testing is Geo. Where in the world does your traffic come from? Your testing needs to be built driving loads from the parts of the world that your traffic is generated from. Leading edge performance testing solutions work by creating millions of virtual users, geographically dispersed in the cloud, generating highly controlled traffic, executing real-life scenarios. The load is repeatable, and you can test when you like and where you like. Your goal should be to detect issues before it’s too late. A good rule of thumb: the more you test, the more you know.
Stay updated with all the blog postings from Nouvola here on our blog page. Don’t hesitate to contact Charles Higgins directly with your comments and inputs via Charles.firstname.lastname@example.org. You can find him on Twitter at @performcloud.