Testing and quality assurance are two of the least emphasized areas in corporate IT, but without appropriate attention to it, applications, systems, and the business face enormous risk of failure. Nevertheless, organizations continue to create, use, and tear down testing environments for applications and full integration tests in much the same way as they did 20 years ago. They use homegrown tools or sets of commercial tools that are mixed and matched depending on the application. They allocate partitions on physical or virtual servers, which they populate with operating systems, databases, middleware, and any other relevant assets that an application touches. This, of course, consumes processing power, disk space, energy, and IT staff time.
To get around this resource-hungry, conventional testing methodology, take advantage of some new approaches to testing, like sandboxing and testing “resource rentals” in the cloud.
A number of cloud service providers offer provisioning of on-demand system and application testing environments. Using these services can be more efficient and cost-effective than using on-site resources. When cloud provisioning for application development and testing combines with commercially available sandbox technology, IT can further improve its testing environment and its expense ratio.
The principle behind the sandbox is much the same as it is for traditional testing with dedicated resources: It is isolated from production and other testing and staging activity. In this reserved environment, you perform testing or even application prototyping without the risk of introducing adverse results from the testing into a live network, system, database, application, or other technology resource. The sandbox provides a tightly controlled set of resources for testable applications to run in, along with disk and memory resources. Advancements in virtualization and operating systems test toolkits allow for sites to quickly create instances of operating system environments that the applications being tested can use.
In a sandbox test environment, virtual machines can emulate a complete host computer, on which a conventional operating system may boot and run as on actual hardware. If the test is for security, you can create an environment that emulates corporate desktop computers, evaluating how malware could infect and compromise a target host. Sandboxes can even be set up for users to test a small portion of code with a graphical user interface (GUI), to see if a certain navigation or drilldown concept can be applied to a broader set of applications.
What makes sandbox testing even more exciting is the fact that IT is not limited to a specific platform or operating system. There are both closed-source and open-source sandbox toolkits available. They cover virtually every operating system. The most advanced ones even come with automated self-checking, which ensures that any test operating environment IT creates remains compatible with the native operating system environment the application being tested will use in production.
Now let’s return to the cloud and the sandbox combination. The value proposition here for businesses is that they can purchase sandbox (or even conventional) provisioning of physical, virtual, networking, software, and other resources at a subscription or pay-per-use rate from a third-party provider. Some cloud providers appearing on the scene can deliver the kind of industrial-strength security and governance that corporate IT expects from its own datacenters.
The benefit of having the cloud as a potential sandbox resource is that it can eliminate the need to pay for extra hardware (or software licensing) in order to support testing and application development.
How do sites use the cloud? They perform their application development and testing (either of a sandbox or a traditional variety) in the cloud. When the application is ready to move to production, they migrate it over to computers in their own datacenters, where it operates under the corporate roof.
This kind of reliable, inexpensive testing can save you a lot of pain and hassle later. You can save money, time, and resources over traditional testing and still catch the disasters waiting to happen.