项目背景介绍
宜人蜂巢是领先的、智能的、数据科学驱动的互联网风控科技平台。
通过最领先科技与大数据的智能技术,准确预测借款人的信用、偿还能力并实别欺诈、助力贷后风险管理等,从而将公平的信用扩展到更多的人。
目前查询量超过6000万次,体验用户超过3000万,通过宜人蜂巢科技平台的促成的放款额已突破1200亿。
因此,宜人蜂巢自研的项目质量管控体系成为了平台服务质量的重要保障。借此,想跟大家分享下我们实践中的一些经验和收获。
如何更快更好保证产品质量
在当今互联网时代,产品致胜原则就是“快”,快速迭代、快速试错,但大家经常忽略“快”的前提——质量保障,有质量保障的快才能达到“快”的目的。
作为互联网QA,我们一直在孜孜不倦的探索【如何更快更好的保证产品质量?】
在传统流程中,产品质量保障工作主要是由测试人员负责,这种组织和思维方式导致团队各个角色间脱节,整体效率比较低下,具体表现在如下几点:
- 团队成员注意力没有聚焦于团队目标,而只是分散于个人工作目标。
- 开发人员、测试人员对于“完成”的理解不一致,导致产生了大量bug,进而增加了开发人员返工的工作量,也增加了团队沟通成本。
- 团队成员对如何完成团队目标以及当前进度没有清晰的了解。
- 开发、测试脱节,质量保证环节滞后,可能会导致质量风险不可控。
因此要在质量保障上做到“快”,必须有效的整合团队,让整个团队都参与进来,质量保障不仅仅是测试人员的事情。
ATDD(验收测试驱动开发)
ATDD正是解决这些痛点的最佳方案,那ATDD是什么?能给我们带来什么?
定义:在ATDD活动中团队需要就需求定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动产品的代码开发和测试脚本开发。
ATDD将测试作为主线贯穿项目始终,这样的改变在多方面都带来了积极的影响:
- 测试前置,在需求阶段与开发人员一起“实例化需求”,定义出验收标准,即测试用例。
- 定义验收标准过程,其实是将团队目标分解为个人任务过程,让团队目标能够做到上通下达,使团队成员可以清晰了解项目当前进度、何时完成以及如何帮助快速完成团队目标。
- 在开发、测试过程中,有了明确的验收标准,让开发人员与测试人员对“完成”的理解达成一致,保证一次把事情做对,减少bug产生,减少返工、沟通成本。
在讨论ATDD时,有一个误区:ATDD一定是要基于自动化以及持续集成的。在我们看来ATDD是一种协同团队工作的方法论,而实现自动化只是让ATDD流程更有效率。
ATDD流程定制化及落地实施
基于我们对ATDD的理解,根据项目实际情况量身定制了一套QA流程
流程中我们强化了两点:
1. 一次把事情作对:开发人员根据验收标准进行程序设计开发,并在关键阶段增加了自动检测,验证是否达到要求。
2. 提高bug反馈速度:
a. 开发人员自测:
针对接口用例,可以快速执行用例,开发人员一键执行用例,验证程序是否符合验收标准,将bug在源头控制住。
针对无法自动化以及自动化运行速度较慢的用例,根据重要程度进行筛选。
b. 与Jira集成:
在bug信息描述中增加用例信息,如果是自动化执行用例,还增加用例执行日志以及重新执行功能,方便开发人员定位、解决、验证bug,提高效率。
工欲善其事必先利其器,要让这个QA流程更有效的实施,需要一个定制化的工具来承载,为此我们使用SpringBoot开发了基于web的质量管控平台。
重点功能介绍:
- 用例组:对用例进行分组,并通过数据驱动模式,将【测试数据】与【用例】结合起来,为一键批量执行用例打好基础。
- 用例批量执行:实现了一键自动执行,实时反馈执行结果,主要通过以下几个功能设计实现:
1、 变量系统,利用正则表达式、JSONpath等解析替换参数。
a) 从配置中取数据
b) 接口间的动态数据
c) 全局变量:替换用例组中所有用例对应数据
2、 实时日志:利用web socket技术,实时展示用例执行日志
3、 用例结果自动对比:JSON格式数据,通过对比算法,精准定位到不一致的字段。
a) 业务数据量比较大且比较复杂,有许多相似的数据,人工对比都需要参照才能确定,针 对这种情况开发了智能化对比算法,通过先用关键字对数据进行分组,再对比相似度,结合递归实现。
- 持续部署:将Docker技术集成到质控平台中,做到了一键部署,并收集部署日志。
至此我们将定制化的QA流程通过质控平台与实际工作紧密结合了起来:
1. 项目前期:
a) 在质控平台建立版本计划,填写上线日期及发版内容
b) 测试人员与开发人员一起实例化需求,达成验收标准,并将验收标准录入质控平台,将验收标准共享。
c) 测试人员将验收标准作为任务配置到版本计划中。
2. 开发阶段
a) 开发人员参照验收标准进行开发。
b) 开发人员完成功能开发,执行指定的验收标准进行自测,通过实时日志以及用例预期自动对比,快速反馈程序是否符合验收标准。
3. 测试阶段
a) 测试人员执行验收标准进行验收。
b) 测试人员进行探索式测试,补充验收标准。
c) 发现bug时,通过测试平台将用例信息、日志信息带入Jira。
质量数字化
通过质控平台,沉淀了多维数据:用例数据、测试数据、用例执行日志、任务信息、bug信息等,所以我们更进一步,利用这些数据,对项目进行整体把控、风险管理以及项目复盘:
- 项目情况:统计用例执行情况、bug解决情况,使团队成员实时了解当前项目进度,以及何时达成目标。
- 个人中心:实时统计团队成员需要关注的用例、任务、bug信息,一目了然,提醒及时处理,提高反馈速度。
- 测试报告:通过多维数据统计分析生成测试报告,反映项目整体质量状况。
- 测试详情统计:通过多维数据统计展示项目质量保障详细过程,辅助团队对项目复盘,总结经验,持续精进。
实践效果
至此,我们通过引入ATDD,定制化QA流程,开发质控平台将流程嵌入到实际工作,提供高度自动化以及利用多维数据将质量数字化,在实际应用中取得了非常理想的效果:
取得这样理想的效果,得益于在实践过程中实现了全员参与质量保障,让团队目标能够上通下达,从而将团队有效整合。
智能化
在实践过程中,我们初步发掘了数据给质量保障过程带来的积极影响,未来,将在此次实践基础上,扩展数据来源,以数据为基础,建立数据与质量的内在关联,对项目生命周期、质量评估、测试策略等各个方面产生积极影响,实现质量保障智能化,更好的完善我们的服务保障能力。
关于我们
宜人蜂巢于2013年由李善任先生(人称麦哥或Michael),在宜人贷内部组建团队并成功孵化的项目。通过8大维度——金融、电商、社交、保险、社保、行为、位置等约20种数据源,千余维度特征,亿级关系网络等,帮助企业做出更明智的信贷决策,以扩大公平和透明信贷的可用性。