As surprising as it was to observe, it was a reality that was going only to get starker every next year. In 2014 Black Friday drew a new line between desktops and mobiles. A line that sent lots of developers, testers and above all, businesses on their toes and thinking hard. When the aggregate performance that year was compared to that of 2013 (as per web performance monitoring company Catchpoint Systems), why were desktop web pages 19.85 percent slower? Why were mobile web pages 57.21 percent slower?
A similar concern was felt in the technology world (where developers and application-makers reside) when the well-known British clothing site ASOS came crumbling down (and stayed that way for over a day) after the peak-demand following a Brexit referendum-nod. The list of examples can just go on –Niantic suffered from heavy loads of Pokemon; Macy, Old Navy, GAME, Quidco websites went through under the back-breaking pressure of heavy-shopping — All this is just a glimpse of how much damage unanticipated volatility in scale can stir up.
Yes, we are talking about actual demand spikes, feature-rich UI load, processing limits, or the sheer scale and enormity of thumbs at work.It is not just useful but also necessary to test a system for all possibilities, what-ifs, emergencies, peak loads and scale-issues — much before the alarm bells go off.
The question is whether software makers and businesses ever ensure that their app or service is completely ready for the day of final reckoning — no matter what ceilings the demand graphs break or how impatient or hard-to-predict customers get?
The answer lies somewhere in the concept and mindset of Continuous Performance Testing.
Continuous: the operative word
Two words — ‘continuous’ and ‘performance’ define its unique character and thrust. It has to be done at every possible opportunity. And not just for bugs or functional issues but under actual performance pressure.
This is a genre of testing that enables developers to routinely and continuously create new features and changes as they strive to make a rigorous application. It is only through this mode of testing that they can be sure of the impact, precision and muscle of whatever they are making.
Problems related to performance are watched for during the development process itself and not sidelined to production. This also helps to navigate the ever-growing complexity of applications owing to an endless growth of devices, form factors, OS, features, interconnects, capabilities and user needs.
With this testing, application builds can be tested for performance and stress way before they are released to production; hence saving testers/coders the headache of last hour troubleshooting and sparing businesses the nightmarish sight of letting customers switch to a rival’s faster/more capable app during a holiday blitzkrieg.
It is all about high-quality and dependable code that is tested early, often, automatically and continuously. But are there any ill-conceived, misplaced assumptions lurking around this model?
Top 5 Myths & Realities
1. It is expensive
It is not impossible to find investments being channelised into unit tests, regression testing, and integration testing over, and sometimes at the cost of, performance testing. It may seem like a massive and resource-intensive exercise but once the teams have the test-it-quick mindset well entrenched in the overall approach; it is not an expensive testing mode. Also, when the continuous testing strategy is handled with apt vision, stronghold, tools and scale, it pays tremendously well in an eventual output.
2. There are no bugs in a tested product
Various things like final-day transaction volume, speed, response latency, unexpected scenarios, mission-critical oversights, different peak orders, load constraints and out-of-the-blue server crash — these can never be picked accurately unless continuous performance testing is the approach being adopted.
3. Testers do not write codes
With lines between coding and testing getting blurred all the time, it is vital to take note of the consequences of automation, agile and DevOps; and test teams’ comfort with developer assets, automated scripts and test-frameworks plays a considerable role. Continuous Performance testing allows testers with a unique skill and advantage here.
4. Complete testing is possible
In testing, no matter how well or how frequent, there is never a flawless report possible. Areas of grey shade always remain and have to be reckoned. This method of testing helps everyone to get equipped for unexpected spikes or dips in demand, user experience, capacity, throughput, response time etc.
5. Automation reduces testing time
The scope of automation is best limited to areas like build-management, data-transfer, data flows, deployment etc. Many aspects like codebase, design, UI nuances and architecture always call for manual checks and reviews. Any crucial part that is not weaved in for an automation nose can easily slip by and cause havoc on the big day of the performance.
Continuous Testing is an effort, for sure. It will need resources, time and strategic exertion. But the results that it generates are so attractive and deep-cutting that many organisations are not hesitating about the idea at all. The outcomes are massive: Confidence in your product; the elasticity to handle more –whatever/whenever; and the sheer robustness of what you are offering against your competition.
It is just like a good habit. The sooner it sets in, the more natural and advantageous it becomes.
Future of Software Testing
As we enter into a world where software becomes every business’s asset or pitfall — the need to be continuously on with new apps and features is just not going to dilute anytime. Every business and hence, its software team will have to be constantly kicking, alive and running around.
Meeting user demands, the first time and every time would become more of a staple rather than a privilege.
Things would get more complex and ruthless with growing impact of service-oriented architectures, micro-service architectures, containers, NoOps, NoCode variety of trends accompanied with a flurry of new operating systems, mobile environments, mobile devices, and sensor-layered IoT points.
Testing is going to turn into even more work and by embracing it as a continuous and performance-ready element, businesses can, and will, preempt problems that would otherwise pop in the real field. Else a crash is inevitable, and if that happens on a significant Friday, it sounds loud, really loud.