信贷系统自动化测试框架的设计与实现

 2021-12-08 17:18:03

论文总字数:25247字

摘 要

信贷系统服务的江苏省小贷公司是经江苏省人民政府金融工作办公室批准的,面向“三农”和中小企业发放贷款和提供担保的新型经济组织。江苏省小额贷款公司以前使用自己开发的信贷系统,平均每个小贷公司每年的系统维护费用在15万以上,且规范性欠佳,不利于把控风险。现在江苏省小贷公司使用江苏金农的信贷系统,大大降低了系统花费,并且得到了更好的体验。随着行业的发展,小贷公司业务的拓展,系统功能越来越多,也越来越复杂,从而对软件质量的要求也越来越高,软件测试是保证软件质量的重要手段。

软件测试工作量往往较大,属于重复性的、非智力性的和非创造性,并要求准确细致,因而,实现软件测试的自动化可以节省人力成本,提高测试效率,更好的保证软件质量。本课题完成了一个面向信贷系统应用的具有高度可维护性、可读性和可拓展性的自动化测试框架,支持HTTP请求类和页面类的自动化用例,降低对编写自动化测试用例者的技术要求,满足多人同时构建自动化测试用例,实现信贷系统的自动化测试工作。

关键字:软件测试,信贷系统,自动化测试

Automated testing framework's design and implementation of credit system

Abstract

JiangSu small loan company’s credit system is approved by the Finance Office of the people's Government of Jiangsu Province, a new type of economic organization that provide guarantee and loans for agriculture and minor enterprises. JiangSu’s minor enterprises use different credit system before,the average company’s system maintenance costs about 150000 yuan and it’s bad to control risk。Now JiangSu’s minor enterprises all use this credit system,the maintenance costs lower and the experience is better. With the development of the industry,credit system can do more,also more complex,the software quality is much more important.Software testing is an important way to ensure software quality.

Software testing usually has a heavy,repetitive and not creative work,so software test automation is important。This article is for the credit system,to complete a test automation framework with high maintainability,readability and scalability.The framework support HTTP class and web class automated test case,reduce the requirement of the case author,can make multiple test engineers write the test case at the same time,accomplish the credit system’s automation test.

Keyword:software testing,credit system,software testing automation

目录

摘要 2

Abstract 3

第一章 引 言 5

1.1 选题背景和意义 5

1.2 课题的研究目标和内容及难点 7

1.3 论文组织结构 7

第二章 自动化测试框架设计 9

2.1 自动化测试框架需求分析 9

2.2 自动化测试框架结构设计 11

2.3 自动化测试框架目录结构设计 12

2.3.1 预制数据SQL设计 13

2.3.2 关键字和代码设计 13

2.3.3 测试数据设计 16

2.3.4 通用配置文件设计 16

2.3.5 关键字设计 16

2.3.6 自动化测试用例设计 17

2.4 自动化测试框架执行流程设计 17

2.5 自动化测试总体流程设计 19

第三章 自动化测试框架的实现 21

3.1 框架关键字和代码的实现 21

3.2 核心关键字的实现 31

3.3 业务关键字的实现 34

3.4 自动化测试用例的实现 35

第四章 测试用例执行与结果分析 39

4.1 自动化测试用例的执行 39

4.2 测试结果的分析 39

第五章 总结与展望 41

5.1 总结 41

5.2 展望 42

致谢 43

参考文献 44

引 言

选题背景和意义

江苏省小额贷款公司数量居全国各省市自治区首位,之前各个小额贷款公司使用自己的信贷系统,这使得各有各的规范,信息流动性不高,造成的风险也较大,成本也很高。江苏金农的信贷系统出现后,小额贷款公司可以用更低的成本获得更好的规范,更好的安全性和更强的风险控制能力。随着版本的不断更迭,软件功能的不断提升,系统也越来越复杂,各种优先级的测试用例越来越多,面对迭代快速,越来越庞大的信贷系统,手工测试的弱点就暴露出来了:

  1. 手工测试的重复性比较高,对于同样的用例,一次迭代要重复执行,这样投入的成本高,要执行完同样多的用例,手工测试所需要的时间相对自动化测试往往是多出数倍,甚至数十倍,而当测试用例确定之后,手工测试过程这些机械性的重复的操作完全可以变成自动化测试用例,交给不知疲倦的计算机来执行,从而加快整个信贷系统更新进度。
  2. 手工测试因为个人原因容易造成疏漏和错误,测试报告结果并不会比自动化程序生成的规范,这样不利于去追溯系统产生错误的根源,也不利于对是否引入新问题的分析,但是在自动化测试上,这些问题不负存在,机器不会因为情绪和其它条件影响,对测试产生疏漏,也不会生成无规则不规范的测试报告,自动化测试可以很好的规范测试流程,减少这些人为产生的错误,并且自动化测试的执行效率相对很高,可以在编写出来后,在不同的机器,不同的语言上测试,重复利用程度很高,并且可以不知困倦的24小时执行。
  3. 手工测试发现系统缺陷相对晚些,越晚的发现缺陷,就越晚的修复,越接近发布时间,修复的成本就更高。
  4. 手工测试无法对系统性能进行测试,比如大量并发,客户大量快速频繁访问手工测试是无法完成的。

既然这样,那么自动化测试是不是就一定比手工测试好呢?肯定不是的。要对软件做自动化测试的设计要考虑下面这几点:

  1. 回归测试

根据做软件测试自动化的目的,自动化测试一个很大的好处便是来自于对自动化用例和自动化工具的重复使用,如果一个测试用例如果只需要执行一次或者寥寥几次,完全没有必要实现自动化来增加成本,自动化测试的设计和开发者应该考虑那些需要重复执行的部分。因此回归测试做自动化是非常有利的。

  1. 应该选择对于稳定的应用进行测试

要对这个软件部分进行自动化测试,先要考虑它是否稳定。对一个经常变化或者不久将来会发生变化的应用,是没有必要执行自动化测试的,因为这个变动会使得自动化代码或者用例发生变化,要去修改自动化程序或者用例。

  1. 并不追求完全的自动化

作为一个自动化测试的开发人员,必须对这点有清晰的认识,要对程序实现百分百的自动化并不是追求的目标,如果一个测试很难进行自动化,就应该把它留给手动测试。把一些过于复杂或者不复杂但是自动化难以实现的留给手工测试是正常的。

  1. 对重复性的测试进行自动化

如果一个测试用例执行的频率很高,并且这个测试用例使用起来不方便,那就要快速考虑自动化测试。

  1. 自动化已经实现的手工用例

对于那些优先级较高的,已经实现的手工用例,可以对其自动化。

  1. 自动化范围的控制

自动化范围不能取的过大,也不能取的过小。应该在一个合理范围进行自动化测试的开发,在精力足够的情况下再合理扩大范围。

所以对于迭代频率高,功能强大的信贷系统,对其做自动化测试意义是十分重大的,它将加快信贷系统的更新。

已有自动化框架,需要用户能够编程和抓取网页信息,并且由纯页面类自动化用例组成,页面类用例在执行的时候虽然能够对页面做出检查,但是执行效率远远慢于发HTTP请求,没有必要所有的用例都使用页面类用例。在发生用例自身错误的时候,找到错误,修复错误也非常的耗时,并且标签使用,分类都很乱,不方便选择性的执行某些模块,所以需要对现有的自动化框架进行改进。

课题的研究目标和内容及难点

系统需要做到能够对信贷系统进行操作流程检查,并能够使用请求类快速模拟执行系统功能,查验其是否存在缺陷。自动化框架将代码完全隐藏起来,提供中文API,让自动化用例开发人员可以使用中文在框架上开发基于HTTP请求和基于页面的自动化测试用例。代码需要有很高的可维护性和拓展性。故难点在于:

  1. 需要有一个总控制入口,能够根据输入的参数执行相应TAG的自动化用例,并解析XML统计结果,将最新的结果生成的易读的HTML拷贝到指定目录,用邮件附件形式发出,邮件内容要能够简要展示运行结果;
  2. 代码需要有很低的耦合度;
  3. 框架封装的关键字为全中文关键字,使得用例开发者可以无需编程知识进行纯中文测试用例编写;
  4. 页面类的自动化测试需要能够严格把控好执行的时间,以便于连贯的在浏览器中进行自动化操作;
  5. 自动化框架包括页面类的和HTTP请求类的自动化用例于一体;
  6. 执行效率要比已有的老自动化测试程序快5倍以上。

论文组织结构

论文共分五个章节来阐明信贷系统自动化测试框架。

第一章为引言,阐述了选题的背景与意义,介绍了江苏小额贷款公司的状况,并说明了手工测试和自动化测试的优缺点,分析信贷系统自动化测试的现状,并说明了课题的主要难点以及论文的组织结构。

第二章为自动化测试框架设计,简要介绍了被测系统,对自动化框架的需求进行分析并介绍需要使用的技术和难点,并从流程上介绍完成一个自动化测试需要的人员分布。并在结构和流程上对自动化测试的框架分关键字,用例,目录,测试数据等方面进行设计分析。

第三章是自动化测试框架实现,分框架关键字的实现,用例实现,对通用关键字,核心关键字,页面和请求类关键字的实现做详细阐述。

第四章为测试结果与分析,对测试的结果举例说明,阐述自动化框架对效率,易用性方面的提升。

第五章为总结与展望,对本文做出总结,并对本次自动化测试的继续研究提供设想。

自动化测试框架设计

2.1 自动化测试框架需求分析

江苏金农小额信贷管理系统是面向小贷公司(简称:微贷)管理部门、针对中小企业贷款的业务管理系统,系统覆盖了“贷前——贷中——贷后”整个信贷的生命周期。与传统的信贷业务管理系统相比较,该系统具有小额信贷业务审批的快速性和灵活性,具备还款计划的多样性和多变性,提供参数配置、规则检查等功能,用户只需做少量的客户化调整便可以适应小贷业务的变化。同时,也提供实时查询和生成相关报表功能,方便银行微贷部门进行管理。系统采用 B/S(Browser/Server)结构,易于部署、客户端免维护和熟悉的浏览器操作,用户投资少、使用简单。

图 2-1 江苏金农信贷平台个人客户新增页面

图2-2 江苏金农信贷平台贷款信息录入页面

自动化测试框架采用了基于关键字驱动的测试框架,这种测试框架不仅实现了将测试描述与具体实现细节的分离,还实现了将数据和测试脚本的分离,这样就方便了自动化测试用例的管理,提高了测试脚本的复用度和维护性。

目前自动化测试框架的实现采用Robot Framework Selenium Requests,Robot Framework是一款Python编写的自动化测试框架,能够支持关键字驱动、数据驱动和行为驱动,可以利用标签对测试用例进行分类等。Selenium是基于浏览器的自动化测试工具,它可以模拟用户的实际行为在浏览器上进行操作,但当测试用例很多时,Selenium的执行时间比较慢。Requests是Python的http客户端,它可以模拟http请求对被测环境的后台进行测试,且执行时间比较快,但其不能保证前台页面显示的正确和Javascript程序正确。结合上述Selenium和Requests的优缺点,金农信贷系统的自动化测试框架采用Robot Framework Selenium Requests。

自动化测试流程流程有如下4个角色:

  1. 测试负责人:项目测试工作的总体负责人,其主要职责包括制定测试计划,协调测试资源,分配测试任务,跟踪测试进度,编写测试报告同时还需要参与对测试思路的评审,对自动化测试用例和代码进行评审。
  2. 功能测试工程师:是相关功能模块质量的责任人,其职责包括设计测试思路与测试用例、执行测试用例、定位和跟踪问题。本流程中主要负责确认测试点的自动化范围,实现测试用例的自动化。
  3. 自动化测试开发工程师:是自动化测试框架的负责人,其主要职责是提供高效的自动化测试工具,自动化测试框架的选择,二次开发与维护。本流程中将从自动化测试实现方面对测试思路进行评审,同时实现与维护自动化测试用例需要的关键字,及对底层代码与关键字的持续重构优化。
  4. 自动化测试执行工程师:对自动化测试执行负责,其主要职责是日常自动化测试的执行以及测试环境的维护。在本流程中负责执行自动化测试用例,维护自动化测试环境和驱动失败用例的分析。

2.2 自动化测试框架结构设计

自动化测试框架以Robot Framework为核心框架,增加了基于SSH模块、数据库模块、Selenium模块和Requests模块实现的核心关键字。Robot Framework负责测试用例文件的解析,测试用例的调度,核心关键字库的导入,测试报告的生成。对被测系统的功能操作和验证是由外部测试库完成的。自动化测试框架的结构图如下所示:

剩余内容已隐藏,请支付后下载全文,论文总字数:25247字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;