在AWS中构建和测试应用有几个好处。企业可以快速、低成本地使用资源;适当的应用程序测试流程不仅可以检测漏洞,还能确保新应用程序可靠,且已经准备好用于产生。但是,因为没有单一方法可以进行质保测试,所以在应用程序测试流程中使用AWS时还存在几点需要考虑。
软件测试中,基础设施是一个主要的挑战。现代化应用程序更强大,更具扩展性,但少数企业将会投资于所需上,来运行所需的服务器、网络带宽和存储资源,从而在负载之下全面测试应用程序。内部测试让人望而却步,导致IT团队缩短或省略一些高端负载测试。
这就是迁移应用测试到如AWS这样的公有云变得越来越流行的原因了。开发人员可以租用上千个Amazon EC2实例,创建巨大的 Amazon Elastic Block Store (EBS)和S3存储环境。一个测试环境可能只运行几个小时或几天;当测试周期完成后,执行测试、收集结果,然后暂停或关闭它。
无法再造问题可能会限制应用程序测试流程。如果开发人员不能再造问题,他就不能修复这一问题。AWS Management Console的BundleInstance功能,允许测试人员按需创建Amazon Machine Instances (AMI)。一旦AMI被绑定、上载和登录,开发人员就能够访问AMI,查看参数、数据和其它导致漏洞的因素。
AWS API和命令行接口工具支持测试自动化。这些工具允许开发人员自动化创新和配置测试环境、连接数据库、运行脚本,甚至使用持续集成方法,在所有成功的部件上自动化运行测试套件。当应用程序测试流程需要数据库时,管理员可以使用已经上传的测试数据集合的Amazon Relational Database Service实例。开发人员通常会复制同一个数据库来确保每一次测试周期使用了相同的数据。
也许,在AWS的软件测试中最值得一提的是,计算与存储之间的紧密关系。测试通常需要EBS实例,在运行时时,存储EC2实例产生的所有改变。开发人员必须使用EBS文件系统,并配置测试设置来连接正确的EBS和EC2实例,并在测试流程中保持EC2的***状态。没有了这一实时存储,一旦实例关闭,任何在测试中由EC2产生的运行时改变都会丢失。