初始数据的准备
 
  在执行测试之前,我们需要准备足够支撑测试进行的初始数据,对本测试来说,初始数据包括静态数据、程序运行时必须的配置数据、配置文件、用户帐号信息等,建议将这部分数据按照不同的数据来源分别列出形成CheckList,这样可以避免在测试过程中出现数据准备不充分的情况。
 
  本测试中我使用的CheckList示例如表1所示:
 
  表1 本测试中使用的测试环境CheckList.
序号 测试环境项目 来源 责任人 预计完成时间 是否已部署
1 数据库静态数据 配置项 XXXX XXXXXXX
2 数据库中的网元配置数据 测试用例 XXXX XXXXXXX
3 WEB用户信息 测试用例 XXXX XXXXXXX
4 Unix用户帐号信息 配置项 XXXX XXXXXXX
5 模拟发送的话务数据 测试用例 XXXX XXXXXXX
……
……
…… …… …… ……
10 网元话务报告发送模拟程序 测试用例 XXXX XXXXXXX
…… …… …… …… …… ……

  除了测试环境CheckList外,还需要准备一份更详细的文档,详细记录每一个环境项目的实际数据,这样的一份文档一方面可以便于对数据的审查;另一方面,在测试过程中即使人员发生变动,新参与的成员也能很快熟悉整个测试环境。
 
  测试数据的可恢复性。
 
  说到测试数据,不能不提测试数据的可恢复性。在一次测试过程中,一个用例一般都需要被多次执行,但在多次执行同一个用例时,必须保证每次执行用例时的环境一致,因此在准备好数据,执行用例之前,必须要计划好测试完成后怎样将整个测试环境中的数据恢复,在本次测试中,我们采用的是为每个测试准备一个“回滚”脚本,该脚本用来恢复数据至测试用例执行之前。
 
  测试环境的时间同步。
 
  在性能测试中,尤其需要注意的是测试环境的时间同步问题。性能测试关注的是系统的总体性能表现,这些性能表现又需要通过各个模块的响应时间来体现,在本次测试中,我们在应用程序中增加了部分测试代码,测试代码通过记录关键操作的时间来完成性能指标的记录。
 
  基于以上的要求,整个测试环境中各台计算机的时间同步非常重要了,如果时间不同步的话,会造成测试结果的不准确,尤其在本次测试中,部分测试指标要求到秒级,因此,我们必须要对整个环境进行一个精确的时间同步。
 
  本测试的测试环境包括7台HP小型机、两台WEB服务器、一台Windows域服务器和15台加入域的PC机,在时间同步方案上,我们以一台小型机为主时间服务器,采用Windows域服务器作为Windows机器的时间服务器(域内的客户机可以实现与域服务器的自动的时间同步),利用NTP协议在Unix主机和Windows域服务器之间进行时间同步,之所以采用NTP协议,主要是因为NTP是在Internet和Unix系统上被广泛采用的协议,在Windows平台上,也有基于NTP协议的开源软件(NetTime)可以使用。
 
  4.2. 测试工具。
 
  测试工具的评估和选择是测试开始之前必须进行的工作。在机械工业出版社出版的《软件测试自动化-引入,实施和管理》书中对测试工具的评估选择、应用有详细的描述,个人觉得这本书对于测试工具应用部分的说明非常不错,强烈推荐这本书给对这部分感兴趣的朋友。
 
  本测试没有使用商业测试软件,主要原因在于以下几点:
 
  1、 测试时间资源:本测试安排的时间比较紧迫,没有足够的时间用商业测试工具进行录制脚本、脚本调试维护等一系列的工作;
 
  2、 测试工具的学习曲线:商业测试工具的应用需要一个学习曲线,整个测试团队中只有一名成员具有足够的技能,这是限制商业测试工具应用的极大障碍;
 
  3、 费用:商业测试工具的授权费用是不能不考虑的,在我们这样一个项目中(客户端数量较大),商业测试工具的授权费很高,在合同中没有包含这部分费用的情况下,由项目自身承担这部分费用,显然是不可能的;
 
  4、 灵活性:测试实施过程中可能需要修改测试脚本,考虑到1、2的原因,可能通过Perl等脚本语言编写的脚本更能满足灵活性的要求。
 
  终在本项目中,我们采用了自行开发的测试适用本项目的测试工具,这些测试工具中的部分具有可重用性,部分是本项目专用的测试工具,实现测试工具的终投入为2.4人月,其中可被重用的工具投入为1.4人月,不能重用的测试工具开发投入为1人月,从测试效果来说,这个投入是值得的。