一、测试前期准备阶段
目标:
1. 保证系统稳定性;
2. 建立合适的测试团队。
活动:
1. 系统基础功能验证
类似于BVT测试,确保被测系统已具备进行性能测试的条件。
a. 性能测试属于验收测试一部分:性能测试安排在功能验收测试之后。
b. 性能测试不属于验收测试:测试之前至少进行一次系统的功能覆盖测试。
2. 组建测试团队
根据项目情况确定角色、职责、技能,组建团队。
3. 测试工具需求确认
确定测试工具应该具有的功能点,可从以下几方面进行分析。
a. 操作系统:测试工具能否运行在本操作系统上?是否支持本操作系统的监控?
b. 应用服务器环境:是否支持对本应用服务器的监控?
c. 数据库环境:是否支持本数据库的监控?
d. 应用使用的协议:被测系统使用了哪些协议?哪些协议需要在性能测试中通过工具进行录制和产生负载?是否支持进行录制和产生负载的协议?
e. 网络环境:是否支持防火墙?是否支持负载均衡?
f. 测试管理支持: 是否提供方便的测试结果分析和管理?
4. 性能预备测试(可选)
测试之前通过简单的探索性测试或其他方法对系统性能表现进行初步了解。
二、测试工具引入阶段
目标:选择合适的工具、为测试工具的使用确定范围以及在测试过程中规定和规范测试工具的使用。
活动:
1. 选择工具
圈定几种可用工具,对照前面第3节的问题列表进行功能符合度评估,选择符合度最高的工具。 如果都不符合,则可以考虑自行构建。
2. 工具应用的技能培训
培训对象:主要为测试开发、测试执行和测试分析角色。
培训要求:先确定各种角色的详细技能标准,并给出培训是否达到预定目标的评判准则。
培训形式: 内部培训、经销商培训、外包服务商等。
3. 确定工具的应用过程
确定性能测试工具在测试中的具体应用范围、工具使用过程中的问题解决方法。哪些工作用工具完成?工具在使用过程中的问题由谁来解决?工具脚本如何管理?
三、测试计划阶段
目标:生成指导整个测试执行的计划。
活动:
1. 性能测试领域分析
性能测试领域包括能力验证、规划能力、性能调优、发现缺陷四个领域。
能力验证:明确系统在固定条件下的性能能力;
规划能力: 了解系统性能能力的可扩展性、系统在非特定环境下的性能能力;
性能调优: 通过测试(发现问题)-调优(调整)-测试(验证调优效果)提高系统性能能力;
发现缺陷:通过性能测试手段发现应用缺陷。
表1: 不同领域的性能测试目标和性能目标
表2: 性能测试应用领域与测试方法的关联
2. 用户活动剖析与业务建模
目的在于寻找用户的关键性能关注点。
a. 用户活动剖析有两种方式:
1). 系统日志分析, 通过应用系统日志了解用户的活动协,分析出用户最关注、最常用的业务功能以及达到业务功能的操作路径。
2). 用户调查分析,不具备日志分析条件时采用的一种估算方法,通过用户调查问题、同类型系统对比的方法获取用户最关注、最常用的业务功能等内容。
b. 业务建模,对系统的行为及其实现 方式和方法建模,一般采用流程图描绘出各进行之间的交互关系与数据流向
3. 确定性能目标
从需求和设计中分析出性能测试需求,结合用户活动剖析与业务建模的结果,最终确定性能测试的目标。
4. 制定测试时间计划
根据性能测试活动,为每个活动阶段给出可能的时间估计,最终形成时间上的计划。具体方法可以参考项目时间管理。
四、测试设计与开发阶段
活动:
1. 测试环境设计
测试环境设计包括软硬件环境、数据库环境设计、和环境的维护方法,其中数据库环境设计最关键也最容易被忽视。
2. 测试场景设计
测试场景一般是实际业务运行的剖面,包括业务、业务比例、测试指标的目标以及需要在测试过程中进行监控的性能计数器。
比如:
场景体现的是用户实际运行环境中具有代表性的业务使用情况。用户场景一般由用户在某一个时间段内的所有业务使用状况组成。
3. 测试用例设计
测试用例设计是对测试场景的进一步细化,包括场景中涉及业务的操作序列描述、场景赵本山要环境部署等。
如一个复杂业务的测试方案包括如下步骤:
a. 时间同步方法
b. 设备和用户模拟方法
c. 执行方法
d. 数据记录方法
e. 测试持续时间
4. 辅助工具与脚本开发
脚本和辅助工具的开发是测试执行之前的最后步骤,测试脚本是对测试操作的体现,一个脚本一般就是一个业务的操作过程描述。
五、测试执行与管理
目的:测试执行与管理过程用于建立 合适的测试环境,部署测试脚本和测试场景,执行测试并记录测试结果。
活动:
1. 建立测试环境
搭建需要的测试环境,在设计完成用例之后就开始该活动。建立测试环境一般包括硬件、软件系统环境的搭建、数据库环境的建立,应用系统的部署,系统设置参数的调整以及数据环境准备几个方面的工作内容。
测试环境维护是另一个比较困难的问题,数据量巨大,涉及测试辅助工具和程序等,可以在测试前使用检查表检查测试环境的可用性。
2. 部署测试脚本和测试场景
可通过测试工具本身提供的功能来实现测试脚本和场景的部署。保证场景与设计的一致性,保证需要监控的计数器都已经部署好相应的监控手段。
3. 执行测试和记录结果
测试执行和测试结果的记录都可以由测试工具完成。
六、测试分析
目的:对测试结果进行分析,根据测试的目的和目标给出测试结论。
要求:测试分析人员对软件性能、软件架构和各性能指标具有相当程度的了解。