性能测试笔记系列之四:性能测试的组织

性能测试的进行,不同的公司不同的项目配置的人员不同,有的可能只有一个性能测试人员全权负责,有的可能配置的人员比较正规,也有可能是一些非性能测试人员完成性能测试任务,下面介绍下性能测试团队的一般人员构成(或者说标准人员构成):

项目测试经理:主要负责整个测试项目,对项目的进度,其具体的职责包括确定测试目标,指定测试计划,监控和管理性能测试的进行以及对性能测试结果的评估等。

测试设计人员:主要是设计测试方案和用例。

测试开发人员:主要实现测试设计人员设计的方案和用例,负责脚本的维护及测试过程中性能指标的监控。

测试执行人员:执行测试用例和脚本,监控测试过程中指标以及记录测试结果。

测试分析人员:主要是对照测试目标分析测试数据和测试过程获取的性能指标,得出结论。

支持人员:主要包括系统工程师,网络工程师和数据库工程师,为性能测试提高必要的协助。

仔细观察上面的性能测试团队的构成会发现不同人员的划分是性能测试流程决定的,不同的性能测试阶段需要不同的人员提高或者完成不同的人员,下面来看看性能测试过程包括哪些阶段(断念老师提出的PTGM:性能测试过程通用模型,实际性能测试中都会涉及到该模型的各个阶段,具有通用性,但是对该模型不同阶段的顺序持不同看法,在各阶段已注明):

1.  测试前期准备:主要包括以下活动

1>系统基础功能验证:确保被测对象具有一定的稳定性,在功能上基本满足需求。

2>组建性能测试团队:这个没什么好说的,具体可参照一般性能测试团队的构成。

3>测试工具需求确认:主要是确定测试工具应该具有的功能特性(个人感觉这个可以放在后面测试工具引入阶段)

4>可选过程:性能预备测试,对被测系统进行探索式测试以初步了解性能表现

2. 测试工具引入阶段:主要包括以下活动

1>    选择工具:根据阶段1对测试工具需求的确认选择合适的工具

2>    工具应用的技能培训

3>    确定工具的应用过程:达成对测试工具应用范围的一直认可和测试工具应用局限的一直确认,确定哪些是工具可以实现的哪些需要相关人员的参与。

3. 测试计划阶段(个人认为本阶段应放在首先考虑的位置,即阶段1,以确定和计划整个性能测试过程):主要包括

1>    性能测试领域分析:确定性能测试目标和性能测试方法

2>    用户活动剖析和业务建模:寻找用户的关键性能关注点,用户剖析方法包括系统日志分析和用户调查分析。

3>    确定性能测试目标

4>    指定测试时间计划

4. 测试设计与开发阶段:主要包括

1>    测试环境设计

2>    测试场景设计:设计测试活动需要使用的场景

3>    测试用例设计

5. 测试执行和管理:主要包括

1>    根据测试环境设计建立测试环境

2>    部署测试脚本和测试场景

3>    执行测试和记录结果

6. 测试分析(增加测试评估)

以上主要是一般性能测试活动各阶段,上面说不同意这个模型的时间安排,但是现在想想,每个阶段的目的,这样划分也是有一定道理的,需要记住的就是要明确实际性能测试各个阶段的目的,如可以把阶段3—测试计划阶段放在首先考虑的位置,这是就要考虑测试工具的技能培训,测试团队的组建以及任务认领等都需要在这个阶段考虑,当然也可以合并上面某几个阶段,关键是实际项目中如何方面自己的性能测试的展开。

好了,以上介绍了一般性能测试活动以及人员构成,下面说说本人实际参加的性能测试活动各阶段以及本组性能测试人员构成。

性能测试人员构成:功能测试时负责性能测试模块的相关人员。举个例子:比如我功能测试负责模块是报警服务器,现在要进行报警服务器性能测试,那么我就是负责报警服务器的性能测试,也就是说没有专门的性能测试人员,所有的性能测试执行人员都是功能测试人员(我想大多数公司应该和我们公司一样,这有多种原因构成的,可能是客户对性能要求不高,一般的功能测试人员就能完成简单的性能测试,我们公司属于这种;也可能是公司不愿意花这个钱等等)。当然这个过程中有测试执行负责人做性能过程把控和监控以及主要问题的反馈。

性能测试流程:

1.  测试组长制定性能测试目标和测试用例以及人员时间安排(这是和开发人员讨论确定过的),如报警服务器每秒处理1000条报警信息(本公司的性能测试多是属于能力验证的)

2.  各参与性能测试人员准备阶段:测试工具选择等(公司内部有专门的测试工具开发人员,可以提需求让他们开发),测试资源分配(可能大家对自己负责的模块都要进行性能测试而公司提供的测试资源有限,需要大家讨论协商资源分配),测试环境部署等

3. 执行性能测试和收集测试数据

4. 分析性能测试数据(各模块负责人分析)

5. 性能测试报告整理。

以上主要是我们公司性能测试过程,对比标准的性能测试团队构成以及各阶段(性能测试各阶段的安排不同的项目安排不同这个没什么好说的,关键还是要明确各阶段要进行的活动以及目的),根据个人实际遇到的问题主要还是性能测试人员构成这块遇到的问题较大,标准的性能测试人员构成:项目测试经理和测试设计人员可以由测试组长或者测试执行负责人兼任,测试开发人员可以由工具开发小组成员完成,测试执行人员可以由性能测试各成员构成,但是测试分析和支持人员在我们测试活动中就缺少了,的确也吃过这方面的亏,如性能测试跑出问题,开发人员说是操作系统问题或者网络问题或者病毒问题但有拿不出确凿的理由,测试人员说是软件问题,两边相互推来推去说来说去,也说不个所以然来,性能测试结果的精准度和真实性就值得怀疑,要是有网络工程师和系统工程师等协助可能就能够准确确定问题的根结。也跟老大反映过这个问题,但一直没有处理好和协调好,这个还是要自己在实际测试中多学习点网络和操作系统的知识以便更好的确定问题,抱怨没用,靠别人定位问题和协助有时就是扯淡或者多少有些无奈。淡定,呵呵,不能抱怨,要改变环境和别人先改变自己,呵呵呵,扯远了。

把一般的性能测试模型和测试团队构成写出来是为了提醒我们性能测试要进行哪些阶段,如何入手,指导我们进行性能测试,并对比自己公司内的性能测试过程改进性能测试流程,完善性能测试方法和阶段,提高性能测试数据的可靠性和完整性。