x行自动化测试实施方案
上海x综合前端自动化
测试方案
上海x计算机系统工程有限公司
20##年6月
目 录
1 概述................................................................................................................. 3
1.1 测试目的.................................................................................................... 3
1.2 测试范围.................................................................................................... 3
2 测试实施方案................................................................................................ 6
2.1 自动化框架的重要性................................................................................ 6
2.2 自动化框架的特点.................................................................................... 7
2.3 自动化框架拆解........................................................................................ 7
2.4 自动化框架结构说明................................................................................ 8
2.5 自动化数据组织说明.............................................................................. 11
2.6 准入检查.................................................................................................. 11
2.7 准出标准.................................................................................................. 11
2.8 测试数据环境与脚本管理...................................................................... 12
2.9 环境部署.................................................................................................. 12
2.10 自动化测试阶段划分........................................................................... 13
2.11 自动化实施管理建议........................................................................... 13
2.11.1 实施策略建议.................................................................................. 13
3 自动化测试交付物...................................................................................... 14
1 概述
1.1 测试目的
为了配合上海x新一代系统快速完成回归测试,特引入自动化测试;从而建立起一套自动化测试工作流程和方法论,创建自动化工具使用规范,提升测试人员工作水平,以便有序、有效的开展和管理自动化测试工作。
本次自动化测试的主要目的是通过功能自动化测试工具QTP(行方提供)来验证综合前端系统核心账务的相关交易进行功能测试、回归测试等工作,从而缩减测试人员投入,降低项目投入成本。
1.2 测试范围
本次自动化测试计划覆盖核心账务交易的存款和贷款交易,交易列表如下:
2 测试实施方案
BANCS综合前端系统是柜员操作BANCS系统的“接口”,发起BANCS交易的“门户”。自动化测试是通过模拟柜员的操作进行的测试,根据实际返回信息判断交易的成功和失败。测试工作实施过程如下:
综合前端自动化测试流程图
2.1 自动化框架的重要性
自动化测试框架就是有规范地对整个自动化测试过程中的脚本、对象库、函数库、场景恢复、测试数据、测试结果等进行管理。当需求变化时,脚本受到最小的影响,用最少的资源完成最多的任务。更准确地说,自动化测试框架是一组自动测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合,可用于减少冗余代码,提高代码生产率,提高代码重用性和可维护性。自动化测试框架的出现表明软件测试自动化技术正在趋于成熟,弥补了简单录制回放和脚本工具的不足,使得自动化测试更加有序和有效,便于实现和维护,从而让开发和维护脚本的时间越来越少,更多的时间可用于关注测试的覆盖范围和提高测试质量,在自动化上的投资也能够更快地得到证明。
2.2 自动化框架的特点
综合前端系统所采用的自动测试框架是以QTP为基础,通过二次开发,以数据驱动自动化测试的方式来实现的,其中数据包括控制数据和测试数据,通过控制数据来控制自动化测试脚本执行的流程和动作,便捷地配置测试内容。数据驱动框架的具体特点为:
² 对QTP进行封装,提供简易操作方案;
² 数据层、业务层、脚本层,层层分离;
² 并行开发,提高效率 ;
² 量身订做数据矩阵模型(输入,输出);
² 按交易名称/交易码作为标识,调用脚本进行装载;
² 以测试用例为最小单位,提供三个级别组合测试方案,可灵活进行配置 。
2.3 自动化框架拆解
自动化测试框架采用数据驱动测试,业务层、脚本层相互分离的架构,按照BANCS综合前端业务需求整理测试数据,自动化脚本模拟交易操作的方式,进行自动化测试工作。
对于AUT测试环境的测试,框架实现测试用例和测试数据的装载、运行,测试用例实现业务规则,脚本进行实现步骤操作并校验测试实际结果是否符合预期。
测试的业务功能取自于BANCS综合前端系统的需求分析,自动化执行按交易名称/交易码作为标识,调用脚本进行装载。
综合前端自动化测试框架图
2.4 自动化框架结构说明
n TestSet驱动测试
² Test Set采用excel的形式描述测试过程
² 配置测试执行顺序,级别
² 标识符标识本次是否执行
TestSet文件
n TestCase驱动脚本
² Test case采用Excel,记录测试流程,输入,输出数据,统一进行管理
² Test case文档结构图
文档结构图
n Test case文件-输入- Loan
² 配置业务流程(脚本执行顺序)
² 对应执行数据ID
² 根据标示符标示是否执行
输入-loan
n Test case文件-输入-测试用例
² 测试用例表以交易名称(脚本名称)命名
² 标示测试用例名称及数据ID,与脚本中参数名对应
² 数据,根据数据矩阵中变量名进行填充
输入-测试用例
n Test case文件-输入- Data
² 测试交易数据以变量的形式,形成的数据矩阵
² 根据用例性质进行正、反区分
输入-data
n Task脚本
² 加载测试用例、数据
² 模拟柜员操作
² 校验交易返回信息,判断交易成功、失败
² 生成执行报告
n 库函数
² 脚本以及框架应用函数,执行指定的任务。
2.5 自动化数据组织说明
数据驱动业务用例,通过组织TestSet、Testcase数据文件实现。
测试用例数据矩阵中包括有三部分数据,第一部分为驱动测试用例(交易)执行的数据;另一部分为测试交易使用的业务测试数据(测试用例sheet);第三部分为输出结果校验数据(检查点)。
2.6 准入检查
准入检查机制是测试管理中的重要的环节,同时对于实现自动化测试方案中,更是一个重要的机制。准入检查对被测系统的版本、系统功能开发的稳定性等都能够有效验证,保证了自动化测试的顺利执行,同时也减少了自动化测试脚本的维护工作量。
准入检查的内容和方式:
² 被测版本静态检查:通过静态检查被测版本的文件、部署安装是否正确。
² 被测系统版本验证:通过运行覆盖主要业务功能的脚本案例执行的成功率判断被测系统可否进入自动化测试。
2.7 准出标准
测试完成后,需要对测试执行的效果进行评估,自动化测试的完成标准有:
² 测试的完备性,测试过程中已经成功执行了所有的测试用例,对新增的用例是否已及时更新测试方案等;
² 测试问题全部解决,除数据质量问题外所有测试问题报告全部解决并处于关闭状态;
² 功能覆盖率的完备性,系统提供的功能,达到需求分析和功能实现报告的要求;
2.8 测试数据环境与脚本管理
脚本将测试数据参数化(以测试用例中的属性名一致),数据参数与测试脚本相对应,在测试脚本中可以调用这些数据参数,实现同一个脚本可以针对不同的数据执行多遍。可以根据参数的设置实现测试业务流程的多个分支。
测试数据与脚本的关系:
² 把自动测试脚本运行所用到的数据以参数取代,脚本运行时从参数表(数据矩阵)取数据;
² 将数据与脚本分离,便于对数据和脚本的维护管理,便于更新数据以适应新的测试;
² 脚本中的取值参数化,增强脚本的复用度;
测试脚本参数化的实现步骤:
² 定义数据表参数;
² 在数据表中建立数据参数值;
² 修改受参数化影响的测试步骤的脚本;
² 运行脚本,调试建立的参数和修改的脚本。
2.9 环境部署
功能自动化测试环境包括:自动化工具、缺陷管理工具、测试案例管理工具、持续集成工具的协同环境。在该方案中建议的自动化测试工具及其主要功能有:
2.10 自动化测试阶段划分
根据实施策略,实施的总体阶段分为计划准备阶段、环境搭建和准备阶段、测试需求阶段、测试脚本开发阶段、测试执行阶段、测试分析总结阶段,实施描述具体的实施计划:
2.11 自动化实施管理建议
2.11.1 实施策略建议
考虑到综合前端系统的特点和自动化测试的适用性,对测试中心功能自动化测试实施策略有如下建议:
² 先易后难:
选择的实施对象尽量操作简单或对目前的系统影响不大的交易,这样可以减少实施风险,避免对核心系统或其他系统造成进度等影响;
² 选择稳定的功能:
自动化测试如果对功能不稳定的系统,会造成测试脚本的维护工作量比较大,自动化测试会被异常中止的情况;
² 逐步完善:
自动化测试体系不仅仅包括测试脚本的录制编写和执行,还包括测试数据环境、测试脚本库、测试工具的集成等工作,需要逐步完善整个自动化测试体系。
3 自动化测试交付物
感谢您使用本店文档 您的满意是我们的永恒的追求! (本句可删)
------------------------------------------------------------------------------------------------------------
第二篇:什么是自动化测试
什么是自动化测试
1. 概述
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
2. 前提条件
实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:
1) 软件需求变动不频繁
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
2) 项目周期足够长
自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
3) 自动化测试脚本可重复使用
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。
3. 适用场合
通常适合于软件测试自动化的场合:
(1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;
(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化
工具;
(3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性;
(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖;
4. 过程
自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。
5. 脚本的编写与执行
该编写过程便是具体的测试用例的脚本转化。初学的自动化测试人员均会使用录制脚本到修改脚本的过程。但专业化的建议是以录制为参考,以编写脚本为主要行为,以避免录制脚本带来的冗余、公用元素的不可调用、脚本的调试复杂等问题。
当每一个测试用例所形成的脚本通过测试后,并不意味着执行多个甚至所有的测试用例就不会出错。输入数据以及测试环境的改变,都会导致测试结果受到影响甚至失败。而如果只是一个个执行测试用例,也仅能被称作是半自动化测试,这会极大的影响自动化测试的效率,甚至不能满足夜间自动执行的特殊要求。
6. 自动化测试局限性
测试自动化可以带来非常明显的收益,但也有以下限制:
●不能取代手工测试
●手工测试比自动测试发现的缺陷更多
●对测试质量的依赖性极大
●测试自动化不能提高有效性
●测试自动化可能会制约软件开发。
●工具本身并无想象力
自动化测试引入的原因是就把软件测试人员从枯燥乏味的机械性手工测试劳动中解放出来,以自动化测试工具取而代之,使测试人员的精力真正花在提高软件产品质量本身。尽管自动化测试可以降低人工测试的工作量,但并不能完全取代手工测试,一味追求测试自动化只会给企业带来运作成本的急剧上升。
7. 总结
目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想。