New School - Early & Often
Until recently, most load and stress testing platforms required extensive investment and configuration. Web development teams have viewed load and performance testing as an activity that happens the week before release of an application or the launch of a site. The new way of thinking should be to make performance an important part of the development cycle. Testing early and often is part of the Agile mantra - performance testing should be included in that process.
Traditional tools such as Hewlett-Packard’s LoadRunner operate by simulating a large number of users using a network of client machines. A single machine, the controller, coordinates client activity across these machines, and gathers statistics on the performance of individual connections to the test server.
While effective, this paradigm requires that development teams invest not only in servers for their application, but in multiple client machines for their load tests. Teams must also train one or more members in learning the basics of the platform, and must allocate several days out of their development or QA schedules to configure the platform properly for their application. Needless to say, this is time and money that would be better spent elsewhere!
The New Face of Load Testing: Cloud-Based Architecture
The advent of Cloud Computing offers a new model - one that eliminates the burdens of capital investment and load testing configuration. Cloud Computing uses the federated power of a large number of servers to provide on-demand processing power to online applications, which rent only as much processing power from the cloud as they need. This allows dynamic server applications (such as Web sites built on .NET, LAMP, or other programming platforms) to scale quickly from a few hundred up to millions of users in a matter of hours.
Cloud-based computing isn’t just for server applications, however. Load and stress testing can be performed using a cloud-based platform that uses the processing power of the cloud to simulate anywhere from dozens to hundreds of thousands of users per hour. The load testing algorithms are themselves hosted in the cloud, using a Software-as-a-Service (SaaS) model. Instead of installing their own load testing software, developers can now “rent” a load testing service, paying only for the number of users they wish to simulate.
Cloud-based load testing services such as LoadStorm and Soasta have several advantages over traditional platforms such as Rational and LoadRunner. The first is that a cloud-based solution is less expensive, by a factor of 100 or more.
There are several reasons for this. First, companies that utilise cloud-based load testing only pay a small fee for simulating a specific number of users. No longer are development teams required to requisition and maintain a pool of machines simply for purposes of load testing.
Additionally, development teams no longer need to assign a team member to master a complex load testing environment. All of the software for running load tests is itself hosted in the cloud, on remote computers. Development teams need merely supply a small set of parameters, such as the number of users they wish to simulate and they site(s) they wish to test. The cloud-based load testing platform takes care of the rest.
Agile is Better
Cloud-based load and stress testing is also more Agile. Because the load tests are so easy to configure, teams can load test as often as they wish. A cloud-based solution makes it easy for any team, of any size, to load test their new site any time a new feature is added, or an existing feature is modified. Critical changes - such as improvements to a processor-intensive business algorithm, or database enhancements made by a DBA - can be tested and re-tested on the spot, greatly accelerating the software development process.
An Agile approach to load testing is easier and less complicated than a traditional paradigm. Clouds facilitate Agile and simplicity because there no servers to acquire and setup, no software tools to install and configure. This is a new way of thinking for most web application development teams.
This accords with the Agile programming mentality of “good enough” software development: a simple load testing strategy that assures a high degree of uptime during peak hours is all that most applications require.
Finally, new paradigm load testing services offer simplified reporting. According to the Pareto Principle, 80% of the value lies in 20% of the data. A good load testing solution delivers a few well-designed reports that contains only what development teams need - not a hundred different reports filled with trivial results.
These are only a few of the reasons why SaaS is changing the landscape of load testing software, making it both less costly and easier for software development teams to test their high-demand server applications.