We hear of startups who gained immense growth and turned to be well-established business ventures. How do you think people reach these heights? Did they just work hard? Well, no it's not.
They acknowledged the importance of these 3 business risks - SPEED, SCALABILITY and STABILITY which are associated with the 3 stages of any business and implemented solutions to test and fix their online presence.
STAGE 1 - SPEED
Say, you are a budding startup who is selling its product/services online. Needless to say, quick response to the requests/clicks will lead to end user satisfaction. Questions you need to ask yourself:
- Is the application fast enough to respond within the expected time?
- Is the application capable of presenting the most current information to its users without a lag?
- Is the server responding within the maximum expected response time before an error is thrown?
These can be easily addressed by a couple of load tests with proper planning and execution.
STAGE 2 - SCALABILITY
Now you as the business owner, want more profits and hence you would want more users on your website/mobile app. To attain this, the system must respond to larger volume of data, also have more capacity and hence SCALABILITY becomes the need of the hour.
- The application works well with say 100 users hitting at a time. But does it provide consistent and acceptable response times with thousands of concurrent users?
- It works well with small database of say less than 1000 records but does it scale well on a large set (say millions, or billions of records)?
- Can the application withstand unanticipated peak loads?
- Does it autoscale (upscale the infrastructure with increased load and vice versa) efficiently?
This can be very well achieved with a series of scalability tests including volume and spike tests.
STAGE 3 - STABILITY
Well, you have established your business by scaling your application. But from long term perspective, is it stable enough to provide reliability, uptime and recoverability? Some common stability issues addressed by means of performance, stress and endurance tests include:
- Can the application run for long periods of time without data corruption, slowdown, or servers needing to be rebooted?
- If the application does go down unexpectedly, what happens to partially completed transactions?
- When the application comes back online after scheduled or unscheduled downtime, will users still be able to see/do everything they expect?
- Can repeated functional errors cause a system crash?
- What if one of the nodes of the load-balanced environment fail! Does the application still provide uninterrupted service to users?
- Can the system be patched or updated without taking it down?
Performance Testing is highly essential for any online business throughout its journey from scratch to stability.