基于敏捷模式的分层自动化测试体系建设与应用

VSole2021-10-22 08:05:12

随着敏捷开发模式在IT领域有越来越广泛和深入的应用,测试团队也被要求能适应快速迭代、快速响应的敏捷开发模式,实现研发全过程和上下游团队的高效协作。为适应敏捷开发模式,德邦证券于2018年开始构建DevOps体系,并配套研发了DevOps智能云平台。信息技术部测试团队也随之开始从传统测试流程向稳态和敏态并存的测试模式转型。首先,测试团队对测试服务平台做了整体规划(如图1),通过测试管理平台、自动化测试、质量管理和技术赋能四大部分,输出测试团队可提供的测试服务,推动IT团队的敏捷化,最终实现IT团队的整体业务目标;其次,通过引入测试敏捷化概念,辅以敏捷化的开发测试流水线,强调以业务价值为核心,实现从代码管理、质量检测、自动化构建、接口自动化测试、UI自动化测试的一体化流程的建立,以及相应的实现测试需求管理、测试版本管理、测试环境管理、测试数据管理、测试用例和执行结果管理、测试报告自动化生成的全链自动化测试流程。

其中,基于敏捷模式的分层自动化测试体系是整个服务平台规划的重点和亮点。测试团队分别对敏捷测试流程、持续集成、分层自动化测试以及相关工具进行研究和探索,在DevOps智能云平台实现测试流水线,并结合德邦证券现有IT团队的状况和研发流程进行实践。

图1    德邦证券测试服务平台整体规划

建设过程

德邦证券信息技术团队主要的项目类型包括外购研发类项目和自主研发类项目。外购研发类项目一般有明确的验收需求,适合稳态研发模式。测试团队以明确的测试需求为验收依据,按照传统的测试体系,出具测试计划、验收测试用例、执行、给出测试结论和缺陷清单。自主研发类项目一般需求按迭代规划,循序渐进的方式完成,但每个版本的迭代要求响应时间短、版本迭代快速,适合敏捷开发流程。目前,外购研发类项目和自主研发类项目并存,且在公司“成为全球领先的科技投行”的战略愿景引领下,德邦证券科技条线上下正积极推动数字科技创新,打造自主知识产权产品序列,故而自主可控产品的研发需求日益增多。这就要求测试团队既能适用原有开发模式的测试需求,又能适应快速迭代、快速响应的敏捷开发模式,基于敏捷模式的分层自动化测试体系建设势在必行。

引入测试敏捷化价值观

引入《双态IT联盟-测试敏捷化白皮书》中对测试敏捷化的定义,是指在与软件生命周期所有交付品质相关的活动中,通过对组织、文化、流程、技术等要素进行优化与改进,使得测试能够贯穿于研发全过程,并与上下游团队高效协作;能够在业务与技术水平上持续提升,达到自我驱动、灵活赋能、快速交付、高效稳定的最终目标。

测试团队积极创新,打破组织壁垒,引入测试敏捷化价值观,研发团队融合协作,协同交付,软件测试全线贯通三个阶段,通过测试左移、右移,实现测试在软件工程全生命周期的参与。

上线敏捷测试流程

整体研发基本业务流程图如图2所示,蓝色部分对应了敏捷管理部分,红色部分对应了开发流水线部分,绿色部分对应了部署流水线部分,黄色对应了测试流水线部分。

图2    敏捷模式下研发基本业务流程

在目前已有的敏捷开发模式下的项目中,测试团队通过参与每个迭代的需求讨论和评审以及冲刺会议,进行测试需求的分解、测试设计的分层设计,实现接口自动化测试、UI自动化测试的分层自动化测试,实现测试职能左移来支持软件产品的快速交付。

搭建分层自动化测试体系

1.匹配有效的管理机制。引入分层自动化测试,除了自动化测试工具建设还需建立有效的管理机制,建立自动化测试用例库,通过标准的自动化测试流程,对软件系统业务逻辑进行自动化的基础功能验证,确保在系统升级或变更后能快速全面地进行冒烟和回归测试,持续快速地提供质量反馈,目前已在信息技术部研发类项目中普遍使用。

2.保证持续快速的质量反馈。根据测试团队的实际情况,通过测试设计的分层,将手工测试、接口自动化测试、UI自动化测试分层,每一层按照不同的测试对象对应了不同的测试需求、测试方法和策略执行。分层和实施的具体策略:接口自动化测试在自动化测试分层中所占比例最高,投入最大,主要覆盖所有稳定接口以及接口功能用例;UI自动化测试相对接口来说,稳定性低,投入成本高,主要运用于冒烟测试,回归测试两个阶段,在自动化测试分层策略中所占比例较小,投入较小,主要覆盖稳定功能的主流程以及重要功能用例的实现;而在实施上会考虑项目、模块、用例的优先级,以及实施的难易程度,以功能覆盖广度优先,兼顾功能深度,并采用分期实施、持续迭代的方式,将调试完成的脚本纳入版本库,保证自动化测试用例在持续集成流水线中实时可运行,以此实现小步快跑,快速质量反馈。

实际应用

在目前已实现的DevOps智能云平台中实现测试流水线,实现测试用例、测试计划、测试执行和自动化测试的管理。制定自动化测试流程的实施流程和规范,在德邦已有平台和流程的基础上,实现敏捷管理、开发流水线、测试流水线和部署流水线的打通,需求、开发、测试全流程的统一管理平台。

敏捷管理。引入敏捷开发流程,通过敏捷管理模块,展示项目基本信息,整体排期,通过项目需求、任务、冲刺、看板、人员分配、问题管理、燃尽图等管理项目的开发、测试进度情况,通过需求池、迭代规划,版本发布情况等规划整个项目管理过程,实时了解项目排期和运作情况。敏捷管理模块,前端功能页面定制开发,后端调用Jira接口的方式实现。

开发流水线。通过开发流水线模块,实现代码仓库管理,包括创建代码仓库、拉分支、打标记、合并等。开发流水线模块,前端功能页面定制开发,后端直接调用GitLab接口的方式实现。

部署流水线。通过部署流水线模块,实现持续集成,包括部署环境管理、静态代码检测任务管理,应用部署管理,流水线作业管理等。部署流水线模块,前端功能页面定制开发,后端通过调用Jenkins接口,实现持续部署任务的调度。部署方式包括主机部署、容器部署。

测试流水线建设。引入测试敏捷化概念,实现从代码管理、质量检测、代码覆盖率统计、自动化构建、接口自动化测试、UI自动化测试的一体化流水线的建立,以及相应的实现测试需求、测试版本、测试环境、测试数据、测试用例、执行结果、缺陷和测试报告的管理和数据统计。

通过测试流水线模块,实现测试管理,支持手工测试管理和自动化测试管理,能够建立一种“流水线”作业模式。手工测试支持“需求管理-测试需求分析-测试用例设计-测试计划制定-测试执行管理-缺陷管理-测试报告管理”完整的测试流水线。自动化测试能够支持“需求跟踪-自动化测试用例管理-自动化用例设计-执行-监控-缺陷管理-执行报告管理”等完整的自动化测试流水线。

测试流水线模块,前端功能页面定制开发,后端对接Jenkins和自动化测试工具,通过Jenkins直接调用Katalon、Jmeter、Python命令行来执行自动化测试,并对接各自动化测试工具获取自动化测试结果的方式实现。

通过DevOps智能云平台实现研发测试流程的一体化。将测试流水线和原来的敏捷管理和开发流水线、部署流水线打通,实现统一平台的管理,使过程数据实时统计成为可能;通过测试管理的规范化和自动化测试流水线,提高产品过程质量,降低产品风险,并节省流水线中人工干预的时间。

价值突破

自2018年起,德邦证券测试团队跟随敏捷开发模式的推广,开启了转型之路,即从传统测试流程向稳敏双态并存的测试模式转型。转型过程中,测试人员坚持以快速交付高质量并且符合业务预期的软件为首要目标,强调跨团队协同,强调测试无处不在,通过对整个持续集成&分层自动化测试的工具链的研究,实现从代码管理、质量检测、自动化构建、接口自动化测试、UI自动化测试的一体化流程的建立,以及相应的实现测试需求管理、测试版本管理、测试环境管理、测试数据管理、测试用例和执行结果管理、测试报告自动化生成的全链自动化测试流程。随着整个流程的不断发展和完善,敏捷测试已逐渐让系统的可用性在频繁代码提交下也可以得到充分验证;同时,软件的集成周期和交付速度也在不断进化,越来越靠近速度和质量“双赢”的局面。

后续在平台中,2021年德邦证券技术团队正在持续充分挖掘各类测试数据的价值,建设分类评价的指标体系,结合能效提供相关量化指标,为分析和改进研发流程和测试流程提供度量标准,从而促进研发资源的合理分配和监控,整个研发效能和产品质量的双提升,业务价值持续输出。

(主要成员:陈凌云 李宁 洪佩雯 张鹏 陈炎 胡万里 李宛哲)

自动化测试敏捷测试
本作品采用《CC 协议》,转载必须注明作者和本文链接
为适应敏捷开发模式,德邦证券于2018年开始构建DevOps体系,并配套研发了DevOps智能云平台。
看到国内外不少机构在总结:“2020年最好的持续测试工具”,比如: ...... 还有的机构或公司试图给出“什么是持续测试?”的定义,比如: ....... 这说明,随着敏捷开发和DevOps的推广,持续测试这个概念确实越来越火...
近年来,随着业务快速交付诉求的增加以及敏捷开发模式的流行,越来越多的企业都采用DevOps模式进行项目开发,DevOps越来越多地出现在各大商业银行的重点工作中。2020年中国农业银行建成了从需求、开发、测试到部署的端到端持续交付流水线,并通过了 DevOps 标准持续交付部分的3级评估。探索具有农行特色的DevOps建设之路,仍需在DevOps各个环节的不断摸索与实践,尤其在企业落地敏捷及Dev
日前,由上讯信息与中桥咨询联合打造的国内首部《中国CDM技术及市场应用白皮书》(以下简称“《白皮书》”)正式发布。《白皮书》指出,数字经济需要新一代功能多元化、部署智能化,以及自动化、智能、全流程数据安全的数据管理平台。这一平台可通过有效的数据管理流程,降低数据环境搭建对人员、存储、带宽资源的消耗;以精细化的数据管理,满足敏捷测试、开发、审计和品控,以及事件分析的需求,以及保证各种业务场景下数据的
目前DevOps相关的概念很多,比如DevSecOps、AIOps、SRE、CI、CD等。这么多概念往往让人很困惑,搞不清楚彼此之间的关系。不少人喜欢用图1来解释DevOps、敏捷、CI、CD等之间的关系,不过这可能会造成对DevOps的误解。 我们都知道DevOps要形成闭环,但仅仅关注闭环还是不够的,更别说仅关注研发或者CICD了。作为云原生思想之一,DevOps的核心是围绕应用生命周期过程
“什么是持续测试”,它具有下列三个特点: 测试可以随时开展起来,且具有连续性,平滑有序地打通整个测试过程,从测试左移到测试右移,从单元测试到端到端的系统测试,从静态测试到动态测试,从测试分析到测试报告 测...
上一篇文章“2020年软件测试趋势报道:彻底实现持续测试(中)”介绍了持续测试实现框架中的实现基础(测试数据管理、DevOps工具链集成、服务虚拟化)和中间过程中的“基于风险的测试分析”。今天接着介绍实现框架中的其...
我国“十四五”规划对数字中国建设、数字经济发展进行了战略部署,要以数字化转型整体驱动生产方式、生活方式和治理方式变革,工商银行积极对标数字化转型国家战略,提出了围绕“数字生态、数字资产、数字技术、数字基建、数字基因”五维布局打造“数字工行(D-ICBC)”的总体方案。工商银行软件开发中心积极推动研发管理领域的数字化转型,打造企业级的DevOps工具链,建立了研发管理全流程的协作枢纽,赋能金融科技队
相关市场研究报告数据说明,与整体 API 流量相比,API 攻击流量增长了三倍。API安全建设刻不容缓。目前,大多数WAF不具备这方面的检测功能。虽然这些都是重要的功能,但它们不足以提供有效的API保护。迄今为止,大多数API网关不具备Bot检测、低频慢速的攻击行为分析。所以,企业不应该存在侥幸心理,应该为防御API的恶意攻击做好充分的准备。
IP地址冲突是指在局域网中某主机配置了与其他主机相同的IP地址导致原主机无法正常处理业务,这种信息故障事件对于实时交易业务尤其是金融行业业务会带来严重影响,快速检测网络中IP地址冲突并定位至关重要。
VSole
网络安全专家