重新部署和重复测试
我们可以将与部署相关的推进任务划分为两个主要阶段:
- 环境供应
- 部署应用程序套件
术语供应(provisioning)可以宽泛地定义为“提供应用程序所需的资源,以便它能根据规范执行任务”。资源可以是BEA WebLogic Server容器本身的任何内容,从数据库连接到Web services和后端系统连通性。
为了彻底测试您的应用程序,您应该在每一个测试环境中多次部署和测试每一个应用程序。您可以从以下两种方法中选择:
- 对于每一个测试,同时执行环境供应和应用程序部署
- 只供应环境一次,然后对每次后续测试部署、测试并重新部署应用程序
第一种方法为每个测试重新构建环境,开销很大,但它的优点是无需为供应和部署设置不同的脚本,就好像它们是一个任务的两个部分一样。另一方面,如果您的测试计划需要复杂的测试环境,涉及到许多服务器和/或多个域,那么每次测试运行的供应开销可能过高以至于难以接受,这时可以采用后一种方法。
推进测试不要失败
推进应用程序套件不仅仅是构建一个现有环境的更大版本并在其中部署套件。各种受控测试环境将有特定的测试目标,这些目标通过不同的供应需求表现。
表1说明了这一点,它使用一个虚构但并非不切实际的大纲测试环境规范测试一个应用程序套件,只是在环境上有一些增加内容。
| 功能测试 | 库和驱动程序的“调试”版 安装的诊断组件,例如,单元测试框架[Cactus] 数据库是低配置的,例如,不带RAC的Oracle,并且没有为DBMS优化架构(schema) 平台和应用程序共享数据库表空间并使用“一般”架构 集群中最小的服务器成员 许多伪后端服务 |
| 系统测试 | 驱动程序和库的生产版本 数据库是完整的企业配置,例如,带RAC的Oracle,但没有为DBMS完全优化架构 WebLogic Platform表格和应用程序表格各自的表空间 安装的少量服务器 后端服务可能测试实现 |
| 性能测试 | 驱动程序和库的生产版本 装备了JVM 设置在JVM上的调整的参数值,其他配置项,如连接池大小和自定义执行队列 安装的性能数据收集代理 数据库是完整的企业配置,例如,带RAC的Oracle WebLogic Platform表格和应用程序表格各自的表空间,为DBMS优化架构 大量服务器,足够处理最大的指定负载 配置的负载生成器服务器 后端服务可能测试实现 |
| 用户验收测试 | 驱动程序和库的生产版本 数据库是企业版但不一定是完整配置,例如,不带RAC的Oracle WebLogic Platform表格和应用程序表格各自的表空间 安装的少量服务器 完整配置的后端服务 |
表1:说明测试环境规范
这些不同可能会给供应增加大量负担。通常,供应错误是通过部署错误表现的,因此在构建好环境并第一次部署应用程序套件之前您无法看到这些错误。
第一次使用受控环境时,解决部署问题通常很棘手。开发人员和供应团队都没有复杂环境中分析部署异常的经验。开发人员总是认为能在其自己的测试机器或集成环境中部署成功意味着同样能在其他环境中部署成功。从另一方面看,测试人员和操作人员总是认为开发人员在软件交付过程中已经解决了部署问题,因此经常失败,而这时开发人员解释说他们从来没有在如此复杂的受控环境中运行应用程序。
至少应该知道千万不要低估推进应用程序的难度,否则您会后悔莫及。