文/叶婷婷 罗章坤

一、引言

随着互联网金融监管的日益严格、市场竞争的不断加剧及客户需求的快速变化,金融企业IT系统的复杂程度不断提高,IT需求日益放大,创新型需求持续产生。传统的软件开发模式,诸如瀑布模型;新型的软件开发模式,比如敏捷模型,已经无法完全适应现代的科技金融行业。金融科技渗透到互联网金融各个领域,如社交网络、云计算、大数据等应用,科技金融使得银行业互联网金融业务应运而生,同时导致传统金融业务模式与新兴金融模式产生矛盾。针对科技金融环境,本文将就 “模块化、骨架化”新型测试案例编写方法论进行探讨。

二、银行业互联网金融开发模型

1. 传统“瀑布型”模型

传统银行金融业务是以柜台为中心,服务对象范围较小,支付结算一般采用现金、票据等传统方式;信息处理主要依靠人为处理,金融软件产品更新换代缓慢,金融软件相对稳定,软件开发普遍采用传统的瀑布模型。瀑布模型将软件生命周期划分:制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定它们自上而下、相互衔接的固定次序执行。在瀑布模型中,软件开发的各项活动严格按照线性方式进行,严格遵循预先计划的步骤顺序按部就班地进行,流程衔接相对严谨。然而瀑布模型在项目各个阶段之间极少有反馈,只有在项目生命周期的最后才能看到结果,缺乏灵活性,不太适合现代互联网金融行业的软件开发。

2. 敏捷开发模型

银行互联网金融业务能够在客户端或者线上进行财富管理;服务对象主要集中在一般客户群体;互联网金融业务也实现了移动支付目标,进行电子化操作,通过第三方支付;互联网金融业务模式利用计算机技术、对数据信息进行分析、整理等处理。现代的互联网金融模式使普罗大众可以通过手机端的App应用、PC端的应用软件及web应用,独立地进行金融产品操作。当前金融科技使得金融软件产品更新换代极快,对软件健壮性的要求极高,对创新需求的快速响应要求提高。在此背景下,敏捷式开发模式逐渐地被引入到现代的科技金融中。敏捷开发是一种应对快速变化需求的软件开发能力。敏捷开发以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通。

三、敏态下“模块化、骨架化”实践

随着互联网技术的飞速发展,金融行业已经正式开启了全新的互联网金融时代,银行业互联网业务也进入超快速发展阶段。由于网络金融所具有的高效、便捷、精确等特点,整个互联网业务都处于快速运行的状态,与之对应,软件开发模式也由传统的瀑布式开发模型进入到快速变更的迭代开发时代。快速变更的迭代开发模式可以快速响应业务的需求,尽早地得到客户的反馈来细化需求。然而,这种新型的开发模式由于需求量大,需求变更快,版本周期短,导致测试周期短,在较短的周期里,测试人员需要参与需求分析,需求评审,测试用例编写,测试用例评审,测试执行,测试报告整理等等,导致测试时间不够充裕,以至无法充分保证测试覆盖率。随着互联网开发模式的变更,现有测试管理方法无法同时保证软件质量和软件产品在需求的快速变更下如期交付。在积极探索、尝试新的方法论的过程中, “模块化、骨架化”测试案例编写技术应运而生。

1. 实施目的

面对传统金融业务模式,对应比较老旧的计算机软件开发方法就是瀑布型开发模式。瀑布开发模式是一种最常见最典型的开发模型,严格按照预先计划的几个基本活动的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,需求文档,测试计划和代码审阅等等。该开发模式存在最大的问题是当需求不明确,后期需求变更时,无法进行调整,代价高昂,基本是不可行的。

面对目前快速发展的互联网金融业务平台,通常采用敏捷开发模式。其主要工作方式就是项目作为一个整体,按短迭代周期工作,每次迭代交付部分成果;当业务进行口头需求,无纸质需求时,更强调开发团队与业务之间的紧密协作。在此前提下,要求面对面沟通比书面的文档更有效,同时可不断交付新的软件版本,以能够很好地适应快速需求变更的代码编写和团队组织方法,也更注重软件开发中人的作用。

适应性的方法集中在快速适应现实的变化,互联网业务平台面对快速、敏捷、高效的敏捷式开发模式发展,测试方法也从中衍生“骨架化、模块化”测试方法探索实施。

“骨架化、模块化”案例方法论主要通过梳理通用的、同类型功能,编写测试案例模板,通过关键字替换方式实现复用。针对整个互联网金融业务平台的项目,快速迭代、需求变化快的特点,探索“骨架化”测试案例技术,对于相同类型需求模块,快速完成案例设计,大大缩短测试准备时间。传统软件测试流程一般包含:需求分析、测试计划编写、搭建测试环境、设计测试用例、测试执行、Bug回归测试、测试总结、软件发布几大块,所有步骤环环相扣,设计测试用例需建立在确认完整的需规需求上,当业务提出需求变更时,测试准备时间就会相应紧张。但采用“骨架化、模块化”测试方法大大减少时间,直接通过测试案例模板进行复用,节约了大量的测试准备前工作,降低了测试中存在的风险。

2. 实施流程规范

实施原则

为保证“骨架化、模块化”管理方法正确实施,需要遵循以下四大基本原则:

  • 复用性:抽取测试用例是可被本项目或其他项目复用;
  • 唯一性:整合的测试用例库没有冗余的测试案例;
  • 参考性:项目里的关键功能测试用例,可用于其它项目测试案例编写作参考;
  • 脱敏性:跟公司/项目有关的敏感关键字要用通用符号(比如:X)代替。

实施步骤

  • “骨架化、模块化”负责人梳理整个互联网业务团队需要进行“骨架化、模块化”的项目,根据各项目可复用性程度的高低,罗列出各项目进行“骨架化”的顺序,制定出阶段性审核时间;
  • “骨架化、模块化”负责人与需要“骨架化”整理的项目负责人协商会议时间,与会人员,向会议组织者发起请求。通过“头脑风暴”模式,与会人员讨论项目里可以被其他平台复用的功能模块以及项目里可被其他项目参考的关键功能;
  • 项目负责人根据会议讨论的功能点,抽取整理相应的测试用例,修改测试用例,去除替换与公司、项目、业务有关的敏感关键字后,发给“骨架化”负责人;
  • 各项目负责人通过评审整理出测试案例;
  • “骨架化、模块化”负责人按测试用例功能类别,分类整合测试用例到“骨架化”测试用例库里。定期维护“骨架化”测试用例库,防止用例存在重复,保证分类明确以便索引;
  • “模块化、骨架化”负责人根据模块化案例的成熟度,给与互联网团队测试人员安排培训,对模块化的实施目的及目标进行介绍,针对整合的模块化案例的功能点进行解释说明。
  • 各平台负责人根据自己项目进程,在获得大需求时,组织组员讨论模块案例库里可以使用的测试案例。
  • 模块化负责人在案例库更新后,通知团队人员更新模块,方面测试人员学习,搜索。

实施优点

  • 缩短测试案例准备时间,增加软件测试执行时间,降低风险,提高软件测试质量。
  • 减少测试用例评审会议时间,提高各团队人员时间使用效率。
  • 保证测试的覆盖率,提高软件质量。

3. 实施阶段性成果

模块功能

基于银行互联网平台的业务特性,每个独立的平台均有可被其他平台参考或复制。

具有参考性的功能点,如兼容性功能,由于现在互联网庞大的手机端业务,几乎所有平台都涉及到兼容性测试。在兼容性测试中,由于Android和IOS系统之间的差异而需要留意的测试点。

具有复用性的功能点,比如手机端应用软件的登录功能。由于银行业务高安全性的要求,个人银行业务的大部分功能都需要注册登录才可以使用,因此登录功能是基本的模块化功能点。

银行互联网平台负责人根据模块化的设计原理,整理和罗列出各自平台里可以被复用和参考的功能点。整理结果如下表。

功能点-案例

1).各平台负责人根据讨论的可模块化的功能点,从项目管理工具上导出相关的测试案例,脱敏测试号用例,用 xxx 替换关键字:比如系统名称,项目所属名词等。对测试用例的前置条件,步骤,预期和关键词等进行修改,使测试用例在不同平台间更具有通用性。以下为可复用的登录测试用例。

2). 整理出的测试用例根据功能模块分类,由于测试用例从不同的平台中获取,还需审查去除重复/类似的案例后储存在共享的工具里,定期维护:根据新的功能增加模块化用例等。

四、 结论

经比对实施经验,按旧有模式,每个活动项目SIT测试案例准备时间大致为1-1.5人天,若需求变更频繁需2人天。而在“模块化、骨架化”测试案例编写方式实施后,测试案例准备仅需0.5人天,预估人力节约近70%。且经实际操作验证,“模块化、骨架化”测试编写案例经验推广、实施范围覆盖全面,可大幅度提高人力资源使用效能。同时,“模块化、骨架化”方法论可应用于多个应用领域,如:协作式开发、分布式数据管理等,它将处理复杂系统分解成为可管理的模块化,把一个问题分解成多个小的独立、互相作用的组件。通过该方法论不仅能够降低测试风险,且有助于提高产品可靠性,从而帮助有效控制成本,降低人力资源浪费,进一步提升公司效益,更好地发挥人员的其他技能。

敏态下“骨架化、模块化”测试案例编写技术实践相关推荐

  1. 【实践】短视频场景下信息流广告的挑战和技术实践.pdf(附下载链接)

    今天给大家带来快手磁力引擎舒承椿博士所做的分享<短视频场景下信息流广告的挑战和技术实践.pdf>,关注信息流广告的伙伴们别错过了,另有志于加入快手广告部门的伙伴可以发简历至shucheng ...

  2. 测试案例编写规范总结

    [适用对象] 所有业务线测试人员,各产品/系统测试负责人. [标准说明] 1.每条测试案例必须只包含一个验证点,不可以一个案例包含多个验证点: 2.每个用户故事(包括业务需求,内部优化需求,紧急变更需 ...

  3. 基于.net的微服务架构下的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...

  4. 测牛学堂:软件测试中测试案例编写的原则和注意事项总结

    测试人员的工作流程介绍 测试是一个严肃规范的事情,跟大家分享一下测试的完整工作流程,在以后工作中也能做到知道每一个环境都是干嘛的,应该怎么做. 1 需求分析:参加需求分析会,俗称:"对需求& ...

  5. 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】

    本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击[python爬虫]分类专栏进行倒序观看: [重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收 ...

  6. TDSQL新敏态引擎Online DDL技术原理

    近日,TDSQL新敏态引擎重磅发布.**该引擎可完美解决对于敏态业务发展过程中业务形态.业务量的不可预知性,实现PB级存储的Online DDL,可以实现大幅提升表结构变更过程中的数据库吞吐量,有效应 ...

  7. 编写优美的GTest测试案例

    使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下.GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身.如何在GTest框架下写出优美的测试案例,我觉得必须要做到: 案 ...

  8. 测试案例6种编写方法_一种编写测试的好方法

    测试案例6种编写方法 测试. 我最近一直在考虑测试. 作为我对各种项目所做的代码审查的一部分,我已经看到了数千行未经测试的代码. 这不仅是测试覆盖率统计数据指出这一点的情况,更是该项目中根本没有任何测 ...

  9. 用Python编写测试案例

    因为工作需要,需要用Python编写测试案例.接下来会记录在这期间遇到的一些问题和解决方法. Python Faker的使用(1):基础使用方法与函数速查 在软件需求.开发.测试过程中,有时候需要使用 ...

最新文章

  1. 【Kafka】Kafka-数据倾斜问题-参考资料-解决方案
  2. java设计模式---合成模式2
  3. javascript判断对象、字符串、数组是否为空(兼容绝大部分浏览器)
  4. Docker过程汇总
  5. 斐波那契数java实现_斐波那契数列Java实现[剑指offer]
  6. rs(0)与rs(字段名)的区别
  7. 《坦克世界》1.0+:使用 CPU 优化的图形和物理丰富用户体验
  8. jQuery动画实现下拉菜单二级联动
  9. NO.3 寻找数组主要元素
  10. 云知梦Jquery视频教程 jq重入门到精通 共12集
  11. PHP中json对象转数组过程中去除字符串中的换行与数字方法
  12. python学强化学习
  13. 狐狸找兔子问题 C语言
  14. 深度学习笔记(二十)Momentum动量梯度下降及RSMprop Adam优化算法
  15. Kiosk模式是什么?win10如何启用Kiosk模式?
  16. C Primer Plus 第02章 C语言概述 学习笔记及复习题、编程题解答
  17. 使用NAudio音频文件剪切指定片段
  18. 金力股份冲刺科创板:拟募资13亿 比亚迪小米复星是股东
  19. Android打开应用市场
  20. Tomcat And Servlet (1)

热门文章

  1. 使用mock模拟数据,实现图片文字向上的轮播
  2. 哈工大计算机网络Mooc 第八章笔记(网络层(中))
  3. 二进制与十进制转换的简单公式
  4. java agent简介热部署SDK接入
  5. Iphone6/6s刷机常见问题
  6. 关于实现某宝或某妈永久登录
  7. 微信V3支付 订单查询 退款查询
  8. Oracle Database-PL/SQL
  9. 起步翻转课堂的一点事儿——对话实录
  10. POI操作Excel设置前景色背景色