teaggsii Grass-roots Practice
传统银行敏捷自动化测试探索
文丨|中国银行软件中心深圳分中心万芳
字技术正在改变人们的金融消费习 惯。随着数据化进程的深入,互联 网金融产品如雨后春笋般涌现,对传统银 行的支付结算和中间业务造成了不小的冲 击,传统银行为了快速满足客户不断变化 的多元化需求,如何进行敏捷可靠的架构 之变?其中所用到的一些自动化测试框架 工具,作者深入敏捷转型项目开发过程中 自动化软件测试,希望通过本文抛砖引玉, 拓展自动化测试思路,找到适合自身特点, 安全可靠的自动化测试方法。
现状分析
俗话说:“工欲善其事、必先利其器。”, 工具对于开展自动化测试的重要性自不待 言,对自动化测试人员有三方面的要求:
一是提升编程技巧。做为测试工程师 要掌握一些高级语言,脚本语言,类似以
java为重点phython等,如果常用web
自动化测试,则考虑jsp、php等是必须 掌握的。
二是具备系统与数据库经验。因为软 件自动化测试是构建在操作系统上的,需 要用到操作系统技巧,例如:注册表、环 境变量、句柄等,同时也要善于利用数据 库知识去实现存储及数据管理。
三是熟悉业务流程。掌握所从事的 金融业软件行业知识,需要加深了解银行 会计及国际结算等业务知识,在ISO及
CMMI质量体系中,做到有章可循。
90
方法设计
都需要有一定编码基础;基于API需要懂 自动化测试理念与软件设计模式类 脚本技术例如:python等,RFT需要懂
似,作者深入到具体项目去学习。例如:
java或者.net等。像常用的loadrunner
java软件界面测试(RFT、QTP的java
性能测试工具,测试软件性能,例如多用 插件等)、web界面测试(QTP、seleni
户操作等性能,也需要写代码,LR脚本 um 等 )、 性能测试 ( loadrunner 等)。入
支持的语言有:java、c、VB。默认的脚 门先学工具,编程也是一项重点学习内容。 本生成语言为C;需要掌握其性能测试的 建议从已经开展自动化测试的项目入手, 方法很重要的。
则自动化测试入门会很快的。深入理解并 掌握拓建自动化测试框架,性能测试关注 应用架构
环境构建方法,以及对测试结果的分析方 敏捷自动化测试特点是:高效+深 法’性能测试关注分析和实现过程。
入+协作,敏捷自动化测试所需条件比常
1. 确定测试类型。首先我们要明确 规瀑布式开发项目标准更严格。作者参加
了自动化测试类型,定位好类型才去选择 了消费金融项目一个多月的封闭开发,这 用哪个自动化测试工具?测试类型包括: 是涵盖某银行个人贷款审批、贷后管理、 白盒测试、黑盒测试以及压力测试、性能 授后变更等业务,在敏捷项目试点过程中, 测试等。
使用到的自动化测试工具如下所示:
2. 选择测试方法。不同的测试类型1.代码复查及监控。Jenkins任务调 所选择使用的自动化测试方法不同,例如, 度+Sonar代码质量平台+PMDxFind-
白盒测试主要针对代码级的单元测试,黑 bugs、CheckStyle、Jacoco 静态代码复查
盒测试主要面对用户功能级和系统级的验工具。sonar是代码质量平台,不做代码 证测试。
分析,可集成加载插件,从JENKINS调 3. 人员技能要求。自动化测试要有起MAVEN构建,成功后则用MAVEN 一定编程基础,能编写测试代码。功能测 构建完的执行码用来跑JUNIT,接着 试分基于API和GUI的测试;基于API 调用soanr,使用插件如,checkstyle,
的测试,即应用脚本技术向设备模拟发送
pmd, jacoco (java code coverage- API请求,以达到控制设备的效果。基于 Library覆盖率工具可以嵌入到ant、 GUI功能测试,即应用传统的界面自动化
maven中),findbugs代码静态分析工具, 测试工具如:RFT、QTP等控制界面控 Sonar、Jenkins这些第三方的工具提供
件操作的方法,以达到模拟用户操作’这
了对代码静态分析工具的集成。
Grass-roots Practice 固
甥
;4
4JUNIT单元测试j
规范测试案例
(不用测试和
H set |
显著成果,且在短短一个半月内多批次测 试案例的并行,完成任务。作者根据 实施敏捷开发项目的现状,提出三处可改 进点。
—是维护成本大。项目成员刚接触 自动化测试工具,边实践边学习,难度高、 进度缓。加上系统功能点逻辑复杂,功能 点案例编写难度大,界面测试案例维护成 本大,随着业务需求不断变化,版本快速 迭代,维护案例越来越困难。
二是体系待完善。由于未搭建单元及 组装测试的敏捷内部自动化测试体系,加 之自动化测试工具尚在完善,测试人员对 于相关功能掌握不够透彻。
三是缺陷时效性差。实现的自动化测 试不是测试驱动,只是对稳定版本回归测 试。自动化测试进度滞后,加上批量等重 要的模块未开展自动化测试,无法快速响 应迭代版本带来的影响,不能及时发现系
il
I财只对一进行射M (异常处理与展示机制)
_镆拟前纗发报/e台接报_1
f支持定长、nJ格式等数攩类at的报文格式.1
f Admitestei•接□测试|{-(檯供用例组横块_丨 (脚本批置执行]M 曾执行讕微例1
乂 python^的6动化测试^ [用^境醒1
d进行期妈柱獅的雷觸找1
d RobotFraneffork界面WEB测试]f~fS歲的间g报吿和日志可在JBBIHSaUg 1
S「理大的中文支抟1运大<
以RLMS为例
re*批*执行1
(通过JenkWtt:!执行测微⑷
1 ffiCheckStylemm^^ga
丨集成Sonar自动代码复S '
代犸质量分析与监控
(胼賴行自动化代码奴)
(厢indbuf浙自动化代码复査
(fflJacoco^T^^JQE )
Jenkm^寺续集成平台M ffljENKIHS 集
寻 JMikinsA 成
纖件)
进行代码®量分析与监控
lAVEMit行自动构蒼1
1 A与 jaikins/maver^fc成 |
(用
性能分析监控
W ▲分析网页请求和方法髑用1 4 9可结合j»ter贼,^1^口刺
?可在单元樹试、RF自动化獮试阶MDynatracefi 能监控
?与1〇8<11〇^»1^合使用做压
统缺陷。
消费金融项目伴随着敏捷转型,资 源实验快速分享,通过掌握自动化测试的 方法,编写了培训手册例如《AD自动化
■IP
图1自动化工具
测试工具挡板使用》《AD案例开发说明手 册》《JUnit单元测试自动化案例的编写规
用例。RFW在用户需求有变化时,已创 建界面用户功能测试案例需频繁修改,为 了规避此风险,项目组做法是:等到下一 个迭代再完成编写上一个迭代的测试案 例,只测已稳定功能,即回归测试。若跟
我们通过命令调用sonar,在jen-
范手册》,完善工具指引并组织内训。
根据项目中期数据显示,在批次内部 测试工作中,该产品积累案例数自动化测 试案例数位列第一,不仅将开发测试人员 从曰常繁杂重复的手工劳动中出来, 从事更富创新与挑战性的工作;而且能够 不断增强技术底蕴,加大自动化测试工具 的应用深度,培养自动化测试人员技能, 提高开发测试效率。
自动化测试是提升产品软件质量的 一项重要举措,推动传统银行科技事业的 长足进步,只有厚积薄发的测试工艺改进 与提升,最终实现技术飞跃。展望未来敏 捷自动化测试之路,任重而道远。B
kins控制台看到插件使用情况,多个批次
并行开发,指定代码存放的版本管理库地 址,开展源码管理。配置好构建触发器, 以便于下班后的自动构建。
2.
Junit单元测试。Jenkins任务调 着迭代并行开展自动化测试,则会耗费大
量人力。
接口功能测试。Admitester接口
度+Maven构建+Junit单元测试框架。
3.
自动化测试工具,简称AD。
4.
实践改进
利用持续集成方法和自动化测试平台,有 效隔离了并行开发的相互影响,积累了丰 富的敏捷实践经验。深入开展了新工艺方 法及敏捷开发中的持续集成实践,取得了
RFW界面WEB测试。UI是用 在封闭期间,组织逾百人并行开发,
户界面的简称,RideRIDE是图形界面 运行测试的软件。Robot FrameworkRF (简称RFW)框架,基于UI的自动化,
RFW框架编写基于web用户界面的测试
91