目录

  1. 1.概述………………………………………………………………………………………………………………… 3
  2. 2.测试体系搭建思路……………………………………………………………………………………………… 4

2.1测试体系的要素………………………………………………………………………………………….. 4

2.2构建测试体系的步骤……………………………………………………………………………………. 7

  1. 3.先验项目的实施方案…………………………………………………………………………………………… 9

3.1先验项目的范围………………………………………………………………………………………….. 9

3.2实施的思路………………………………………………………………………………………………. 10

3.2.1 手工测试评估…………………………………………………………………………………. 10

3.2.2自动化测试的思路和评估…………………………………………………………………… 11

3.2.3自动化实施流程……………………………………………………………………………….. 11

3.3机具自动化的实施方案……………………………………………………………………………….. 13

3.3.1机具自动化方案……………………………………………………………………………….. 13

3.3.2恒天的自动化框架介绍……………………………………………………………………… 15

1.    概述 

现今商业银行业务的发展对于银行软件有了更高的要求,尤其是软件的质量直接关乎商业银行的竞争力,因此对于每个商业银行构建软件测试能力,从而提升软件研发的质量水平、确保上线的系统正确性和稳定性,是一件十分有价值的工作。

根据云南农信社的需求,本方案将基于如何构建测试体系进行阐述,主要包括:

(1)测试体系的要素

(2)构建测试体系的实施步骤

(3)先验项目测试的实施方案

2.    测试体系搭建思路

2.1测试体系的要素

测试体系基本要素包括测试组织架构、测试流程规范、测试的技术方法、测试的支持工具、测试的资产管理、测试的团队建设等多方面内容。

1)测试组织架构:即在企业中,需要有明确的部门或者人员负责测试相关的事务,同时定义相关的角色和职责。

例如测试中心,或者质量安全科的专员,又或者技术部门指派的测试负责人。

2)测试流程规范:基于测试的各项工作,有配套的流程规范指导和帮助各个角色成员,顺利实施各项任务。

典型的流程规范包括,但不限于:

(1)测试生命周期定义,即描述测试计划、测试设计、测试执行、测试提交各个阶段的各项活动和提交物,是测试工作的核心内容。

(2)缺陷跟踪流程,定义缺陷从发现开始直至关闭的各个状态、缺陷的分类、相关人员的活动等,是测试工作的重要内容。

(3)测试准入规范,定义进入到测试环节前的开发提交的标准,是测试可以顺利实施的一大前提。

例如:

–业务需求完整明确,且需求文档得到确认

–项目计划(含开发和测试)得到确认

–设计文档评审通过

–单元测试按计划完成

–可执行代码准备就绪

–待测版本通过冒烟测试

–测试环境准备完毕

–测试用例设计完成并评审通过

–测试人员准备就绪

(4)提交测试流程,定义开发提交给测试团队进行测试所需的信息和要完成的工作,包含代码版本编号规范、各级人员的审批要求、各版本代码包含的内容要求(需求功能层面)、部署手册等。

(5)配置管理规范,用以配合代码的管理、测试版本的部署以及测试资产的管理。

3)测试的技术方法:各类测试各个环节所要用到的技术和方法。

从类别来分,包括测试分析技术、自动化测试技术、性能测试技术、安全性测试等。

从流程上看,包含了测试计划的方法和模板、测试用例设计的方法和模板、测试结果分析的方法和测试报告的模板等。

4)测试支持的工具:选用合适的工具用以支持企业测试管理、测试实施和软件质量分析,可以自行研发,也可以采购。

测试相关的工具从分类上看,大致包括:测试设计和执行管理工具、缺陷管理工具、自动化测试工具、性能测试工具、安全测试工具、单元测试工具、集成测试工具、配置管理工具等。

5)测试资产的管理:有效地管理测试各个阶段产生的文档、测试数据、代码、脚本、工具等。

其中文档类的资产至少包括测试需求、测试计划、测试用例文档、文档化的测试数据、缺陷分析报告、测试报告的各类模板和实际提交物等

6)测试的团队建设:根据企业自身的测试建设思路,培养和建设测试团队,从而具备实施各块测试职能的能力。

2.2构建测试体系的步骤

构建测试体系是一项漫长的系统化的工程,因为

其一、整个测试体系本身相对复杂,拥有较深的内涵和很广的外延;

其二、每个企业有自身的特点,构建过程需要考虑实际情况,并进行相应的调整;

其三、测试体系的搭建会改变企业中原有机构和个人的一些行为习惯,会给现状带来一定的冲击,因而会受到一定的阻力。

因此,我们的思路是通过先验项目入手,通过功能测试和自动化测试项目的实践来逐步让测试为人所接受,从最核心的流程入手构建初步的测试体系,随后基于核心测试体系拓展成为较为完整的测试能力中心。

大致的步骤如下:

1)挑选先验项目,进行手工测试和自动化测试的实施。通过项目的实施,最直接的情况是农信社的项目经过测试后,软件质量更加有保障。

而从体系建设角度,一方面可以加深恒天对于农信社组织结构、开发流程、系统情况、人员情况的了解,对于测试体系的定制起到深度调研的作用;另一方面,农信社技术团队可以了解测试的内涵,逐步接受测试,并且适应与测试人员的合作,有助于体系建设的落地实施。

2)在先验项目实施成功的基础上,根据掌握和沟通的情况,设定初步测试体系建设的方案,包括

3)挑选和定制测试流程规范;

4)挑选要建设的测试技术能力目标,包括范围、深度以及团队构成;

5)挑选合适的测试支持工具;

6)形成资产管理的规范。

7)在初步建成的测试体系基础上,结合农信项目的需要和企业的目标逐步拓展,甚至形成具备一定规模的测试中心,内容包括但不限于:

(1)流程的扩展和深入;

(2)测试技术平台的构建;

(3)测试管理平台的构建;

(4)质量管理平台的构建。

3.    项目的实施方案

3.1项目的范围

根据云南农信社目前项目情况,主要包括以下及方面需求:

1.目前农信进行大范围进行机具类更新及应用,测试及自动化将以机具类为主,机具类主要包括: ATM,CRS,BST,发卡机,惠农终端,预填单机,回单机等;要求尽可能地能够实现机具上的自动化,对各类机具系统部署实现自动化验证。

2.对电子银行类进行POC,提供自动化可行性及有效性基础,对以后类似Web项目采用自动化提供依据

3.辅助建立测试体系,并为农信提供QTP及AML在体系中的应用及使用培训

3.2实施的思路

3.2.1 手工测试评估

对于未上线的软件系统一般以先实施手工测试、再酌情开展自动化测试为宜。

这样会有几个好处:

(1)未上线系统处于研发阶段,改动和缺陷较多,手工测试可以更加敏捷和高效,从而实现快速发现、验证缺陷,保证系统按期上线的。

(2)手工测试环节中,会进行测试案例的设计和对系统功能的深入研究,对于自动化测试而言价值很大,同时自动化测试的案例场景可以直接引用手工测试设计的案例场景。

(3)当前的自动化测试大都应用于成型系统的回归测试,因为这样的策略可以使自动化本身的成本更低。

针对农信的各类机具,如果采用系统化的手工测试的工作量大致如下:

capture1备注:

(1)提交物包括:测试计划、测试案例、测试结果、缺陷列表、测试报告等。

(2)计划进行3轮的测试执行

3.2.2自动化测试的思路和评估

根据银行的需要,某些情况下也可以直接进行自动化测试的实施。基于自动化测试的特点,在实施方面有以下几个建议:

(1)自动化测试的一次性投入较大,长期维护的系统才有自动化的价值,一次性的项目或者几乎不改动的项目则性价比不高。

(2)处于频繁改动阶段的系统不适合自动化,自动化测试比较大的用途在于回归测试,太频繁的系统改动会导致自动化的脚本不停修改,从而使得维护工作量大增,浪费人力物力。

(3)自动化测试的实施周期相比手工测试会更长,上线时间比较紧的系统不宜采用自动化测试。

(4)实现技术代价大或者依赖大的系统不适合自动化,包括采用特殊的(封闭的)框架和技术构建的系统、对外设依赖很大的系统、需要不停人工干预的系统等。

3.2.3自动化实施流程

结合测试体系建设的需要,在自动化实施过程中将按照如下流程进行,以便检验测试流程的可实施性:

capture2

3.3自动化的实施方案

机具和网银POC,都皆为Web系统,针对Web类的系统:

1.在界面测试自动化上:可以选用目前业界较普遍的QTP做为平台,并开发相关公共函数库对各类通用功能进行支持;

2.在接口及后台测试上:可选用JMeter和Selenium对各类请求进行处理,实现对接口的功能测试

3.3.1机具自动化方案

机具类系统主要以Web为主,同时需要与各类模块相交互,包括读卡器(磁条卡&IC卡),验钞模块,出钞模块,密码键盘,凭条打印,日志打印,身份证识别器,指纹识别器等8个模块,目标为验证前端系统与机具各模块以及后台交互的正确性及可靠性。

由于涉及机具模块需要人机交互较多,对于机具类测试,建议以手工测试为主,自动化测试为辅的策略。

在机具类自动化测试上可以分两方面进行:

1.前端自动化测试,使用PC机部署机具客户端并辅以模块仿真(模拟人机信息交互)进行自动化;

2.接口自动化测试,可以在机具或PC上部署脚本自动发送服务端进行测试验证。

大体架构如下图:

capture3

基于以上两方面,对整体自动化项目进行评估,大体工作量如下:

capture4capture5注:

1.工作量中考虑到脚本开发过程中的更新维护以及模块仿真可能需要进行的维护。

2.如脚本间可以重用,工作量会大大减少

电子银行自动化POC

针对电子银行部分交易实现自动化,为往后项目自动话应用提供依据,选择个人网银中账户管理及转帐汇款两个模块进行自动化POC,具体工作量如下:

capture6

3.3.2恒天的自动化框架介绍

针对Web自动化,目前恒天有两个比较成熟的自动化框架,包括以QTP为驱动工具的自动化框架和以开源工具Selenium为基础开发的自动化框架,可以有效的纳入到此次的自动化工作中。

1)基于QTP的自动化框架

 capture7

QTP自动化测试框架主要分成数据层、用例层、提取层和对象层,具体如下:

(1)数据层:所有的测试数据都存放在Access文件里面,脚本直接访问Access得到数据,可以方便实现脚本之间的数据共享;

(2)用例层:通俗地讲,该层就是实现测试用例功能的地方。根据不同的测试用例,会在这里新建不同的测试脚本,通常会根据测试用例的测试点来实现自动化测试。通常遵循的开发脚本的策略是一个测试用例一个测试脚本;

(3)提取层:用于存放项目通用函数方法,通常会把项目一些共用的函数放在此层。比如登录前台这个功能,我们就可以做成一个共用函数,在几乎所有交易中都会用到,还有报表处理、异常处理、日志记录等;

(4)对象层:对象库在整个自动化测试工作中占据非常重要的地位。在脚本开发的过程中我们对所有脚本开发人员的个人对象库每天进行收集共享,形成一个总的项目对象库,使得不同脚本开发人员开发的脚本,在共享了项目对象库的机器上都能执行。

2)Selenium 框架

对于Web自动化,目前业界开源工具中selenium应用较广而且相对支持较好,基于此工具,我公司也开发了一套对应的框架,具体如下:

capture8(1)基础测试用例:包括被测系统的登录、导航、登出等基础功能的实现;

(2)测试驱动:作为Selenium框架的核心,我们通过测试驱动来调用测试数据,测试对象,测试报表以及其他功能模块;

(3)对象库:通过Selenium IDE对web界面上的元素进行捕获,封装后以XML的文件格式进行保存;

(4)测试报表:对TestNG的XML文件进行配置,实现输出日志的级别自定义并生成相应的测试报告;

(5)测试数据:这里测试数据分两块,一是驱动测试用例的执行列表集合,二是每个测试用例的底层测试数据;

(6)通用函数库:包括文件读取、字符串验证、异常处理等其它通用函数。

 

 

联系我们
中国 0571-88270208 美国 +1-857-239-9658