论基于QTP的金融软件自动化测试框架.docx
《论基于QTP的金融软件自动化测试框架.docx》由会员分享,可在线阅读,更多相关《论基于QTP的金融软件自动化测试框架.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于QTP的金融软件自动化测试框架何谓自动化测试框架呢?我认为它就是一个关于自动化测试总体设计规划和一个关于设计细节的规范,同时我认为自动化测试框架至少应该包含下面三个部分:测试工具使用规范、业务功能模块分解、测试数据分离与管理。图1.自动化测试框架草图下面分别对这三个方面进行简单的阐述,不只针对回归测试,大家可以把系统测试也考虑进去,希望能起到抛砖引玉的作用。我呢,经验不多参加工作才一年,可能有些看法比较偏颇或者错误,希望大家不吝指教。 测试工具使用规范 先谈谈规范化的必要性(引用来源51Testing)脚本的生成方式就两种,一种是自写脚本,一种是录制生成。脚本不管录制也好,还是手写也好,选
2、择的时候应该以脚本模拟程序真实有效为准,结合项目进度,开发难易程度等因素考虑。而脚本的开发也需要符合一种规范,也可以说是一种习惯,因为脚本不只是开发者一个人看,测试执行人员也需要看,这就要求可读性和可维护性提高;故而开发时应该考虑这层因素,规范一下。综合起来可以得到以下结论:1. 手写可读性好,流程清晰,检查点截取含义明确。业务级的代码读起来总比协议级的代码更易让人理解,手写可能花费更多时间,但是也更容易维护,必要时可建立一个脚本库。而录制生成的代码大多没有维护的价值,现炒现卖。2. 其次,业务逻辑稍微复杂一点的系统单凭录制是不可能检查到绝大部分异常的,只有手工书写的时候边写边思考可能会发生哪
3、些异常,才能使脚本更具逻辑性、完整性和健壮性,给业务流程控制提供一个好的依据。 其次是如何做,做些什么规范1. 在做框架设计定义的时候,需要定义好代码规范,如变量名称定义规则、注释规则、变量声明规范、循环时间和次数上限、等待时间的处理方法、单个Action和脚本的大小限制等等,这些都是同C/C+、JAVA等程序员写代码的要求如出一辙,规范就是为了方便统一管理。2. 工具应用规范的制定,如:对象库管理方式、关联的驱动脚本和批处理、测试工具的设置(如Active Screen,Run mode等)、测试结果存放分析、数据源管理维护、场景错误恢复和资源、环境定义等等。3. 并不是所有进行自动化测试的
4、人员技术和经验都在一个层次上,所以在设计框架的时候需要对于一些疑难或者可能会出现麻烦的地方事先进行说明或者做出培训计划。这是风险规避的一条途径。4. 明确测试目标,规定对数据检查的程度和测试目的,FAT、ST还是UAT,否则在UAT阶段仔细校验数据,工作量就非常大了,当然如果有ST测试的脚本基础倒是也不会花很多工夫,只是有些公司用QTP都是单只做UAT的。对象库集中管理,为同一系统所有脚本提供共享库抑或不共享,这是8.2以前留下的习惯,其实在9.0、9.2来说也是可以考虑的。 测试脚本存储和运行管理有时候,我们没有(公司没有提供)QC/TD来管理我们的自动化测试(当然其他的自动化测试管理工具我
5、也没有见过、用过,就以QC/TD为例吧),而有时候我们拥有管理工具却缺少必要的主策略和网络协议(可能会出现这种情况吧),这就导致了QTP自动化测试管理的多样性;当然多数情况下,用得起QTP的也是能用得起QC/TD的,呵呵。1. 有QC/TD作为我们的测试脚本存储和运行管理(抛开需求和缺陷管理不说)的时候,我们的自动化测试流程管理显得简单的多。脚本编写、存储、测试实验室业务流程的建立、测试执行和结果分析等等。一般情况下,这些规则之需要简单的口述即可,当然一定需要阐明的话也是很简单的,只是需要结合我们要说的其他几个部分来叙述,这里不再赘述。2. 对于没有QC/TD的情况,可能大家见过很多管理方式,
6、类如FTP、共享磁盘等等;一个共同的要点就是“共享”。如果一个系统或项目有多个自动化脚本设计者协同工作,而大家各自为战把脚本存储在自己的私人空间里就会产生很不好的效果。因为整个系统的测试被割裂,很多需要关联的业务流程就无法组合,尤其对于金融软件来说,功能测试也好、回归测试也好,这样自动化就成了一个摆设:它无法覆盖很多的关联性很强的业务流程。其次,在本地空间存储有一个潜在的安全隐患,因为可能由于误操作或者磁盘的损坏导致一个月的工作付诸东流。而共享服务目录和FTP器一般都是相对比较稳定的。最后,本地测试执行要覆盖不同的业务流程一般需要使用一个驱动脚本,由它来指引流程的走向,负责数据文件的获取并且完
7、成测试结果的定点存放。这个脚本一般可能都比较喜欢用VBS吧(我见到的都是)。3. 本地存储,QC/TD上执行是行不通的,想法也很愚昧,呵呵;而在QC/TD上存储、拿到本地执行也许是一种变通的法子,可以解决局域网网络协议和安全策略对QC/TD的封杀;但是在网络协议和安全策略正常的情况下,这种方法也是不可取的,因为这样远没有QC/TD管理起来方便。非要这么做的只有一种可能:那就是QC/TD只是作为存储工具,浪费啊,呵呵;坚持这种做法的大约会是很老的前辈了,因为以往QC/TD和QTP的功能没有像现在9.0、9.2这么全面,要求很高的技术,这些前辈在这种条件下练就一身好技术,有了技术当然可以和测试管理
8、工具抗衡了,呵呵,不知道怎么表达,反正没有笑话的意思,表见怪哈。其实无论使用共享磁盘管理还是使用QC/TD管理都是可以的,只是QC/TD提供了一种比较省事的方法而已,当然,代价是昂贵的license,在本地运行管理相对来说需要更强的技术和更为细致的规划设计,二者效果是一样的。 业务功能模块划分熟悉一个应用系统的业务流程是非常关键的,因这为不仅在方法上给我们带来很大的便利,而且从根本上将,我们做自动化(回归)测试,多数都是为了某些个系统核心业务的完整性和正确性作保证,这当然要求我们精通“业务”。明确一个较为庞大的业务系统的业务流程不是件容易的事情,在多数情况下需要将精通的业务的同事拉进来参与我们
9、的流程制定、选取和覆盖设计。对业务模块的精确划分是我们完成一份高效的自动化测试的良好基础,否则,我们的自动化可能为杂乱无章,甚至徒劳无功。那么业务模块划分的准则和依据到底是什么呢?不同的系统有着不同的标准,下面饮用一个案例对金融系统做个粗略的介绍。对金融系统来说,我们进行业务分解和设计业务流程的时候需要做如下要求:1. 较为模块化的设计,避免重复的脚本,减少建立或维护脚本的成本。 2. 在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件功能变动时,只需要修改业务功能脚本。 3. 由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测
10、试个案。 4. 测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或 Excel 文件,测试人员可以更容易修改与维护。 5. 加强错误处理合结果分析判断,让脚本更有弹性。 当然这样做也会带来一定的额外开销,但是这些都是必须的,自动化本身就是需要结合良好的管理以牺牲人力成本来赢得时间的,针对一些缺点我做一下简单的注释:1. 在编写业务功能脚本时,需要精通测试工具脚本语言的工程师:其实很多公司都有实力寻找这样的人,因为VBS本身相对比较简单,虽然自动化测试还没有在整个中国全面兴起,但是有着丰富自动化测试经验的测试人员已经非常多了。2. 每个Action都会有自己的输入输出参数,需要用
11、文档统一维护,控制变更:这的确增加了一些工作量,但是对测试本身的规范来说,是一大进步。3. 测试人员除了要维护测试计划之外,还要另外维护数据文件:同上。4. 对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。 这个分解结果来自51Testing上的一位同仁,我在做完兴业银行自动化之后做总结的时候无意发现了这段话,猿粪哪!与我的想法不谋而和,呵呵,所以当时就Copy下来了,并非有意剽窃,如果侵犯了这位仁兄,敬请原谅!这里修改了一些地方,我觉得这是金融尤其是银行业务分解的一个经典,也算是一个不大不小的标准吧,可能并不能适用于所有系统,但是对银行来说,还是很实用的。下面以兴业银行交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 QTP 金融 软件 自动化 测试 框架
限制150内