http://www.51testing.com,XXXX

报表 1
客户自动化测试可行性报告 XXXX客户网银资金管理系统引入自动化测试的可行性分析报告 版本:1.0 1/11
1.概述 XXXX客户自动化测试可行性报告 1.1.目的 本文档对XXXX客户网银资金管理系统项目引入自动化测试工具的可行性进行评估,为项目经理提供决策参考。
1.1范围 本文档描述了XXXX客户项目情况、现有测试工作流程、自动化测试本身的一些情况,对测试工作量进行了估算,最后对估算结果进行了分析,并依此提出了一些建议。
本文档中讨论的自动化测试工具主要是功能测试工具。
1.2术语定义 本文档涉及了几款自动化测试工具:TestManager:IBM公司的测试管理工具,属于Rational系列产品之
一。
Robot:IBM公司的性能测试工具,属于Rational系列产品之
一。
RFT:RationalFunctionTester,IBM公司的功能测试工具,属于Rational系列产品之
一。
TestDirector:Mercury公司生产的测试管理工具。
Loadrunner:Mercury公司生产的性能测试工具。
QTP:QuickTestProfessional,Mercury公司生产的功能测试工具。
1.3参考文档 2/11
2.项目介绍 XXXX客户自动化测试可行性报告 2.1.项目背景 XXXX客户网银资金管理系统,是XXXX客户为了加强银行账户管理,提高资金利用效率而开发的一套资金管理系统。
2.2.项目开发、运行环境 XXXX客户网银资金管理系统遵循的开发规范如下:�操作系统:Windows2003或者HPUnix或者SCOUnix或者AIX或者Solaris�数据库平台:Informix9.0�J2EE应用服务器:Weblogic8.1.4�开发平台:Eclipse(3.1以上版本) 2.3.项目进度 项目的预定计划如下: 序号 阶段名称 工期 开始时间 结束日期
1 需求阶段 34工作日 2006-5-10 2006-06-26
2 开发阶段 64工作日 2006-6-12 2006-9-
7 3 测试执行阶段 48工作日 2006-7-
4 2006-9-
7 2.4.项目特点分析 根据业务需求分析,业务量主要集中在银行业务数据操作,包括银行数据查询,银行业务数据变更,因为和银行的交互集中在前置机上,且银行数据量大,操作复杂,耗费时间长,所以系统在多用户并发操作时,可能存在性能瓶颈。
另外,由于XXXX客户的分支机构众多,操作人员多,数据量大,在多用户并发操作时,性能和效率会有较大影响。

3.现有测试流程 现有的测试流程按照阶段划分为测试设计阶段和测试执行阶段。
测试设计阶段的主要工作是根据业务需求说明书和系统需求说明书来设计和编写测试用例。
根据以往的经验,将测试用例划分成三个部分:�测试需求分析;�测试方案;�数据执行步骤。
3/11 XXXX客户自动化测试可行性报告 测试执行阶段的主要手段是手工测试,如果项目有性能方面的需求,再通过Mercury公司的性能测试工具LoadRunner来进行性能方面的测试。
手工测试时,要完成以下工作:�根据测试需求分析了解业务;�根据测试方案来执行测试;�根据数据库和详细设计来验证系统的具体实现;�根据测试结果补充、修正测试用例中的分析、测试方案部分。
系统上线部署之前两到三天,要进行内部的验收测试,其目的有两个:�确认系统已经准备就绪,预定功能已经实现;�即将上线部署的软件是正确的版本。
主要通过重新搭建系统环境,重建数据库表的形式来开始验收测试。
现有测试流程 输入文档 测试过程 详细说明 业务需求说明书 测试需求分析
1.划分测试用例粒度,功能分解;
2.分析被测系统;
3.分析测试重点;
4.验证可测性。
系统需求说明书 测试用例 测试方案
1.确定测试设计方法和思想;
2.为手工测试提供测试参考; 测试设计阶段 数据库设计文档 详细设计文档 指导 测试步骤 反馈 手工测试
1.详细的操作数据;
2.详细的操作步骤;
3.预计输出结果。

1.根据测试需求分析了解业务;
2.根据测试方案来执行测试;
3.根据数据库和详细设计来验证系统的具体实现。

1.根据测试结果补充、修正测试用例中的分析、测试方案部分; 验收测试
1.确认系统已经准备就绪,预定功能已经实现;
2.即将上线部署的软件是正确的版本。
测试执行阶段 4/11 XXXX客户自动化测试可行性报告
4.自动化测试简介 随着软件开发技术和工具的提高,软件工程和软件过程实践的推广,软件测试日益得到重视和专业化。
自动化测试更成为热门话题。
测试自动化就是充分利用市场已有的或自行开发的测试工具,全部或部分替代手工测试、完成手工测试无法完成的测试任务,以及相关的测试数据的记录和测试报告的生成等。
相对于手工测试而言,测试自动化通常具有速度快、执行效率高、执行过程受外界因素干扰小、测试结果准确等优点,缺点是前期投入较大,所以在采用测试自动化之前应当做好相应的评估工作。
4.1.自动化测试的目的 自动化测试的目的是通过自动执行测试脚本,使测试人员在更短的时间内能够更快地完成更多的软件测试,并提供以更高的频率执行测试的能力,从而有效降低测试成本、提高测试效率。
4.2.自动化测试的前提 自动化测试有几个前提:�测试人员的编程能力;�重用测试脚本的设计;�人机交互界面的早期冻结;�测试脚本开发的投入;�测试人员对测试工具的熟练程度。
4.3.自动化测试的优势和局限[1,2] 自动化测试的优势:�对新版本执行回归测试 对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。
�更多更频繁的测试 在回归测试阶段,如果是每天/每2天都要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,手工测试将是非常的耗时和繁琐,而且非常的枯燥,这样必然会使测试效率低下。
完善的自动化测试可以替代测试人员的手工测试。
�一致性和可重复性 由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有一致性,人是很难做到的。
由于自动化测试的一致性,很容易发现被测软件的任何改变。
5/11 XXXX客户自动化测试可行性报告 自动化测试替代手工测试的困难:�自动化测试的目的在于发现旧有缺陷,而手工测试的目的在于发现新缺陷。
事实证明新缺陷越多,自动化测试失败的几率就越大。
发现更多的新缺陷应该是手工测试的主要目的。
测试专家JamesBach总结得出,85%的缺陷靠手工发现,而自动化测试只能发现15%的缺陷。
�技术问题、组织问题、脚本维护 自动化测试的推行,有很多阻力,比如组织是否重视,是否成立这样的测试团队,是否有这样的技术水平,对于测试脚本的维护工作量也挺大的,是否值得维护等等问题都必须考虑。
4.4.自动化测试工具对比[3,4] 目前比较主流的自动化功能测试工具主要是Mercury公司的QTP、Winrunner,以及IBM 公司的RationalFunctionTester。
下面对QTP和RationalFunctionTester的功能来进行对 比: 功能指标 RationalFunctionTester QTP 用户界面 与Eclipse集成 独立的GUI 脚本语言 Java VBScript 测试Web系统 支持 支持 数据驱动 内建数据池 从Excel中获得数据 检查点 支持 支持 脚本管理工具 TestManager TestDirector 其它 支持BusinessProcessTesting (BPT) 目前,我们测试人员对QTP比较熟悉,没有使用过RationalFunctionTester。
就功能上来说,RationalFunctionTester和QTP差别不大。

5.测试工作量估算 5.1.手工测试工作量估算 手工测试工作量的估算原则:根据业务和功能的复杂程度,以及以往项目的实际数据做参考,得出测试完成一遍的工作量。
在整个项目测试周期中,测试小组会对整个系统进行两到三轮的测试(一般是必须的)。
根据以往项目的统计数据:每一轮手工测试的工作量是上一轮工作量的50%,直到达到 6/11 XXXX客户自动化测试可行性报告 临界值,即完成一轮手工测试的最小时间后,工作量不会再减小。
项目统计数据还表明:手工测试中,后期的测试工作占到全部测试工作的40%~50%。
业务功能点 测试完成的工作量(人日) 一级功能 二级功能 第一轮 第二轮 第三轮 系统管理基础设置 账户管理 资金清算资金计划资金监控 银企接口交易核对审批流 职责管理用户管理机构类型设置机构设置币种设置银行类型设置账户用途设置账户扩展属性设置业务类型设置开户处理销户处理变更处理账号升级申请冻结与解冻账户信息查询支出资金申请归集资金申请资金划拨行项目设置编制计划审批计划账户当日余额查询账户历史余额查询账户历史流水查询监控项设置监控报表和提醒银行指令查询银行指令维护自动归集策略设置 审批设置权限转移 2.0 1.0 0.5 3.0 1.5 0.8 1.0 0.5 0.3 1.0 0.5 0.3 1.0 0.5 0.3 1.0 0.5 0.3 1.5 0.8 0.4 1.0 0.5 0.3 3.0 1.5 0.8 4.0 2.0 1.0 4.0 2.0 1.0 4.0 2.0 1.0 3.0 1.5 0.8 3.0 1.5 0.8 2.0 1.0 0.5 5.0 2.5 1.3 5.0 2.5 1.3 5.0 2.5 1.3 2.0 1.0 0.5 2.0 1.0 0.5 2.0 1.0 0.5 2.0 1.0 0.5 2.0 1.0 0.5 2.0 1.0 0.5 5.0 2.5 1.3 3.0 1.5 0.8 5.0 2.5 1.3 5.0 2.5 1.3 5.0 2.5 1.3 5.0 2.5 1.3 4.0 2.0 1.0 4.0 2.0 1.0 每轮合计工作量(人日):
用户手册验收测试 97.5 48.8 24.45.0 12.0 7/11 XXXX客户自动化测试可行性报告 手工测试合计工作量: 187.6人日 按照4个测试资源计算,手工测试完成共需消耗187.6/4=46.9个工作日。
与预定计划 的48个工作日的测试周期接近。
后期的测试工作占测试工作的45%左右。
指标 数值 估算测试工作量测试资源估算测试工作日计划测试工作日后期测试工作量比例 187.6人日4人 187.6/4=46.9日48日 (48.8+24.4+12)/187.6=45% 对手工测试的工作量估算没有考虑开发进度delay的因素。
一旦开发进度delay,则第
3 轮手工测试将无法完成,只能把优先级别较高的功能测试完成。
开发进度delay的原因很大 一部分来自需求变更。
5.2.引入自动化测试后工作量估算 引入自动化测试工具后,手工测试的主要工作量将主要集中在第一轮测试,而自动化测 试脚本也根据被测试功能和业务的复杂程度不同而不同。
根据下表的统计数据,在自动化测试中采用数据驱动的方式,投入产出比比较合适。
结构 成本 收益
净收益 NoAutomationRecordingandPlaybackData-drivenstructureusingdatapoolsFrameworkstructureFramework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools 08.38.4 9.811.6
0 0 11 2.7 18 9.6 15 5.2 19 7.4 根据业内的统计数据,手工测试与自动化测试脚本编写的工作量比例约为3:
7,在不考 虑需求变更的情况下,测试脚本的维护工作量为建立脚本工作量的10~20%,在估算时, 取中间值15%。
引入自动化测试后工作量估算为: 一级功能系统管理 基础设置 业务功能点二级功能 职责管理用户管理机构类型设置机构设置 测试完成的工作量(人日) 手工测试自动化脚本脚本维护 2.0 4.7 0.7 3.0 7.0 1.1 1.0 2.3 0.4 1.0 2.3 0.4 8/11 账户管理 资金清算资金计划资金监控 银企接口交易核对审批流 币种设置银行类型设置账户用途设置账户扩展属性设置业务类型设置开户处理销户处理变更处理账号升级申请冻结与解冻账户信息查询支出资金申请归集资金申请资金划拨行项目设置编制计划审批计划账户当日余额查询账户历史余额查询账户历史流水查询监控项设置监控报表和提醒银行指令查询银行指令维护自动归集策略设置 审批设置权限转移 XXXX客户自动化测试可行性报告 1.0 2.3 0.4 1.0 2.3 0.4 1.5 3.5 0.5 1.0 2.3 0.4 3.0 7.0 1.1 4.0 9.3 1.4 4.0 9.3 1.4 4.0 9.3 1.4 3.0 7.0 1.1 3.0 7.0 1.1 2.0 4.7 0.7 5.0 11.7 1.8 5.0 11.7 1.8 5.0 11.7 1.8 2.0 4.7 0.7 2.0 4.7 0.7 2.0 4.7 0.7 2.0 4.7 0.7 2.0 4.7 0.7 2.0 4.7 0.7 5.0 11.7 1.8 3.0 7.0 1.1 5.0 11.7 1.8 5.0 11.7 1.8 5.0 11.7 1.8 5.0 11.7 1.8 4.0 9.3 1.4 4.0 9.3 1.4 每项合计工作量(人日):
用户手册验收测试 合计工作量: 97.5 227.5 34.15.04.0368.1人日 在使用了自动化测试工具以后,验收测试只需要搭建环境和数据初始化,效率提高了, 测试工作量减小到4人日。
计划的测试资源为4个,计划的测试工作日为48日,故计划工作量为192人日。
在未引入自动化测试工具以前,第二轮和第三轮及验收测试的工作量合计为 (48.8+24.4+12)=85.2人日,引入自动化测试以后,后期的测试工作量为 (227.5+34.1+4)=256.6人日。
指标 公式 数值 9/11 XXXX客户自动化测试可行性报告 计划测试工作日计划测试资源计划测试工作总量替代的手工测试工作量估算自动化测试工作量估算测试工作总量估算测试工作日估算测试周期 48*448.8+24.4+12227.5+34.1+4 368.1/4 48日4人192人日85.2人日265.6人日368.1人日92日2006年7月4日-2006年11月8日 上表的数据表明,实施自动化测试,在最好的情况下(不考虑学习曲线和需求变更), 估算测试周期为2006年7月4日~2006年11月8日,比预定计划的项目开发完成时间晚 2个月。
5.3.学习曲线、需求变更对工作量的影响 根据项目管理的相关理论,学习曲线和需求变更将分别会增加30%的工作量,考虑到对 测试工具的了解程度,QTP的学习成本会少一些,估计为10%,FunctionTester的学习成 本将为30%。
估算测试工作量为: 指标 没有需求变更 公式 数值 手工测试估算工作 187.6人日 量 使用自动化QTP97.5+265.6*394.7人日 工具估算测 (1+10%)+
5 试工作量 RFT97.5+265.6* 447.8日 (1+30%)+
5 估算测试工QTP384.8/4 98.7日 作日 RFT436.1/4 111.9日 估算测试周QTP 2006年7月4日~ 期 2006年11月17日 RFT 2006年7月4日~ 2006年12月6日 有需求变更公式187.6*(1+30%) 数值243.9人日 97.5*1.3+265.6 502.6人日 *1.4+
4 97.5*1.3+265.6 556.7人日 *1.6+
5 490/4 125.6日 542.3/4 139.2日 2006年7月4日~ 2006年12月26日 2006年7月4日~ 2007年1月15日 上表的估算数据表明,实施自动化测试,在最坏情况下(考虑学习曲线和需求变更), 估算测试工作日为139.2日,测试周期为2006年7月4日~2007年1月15日,比预定计 划的开发完成时间晚4个月。

6.分析和建议 对测试工作量的估算表明,在不考虑学习曲线和需求变更的情况下,使用自动化测试工具的估算工作量为手工测试工作量的两倍。
10/11 XXXX客户自动化测试可行性报告 如果XXXX客户希望在系统上线后,能够自己维护BBBB公司提供的自动化测试脚本,项目组的测试人员的工作量将为手工测试的3~4倍。
另外,行业经验,自动化测试工程师的成本约为普通测试工程师的两倍。
经过项目组讨论,有以下三个建议:建议一:本项目暂只实行手工测试。
为保证计划的上线时间――9月7日,在本项目中不施行自动化测试,仍然使用传统手工测试。
建议二:自动化测试分段实施。
7月到9月施行手工测试,保证项目进度和质量。
9月到明年1月实施自动化测试,项目上线延迟到明年1月份。
建议三:对自动化测试只做试用的尝试。
如果XXXX客户客户希望最终能够获得一份Robot的试用报告,测试人员可以在项目测试中对一到两个功能做自动化的尝试,估算比计划的项目上线日期推迟10天左右。
即项目的上线时间为2006年9月16日。

7.参考资料
1.《软件工程》王长元李普惠等编著。

2.《测试员》电子期刊200504期《软件测试管理》主编:陈绍英
3.IBMRationalFunctionalTester工具帮助
4.Rational完成自动化功能测试宁德军(IBM中国有限公司软件部Rational高级技 术专员) 11/11

标签: #程序 #常用 #固态 #文件格式 #投标文件 #管理软件 #都有哪些 #东西