三,软件性能测试的开发过程
1、 过程模型
今天在看《软件配置管理策略与IBM Rational celarCase》一书中提到这样一个观点:认为仅仅靠SCM工具就可以解决SCM问题或支持SCM需求,这是错误的!就像你买了锤子和钉子,但画不会自己挂到墙上。工具本身并不能解决问题,应用工具才能解决问题,这就是SCM过程的作用。其实在软件测试中也是这样的。前两天也有朋友在发帖子讨论性能测试工具和性能测试。我很赞成这种说法,一个只会用工具而不思考如何改进使用工具过程的人并不是一个真正会用工具或真正懂测试的人。所以学习并掌握然后使用过程模型就很重要了。下面我就选择几种比较常见的过程模型来描述下。
1) SEI负载测试计划过程
SEI负载测试计划过程着重考虑的是如何建立清晰的负载测试计划,它从目标,用户,用例,生产环境,测试环境和测试场景六个区域来考虑,关注生产环境与测试环境的不同点,用户分析,以及用例。
2) RBI方法
这里主要强调RBI(快速瓶颈识别方法)的原理:
发现的80%系统的性能瓶颈都由吞吐量制约;
并发用户数和吞吐量瓶颈之间存在一定的关联;
采用吞吐量测试可以更快速定位问题。
3) 性能下降曲线法
性能下降曲线法就是通过性能曲线上的单用户区,性能平坦区,压力区域以及性能拐点几个关键因素来分析性能瓶颈问题。
4) LR性能测试过程
LR性能测试过程大家应该很熟悉了,就是计划测试,测试设计,创建VU脚本,创建测试场景,运行测试场景,分析结果的过程。
5) PTGM模型
这算是段老师的独创了,我觉得这过程模型总结的非常好。因为下面的过程就是用这种方法来描述的,所以在这就不必详细描述。
2、 以PTGM来描述测试过程
(1) 测试前准备
测试前准备主要包括两个方面;系统基础功能验证和组织测试团队。
系统功能测试一般在进行性能测试前已经得到保证,所以我们就不必考虑功能方面问题。
组织团队就是一门学问了,不是说它很难,但确实很重要,直接影响后续测试的好坏。首先我们来分析下测试团队的各种角色。
A)测试经理
测试经理是整个项目的负责人,他主要制定测试计划,监控测试进度并发现和处理测试中的风险问题。作为测试经理他需要哦计划执行和监控能力以及风险意识和风险应对能力,还有外交能力沟通能力等。
B)测试设计角色
测试设计角色主要是设计测试方案和用例,定义性能规划,识别用户的性能需求以及建立性能场景。他需要业务的把握能力和性能需求分析和识别能力。
C)测试开发角色
测试开发主要是测试脚本的开发调试以及确定测试时需要监控的性能指标,性能计数器等,需要脚本编写能力与性能指标分析能力。
D)测试执行角色
测试执行角色就是要执行测试方案和用例,用测试工具来来执行脚本,监控性能指标并记录结果。他需要搭建测试环境的能力以及测试工具的能力。
E) 测试分析角色
测试分析角色是对测试执行人员记录的结果来分析性能指标,得出测试结论。他需要掌握系统性能瓶颈知识以及常用的性能分析法。
F) 支持角色
支持角色就是指如系统工程师,网络工程师,数据库工程师等给测试过程提供支持的人。他们是网络或数据库等方面的专业人才。
所谓的组建测试团队就是要挑出合适的人来担当这些角色,在具体实施过程中可能有一人担任多项角色。
在段老师的书上还提到了测试工具需求确认以及性能预备测试两个工作。我个人认为,后者是可选,所以没谈,而测试工具觉得应该在下一个部分谈,在准备阶段应该不能确定测试工具的选择问题,也许只能确定要不要用,而做性能测试一般都需要借助测试工具,所以这里讨论也没有意义。
(2) 测试工具引入
测试工具引入阶段我们需要考虑三个问题
一,工具的选择
工具选择,比如是自己开发还是买商业软件。
二,工具应用技能培训
为了使测试活动参与者更好的完成任务,我们一般需要进行必备的培训,确保每个角色能明确自己的职责和技术技能。
三,确定工具应用过程
测试工具引入后,很有必要使整个团队对测试工具的应用范围达成共识,让大家明白工具并不时万能的,确定哪些任务需要用工具完成等问题。
(3) 测试计划
在测试计划过程我们需要进行以下活动:
一,性能测试领域分析
二,用户活动剖析
三,确定性能目标
四,制定测试时间计划
(4) 测试设计与开发
测试设计与开发阶段需要展开以下活动:
一,测试环境设计
二,测试场景设计
三,测试用例设计
四,脚本和辅助工具开发
(5) 测试执行
测试执行与管理阶段需要展开以下活动:
一,建立测试环境
二,部署测试脚本和测试场景
三,执行测试和记录结果
(6) 测试分析
测试分析主要是结合性能指标来分析测试结果。
注:因为后三个阶段结合具体的实例才可以更好的展开,所以留到提高篇来具体讲解吧:)