James Thew - Fotolia
Building and testing applications in AWS has several benefits. It allows enterprises to quickly and inexpensively spin up resources; the proper application testing process not only detects bugs but also ensures a new application is stable and ready for production. But while there's no single approach to quality assurance testing, there are a few considerations with using AWS in the application testing process.
An infrastructure is a principle challenge in software testing. Modern applications can be powerful and scalable, but few enterprises will invest the money needed to run the servers, network bandwidth and storage resources needed to fully test an app under load. In-house testing can be prohibitive, causing some IT teams to shorten or omit some high-end load testing.
This is why moving application testing to a public cloud service like AWS has become increasingly popular. Developers can rent thousands of Amazon EC2 instances and create huge Amazon Elastic Block Store (EBS) or Simple Storage Service environments. A test environment can run for just a few hours or days, perform the test and gather results and then pause or shut down once the test cycle is finished.
An inability to recreate problems can limit the application testing process. If a developer cannot reproduce an issue, he can't fix it. AWS Management Console features such as a BundleInstance request allows testers to create Amazon Machine Instances (AMIs) on demand. Once an AMI is bundled, uploaded and registered, developers can access the AMI and view the parameters, data and other factors that led to the bug.
The AWS API and Command Line Interface tools support test automation. These tools allow developers to automatically create and configure test environments, connect databases, run scripts and even use continuous integration methods to automatically run a test suite on each successful build. When the application testing process requires a database, an admin can use Amazon Relational Database Service instances preloaded with a test data set. A developer typically will duplicate a single database to ensure each test cycle uses the same data.
Perhaps the most noteworthy caveat of software testing in AWS is the close interrelation of compute and storage. Testing will generally require EBS instances for storing any changes made to EC2 instances during runtime. Developers must use the EBS file system and configure the test setup to connect the correct EBS and EC2 instances and preserve the latest EC2 state during the testing process. Without this real-time storage, any runtime changes made to an EC2 instance during testing are lost once the instance is shut down.
DevOps on AWS automates app deployment
Don't pass on AWS testing
Must-read AWS application development tips
Dig Deeper on Amazon EC2 (Elastic Compute Cloud) management
Related Q&A from Stephen J. Bigelow
Application load balancers and API gateways both manage network traffic, but in their own ways. Learn the differences between them and how to use ... Continue Reading
Developers don't have a lot of free time. Code reuse helps dev teams focus on the most value aspects of a project, so ensure everyone knows how to ... Continue Reading
Although there are a handful of tools to help run Firecracker more easily, admins might find issues with the lack of major tool integration for the ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.