(2)尽早计划测试环境
  测试环境的规划,例如:测试平台和测试工具,应该在测试计划阶段进行考虑,而不是在测试执行阶段才进行规划和实施。
  测试环境的范围非常广泛,包括软件系统运行的硬件配置(例如:对于通信系统,可能会使用不同的硬件机架、不同的控制模块、不同的用户模块等)、外部设备的型号规格、网络配置等。这些测试平台相关的硬件应尽可能与用户实际使用中的硬件一致。使用的软件系统的配置、版本、性能应尽可能与用户使用的一致。表2?1是系统测试中环境配置清单的一个模板。
表1 环境配置需求清单

类别
序号
数量
设备名称
配置要求
使用时间
服务器
 
 
 
 
PC终端
 
 
 
 
 
软件
 
 
 
 
 
网络要求
 
 
 
 
 
数据线
 
 
 
 
 
网络线
 
 
 
 
 

  测试工具主要是指测试执行过程中需要运用的各种工具,例如:对于复杂的通信产品系统测试,需要包括用户数据发生器和模拟器、协议分析仪、自动化测试的工具、测试管理工具(例如:缺陷管理工具、测试进度管理工具等)。
  对于所有上面提及的测试环境方面的要求,都需要在测试计划阶段进行规划。而在实际测试过程,测试环境的规划常常会在测试计划阶段被忽视,而在测试执行阶段才被考虑。在测试执行阶段才考虑测试环境的规划,可能会给测试执行带来很大的风险,特别是测试执行过程需要使用的一些硬件设备和测试工具,需要购买或者租用的时候。因此,需要尽早对测试环境进行计划,避免影响测试执行的进度和质量。
  (3)测试环境管理员
  通常来说,测试环境并不仅仅供单个项目使用。组织内建立的测试实验室在不同的项目之间需要进行共享。这个时候,对测试环境进行管理变得非常重要。因为任何组织在建立测试实验室的时候,都需要考虑测试环境建立的成本和它的效率。不同的项目之间需要共享测试平台和测试工具。这种情况下,需要专门的测试环境管理人员来对这些资源进行合理的管理和分配,以提高测试资源的利用效率和测试效率。测试环境管理员的主要职责为:
  ● 负责测试环境所需的网络规划和建设,维护网络的正常运行。
  ● 建立、设置和维护测试环境所需的应用服务器或软件平台。
  ● 对实验室的硬件、软件资源进行登记、分配和管理。
  ● 申请所需的新的硬件资源和软件资源,并协助有关部门进行采购和验收。
  ● 对使用实验室的硬件、软件资源的权限进行设计和设置,保证其安全性。
  ● 安装新的测试平台,协助安装被测试的系统等。
  ● 优化测试环境,提高测试环境中网络、服务器和其他设备运行的性能。
  (4)保持测试环境的独立性
  测试环境独立于开发环境,可以使测试工作持续开展,能够避免开发人员占用测试环境。对于成熟的组织,应该有明确的开发人员和测试人员的角色和相应的职责定义。从测试人员的角度来说,经常会碰到的问题是:开发人员在修改测试人员提交的缺陷的时候,经常会要求在测试环境中对缺陷进行复现和定位。这种情况打乱了测试活动,并会影响测试的进度。为了避免这种情况,在提交缺陷的时候,测试人员应该尽量提供详细的复现缺陷的步骤,提供尽量多的信息以及测试所使用的资源和配置情况。而开发人员首先应该根据缺陷步骤的描述,在开发环境中复现和定位这个问题,从而找出引起缺陷的原因。在这个过程中,假如开发人员需要测试人员提供协助,测试人员应该帮助复现这个问题。但是开发人员必须明确:调试和定位问题是开发人员的职责。开发人员不应该让测试人员来定位,也尽量不要占用测试人员的测试环境和测试资源。开发人员必须有一个独立的环境来解决缺陷。