Share This Page On Facebook Share This Page On Twitter
alltechbites.com

Scalability Testing: 7 Steps Towards Success

Posted on June 5, 2019 by Grant Tafreshi

Systems that work very well during development, deployed on a little scale, can neglect to meet performance goals once the deployment is scaled around support real degrees of use.

An apposite exemplory case of this originates from a significant blue chip company that recently outsourced the development of a forward thinking high technology platform. Though development was behind schedule this is deemed acceptable. The machine gradually passed through functional components of an individual acceptance testing and finally it appeared as if a deployment date could possibly be set. But the supplier started load testing and scalability testing. There followed an extended and costly amount of architectural changes and changes to the machine requirements. The supplier battled heroically to supply a satisfactory system, until finally the project was mothballed.

This isn't an isolated case. IT folklore abounds with similar tales. From ambulance dispatch systems to web-sites for the electronic submission of taxation statements, systems fail because they scale and experience peak demands. All these projects appear never to have identified and ordered the major risks they faced. This can be a fundamental stage of risk based testing, and applies equally to scalability testing or load testing since it does to functionality testing or business continuity testing. Without risk assessment they didn't recognise that scaling was between the biggest risks, a lot more in order that delivering all of the functionality

Recent trends towards Service Oriented Architecture (SOA) try to address the problem of scalability but additionally introduce new issues. Incorporating externally provided services into your current solution implies that your capability to scale now is dependent upon these external system operate under load. Assuring this can be a demanding task and sadly the strain testing and stress testing here's often overlooked.

Better practice would be to start the development of a big scale software system using its performance clearly at heart, particularly scalability testing, volume testing and load testing. To generate this performance testing focus:

  • Research and quantify the info volumes and transaction volumes the mark market implies. A few of these figures could be eye openers and help the business enterprise users realise the entire scale of the machine. This alone can result in reassessment of the priority of several features.
  • Determine just how features could possibly be presented to users and the machine structured to make scaling of the machine easier. Usually do not try to have exactly the same functionality you'll have for an individual user desktop solution offer an appropriate scalable alternative.
  • Recognise an intrinsic area of the development process is load testing at representative scale on each incremental software release. That is continual testing, concentrating on the largest risk to the project: the opportunity to operate at full scale.
  • Ensure load testing is adequate both in scope and rigour. Load testing is not only about measuring response times with a performance test. The strain testing programme must include other styles of load testing including stress testing, reliability testing, and endurance testing.
  • Don't forget that failures will occur. Large scale systems generally include server clusters with fail-over behaviour. Failure testing, fail-over testing and recovery testing completed on representative scale systems operating under load ought to be included.
  • Don't forget catastrophic failure could occur. For large scale problems, disaster testing and disaster recovery testing ought to be completed at representative scale and loads. These activities can be viewed as the technical layers of business continuity testing.
  • Recognise external services if you are using them. What your location is adopting an SOA approach and so are influenced by external services you should be sure that the throughput and turnaround time on these services will stay acceptable as one's body scales and its own demands increase. A good system architecture includes a graceful response and fall-back operation if the external service behaviour deteriorate or fail.