excel学习库

excel表格_excel函数公式大全_execl从入门到精通

转型之路,敏捷为先,质量为本!


该项实践部分已发表金融电子化公众号,部分申报过证券信息技术研究发展中心(上海)2019年行业共研课题。


转型之路,敏捷为先,质量为本


1

Part.1

敏捷形势之下,测试团队的自我变革

随着敏捷开发模式在IT领域有越来越广泛和深入的应用,测试团队也被要求能适应快速迭代、快速响应的敏捷开发模式,实现研发全过程和上下游团队的高效协作。


德邦证券科技团队主要的项目类型包括外购研发类项目和自主研发类项目。


外购研发类项目一般有明确的验收需求,适合稳态研发模式。测试团队以明确的测试需求为验收依据,按照传统的测试体系,出具测试计划、验收测试用例、执行、给出测试结论和缺陷清单。


自主研发类项目一般需求按迭代规划,循序渐进的方式完成,但每个版本的迭代要求响应时间短、版本迭代快速,适合敏捷开发流程。


目前,外购研发类项目和自主研发类项目并存,且在公司“成为全球领先的科技投行”的战略愿景引领下,德邦证券科技条线上下正积极推动数字科技创新,打造自主知识产权产品序列,故而自主可控产品的研发需求日益增多。

2

Part.2

借转型之机,构筑测试敏捷化能力

信息技术部测试团队为了实现从传统测试流程向稳态和敏态并存的测试模式转型,对测试服务平台做了整体规划,如图1所示。通过测试管理平台、自动化测试、质量管理和技术赋能四大部分,输出测试团队可提供的测试服务。

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


同时也对工作职责和服务模式做了变更,如图2所示,根据不同项目组或室的需求,对于项目版本固定,本身测试资源已不足的情况,满足部分测试人员专职分配到项目组,加强需求、开发、测试的融合;对于项目或者项目版本不固定,或测试资源流动性较大,测试人员按任务分配方式进行,测试项目相对固定,支持测试人员根据不同排期并行处理不同组测试任务,防止测试资源浪费,也能满足需求、开发、测试的融合的需求。


另外测试组所有人员按技术研究方向分为自动化测试、数据测试、性能小组等,进行平台、框架、工具、测试方法的专项研究和应用实施,以保证专业方法论、质量管理、测试工具平台和测试资产的充分利用,发挥测试的专业能力。

德邦证券测试组工作职责和服务模式

3

Part.3

管理和技术的双靴落地,赋能稳敏双态质效提升

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


  1. 观念先行,引入测试敏捷化价值观

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


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


2. 稳敏共存,上线敏捷测试流程


测试团队日常工作所占百分比最大的测试类型是功能测试,并且主要集中在集成测试和系统测试两个测试阶段。故我们选择的实际应用场景主要覆盖如上类型和阶段。


外购研发类项目适合稳态的研发模式,这类项目的特点一般有明确的验收需求,测试团队以明确的测试需求为验收依据,按照传统的测试体系,出具测试计划、验收测试用例、执行、给出测试结论和缺陷清单。


自主研发类项目适合敏捷开发流程,这类项目的特点是一般需求按迭代规划,循序渐进的方式完成,但每个版本的迭代要求响应时间短、版本迭代快速。整体研发基本业务流程图如图所示,对应了敏捷管理、开发流水线,部署流水线、测试流水线部分。

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


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


3. 两手抓,搭建分层自动化测试体系


分层自动化测试体系建设主要从匹配有效的管理机制和自动化测试工具建设两个方面着手。


【无规矩不成方圆-匹配有效的管理机制】

根据测试团队的实际情况,通过测试设计的分层,将手工测试、接口自动化测试、UI自动化测试分层,每一层按照不同的测试对象对应了不同的测试需求、测试方法和策略执行,确保在系统升级或变更后能快速全面地进行冒烟和回归测试,持续快速地提供质量反馈,目前已在科技条线研发类项目中普遍使用。


德邦测试团队实践的测试活动分层设计如图所示:

测试活动分层设计


在每一个版本迭代中并不是像图中有如此明确的阶段划分,而是每个迭代中每个模块都按此阶段持续进行,我们可以把它看成一个原子流程。


需求&设计阶段:

1) 测试团队参与需求设计、代码设计、接口设计、数据库设计的各项评审活动;


2) 需求设计评审后以及产品需求完善过程中,持续进行功能测试设计,产出功能测试用例,在代码设计、接口设计、数据库设计评审后,测试团队也会不断完善功能测试用例;


3) 在代码设计、接口设计、数据库设计评审后,测试团队进行接口测试设计,产出接口功能测试用例,并根据接口设计进行接口测试脚本编写;


4) 同时对上一个版本的功能测试用例进行分析,进行UI自动化测试设计,按策略选择UI自动化测试用例,并进行UI自动化测试脚本编写。


开发阶段:

1) 测试团队持续优化测试用例,并组织测试用例评审;


2) 接口测试用例持续优化,接口测试脚本编写完成,等待调试;


3) UI自动化用例持续优化,UI自动化测试脚本编写和调试,完成后可纳入UI自动化测试代码管理库,供UI冒烟测试或UI回归测试任务选择,并可持续执行。


功能测试阶段:

1) 开发团队提交测试,测试团队通过Devops智能云平台,新建持续集成相关流水线,包括构建部署,代码扫描,接口自动化测试,UI自动化测试;


2) 每次持续部署后,会执行接口冒烟测试和UI冒烟测试,冒烟测试通过后,测试团队执行功能测试用例;


3) 测试团队根据接口功能测试用例调试接口测试脚本,执行接口测试脚本,测试通过的接口测试用例脚本,纳入接口自动化测试代码管理库,供冒烟测试或接口回归测试任务选择,并可持续执行;


4) 测试团队根据功能测试用例执行,同时也会引入探索测试概念,在执行过程中不断优化完善测试用例,直到测试完成,达到可上线标准。


回归测试阶段:

1) 测试团队对新功能进行回归测试;


2) 对接口进行接口回归测试;


3) 对老功能进行UI自动化回归测试。


目前接口自动化测试和UI自动化测试已纳入到持续集成流水线中,采用的持续集成流水线如下,如图所示,并且实现了可以在任意节点调用自动化测试任务,也可以和其他服务并行或串行处理,以服务的形式提供自动化测试的执行,产生的自动化测试报告可以自动发送到邮箱,无需人工干预,以满足回归测试基本功能验证的需求和研发持续集成自动化功能验证的需求。

持续集成流水线


自动化测试依然依赖于测试工程师的设计,无法发现新的问题,在目前的测试团队测试过程中不会代替手工测试。


根据测试团队的实际情况,通过测试设计的分层,将手工测试、接口自动化测试、UI自动化测试按照一定的方法和策略执行.


分层和实施的具体策略:接口自动化测试在自动化测试分层中所占比例最高,投入最大,主要覆盖所有稳定接口以及接口功能用例;UI自动化测试相对接口来说,稳定性底,投入成本高,主要运用于冒烟测试,回归测试两个阶段,在自动化测试分层策略中所占比例较小,投入较小,主要覆盖稳定功能的主流程以及重要功能用例的实现.


在实施上会考虑项目、模块、用例的优先级,以及实施的难易程度,以功能覆盖广度优先,兼顾功能深度,并采用分期实施、持续迭代的方式,将调试完成的脚本纳入版本库,保证自动化测试用例在持续集成流水线中实时可运行,以此实现小步快跑,快速质量反馈的目标。


【工欲善其事必先利其器-自动化测试工具建设】


测试流水线平台搭建,适用的才是最好的!


在目前已实现的DevOps智能云平台中实现测试流水线,通过测试流水线模块,实现测试管理,支持手工测试管理和自动化测试管理,能够建立一种“流水线”作业模式。


手工测试支持“需求管理-测试需求分析-测试用例设计-测试计划制定-测试执行管理-缺陷管理-测试报告管理”完整的测试流水线。


自动化测试能够支持“需求跟踪-自动化测试用例管理-自动化用例设计-执行-监控-缺陷管理-执行报告管理”等完整的自动化测试流水线。


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

测试流水线平台化


接口自动化测试框架设计和实施,以人为本,让测试人员只需关注设计。


测试团队原有的接口测试服务使用的是Jmeter,目前采用了更适合接口自动化的测试框架Python+Pytest+Request+Allure+Excel,如图所示:

接口自动化测试框架


其主要实现功能如下:


1) 一套代码,实现所有项目接入,无需针对每个项目编写测试代码,代码维护成本低;


2) 接口测试实施无需coding,只需针对每个项目创建一个Excel文件,进行用例编写,每个sheet作为一个suit,可以单个suit、单个case执行,降低测试人员参与的门槛;


3) 支持Swagger/Yapi等接口工具,支持har文件,支持自动录制等方式,自动化一键生成测试用例,减少测试人员繁琐重复的工作;


4) 支持多种途径辅助生成测试用例数据,补充入参、断言等,减小接口用例编写工作量;


5) 支持多种/多个数据库连接,支持数据管理与脚本分离,支持微服务接口自动化测试,让接口测试更加灵活和稳定;


6) 入参依赖丰富,支持参数化传参以及多组入参数据同时传入;支持接口响应依赖-jsonpath风格($.test_case_no.data);支持数据库依赖-$.db.dbname;支持关键字依赖-$.kw.today ,支持全局变量依赖-$.globals.key;


7) 支持灵活断言方式:响应-响应、响应-数据库、响应-常量等;


8) 支持项目级setup/teardown,用例级setup/teardown;项目级setup_class-项目执行前初始化环境/数据等,项目级teardown_class-项目执行完成后清理环境/数据等,用例级setup-当前用例执行前初始化环境/数据等,用例级teardown-当前用例执行完成后清理环境/数据等;


9) 解决redis验证码、入参加密等接口测试痛点;


10) 集成jacoco实现代码测试覆盖率功能;


11) 支持多种入口查看报告,钉钉、Email、Devops等,支持移动端在线查看测试报告,内容详细并可追溯历史;


12) 多种方式实现持续集成。


测试人员脱离了代码和脚本,降低了技术门槛和用例维护难度,测试人员无需关心代码及脚本问题,只需要关注测试用例的设计和编写。


框架也在持续优化中,也在继续进行集成流量回放功能,接口响应diff,对接数据平台等方向的研究和改进。


接口测试实施如图所示。

测试报告钉钉通知


测试用例执行概览


测试用例执行详情


UI自动化测试实施,与众不同,只求更快。


实施工具:基于 JavaScript 的前端测试工具Cypress,可以对浏览器中运行的任何内容进行快速、简单、可靠的测试,允许编写所有类型的测试,覆盖了测试金字塔模型的所有测试类型界面测试,集成测试,单元测试,我们的实践结果发现虽然Cypress比传统Selenium自动化测试工具有它自己的缺点,但是更快更稳定,这也是我们选择Cypress的重要原因。


实施范围:需求变更不频繁的项目或者模块;项目周期较长,迭代较多;自动化测试脚本可重复使用。


实现策略: 重点项目、重点模块、高优先级用例优先实施,在此基础上容易实现的优先实施。


主要实现流程如图所示。

UI自动化测试实施流程


1) UI自动化测试设计阶段:测试团队中,UI自动化测试负责人组织UI自动化测试设计评审,功能测试负责人参与,以功能测试用例为依据,根据功能模块优先级、功能测试用例优先级,选择需要转换成UI自动化测试的功能测试用例,如图所示:

UI自动化测试用例


2) UI自动化开发阶段:UI自动化测试负责人负责UI自动化测试脚本的编写、调试,脚本稳定执行后,纳入自动化测试用例配置管理库,并加入持续集成流水线,如图13所示:

UI自动化测试纳入持续集成流水线


3) UI自动化测试执行阶段:持续集成流水线或自动化测试启动后,调用UI自动化冒烟或回归测试任务,任务执行完成后,功能测试负责人可邮件收到测试报告或者在系统中查看测试报告,分析报告,将UI自动化测试发现的缺陷提交开发团队修改,将UI自动化执行脚本问题,提交UI自动化测试负责人修改,如图14所示:

UI自动化测试报告

4

Part.4

转型之路,“敏捷”和“质量”双赢


自2018年起,德邦证券测试团队跟随敏捷开发模式的推广,开启了转型之路,即从传统测试流程向稳敏双态并存的测试模式转型。


转型过程中,测试人员坚持以快速交付高质量并且符合业务预期的软件为首要目标,强调跨团队协同,强调测试无处不在,通过对整个持续集成&分层自动化测试的工具链的研究,实现从代码管理、质量检测、自动化构建、接口自动化测试、UI自动化测试的一体化流程的建立,以及相应的实现测试需求管理、测试版本管理、测试环境管理、测试数据管理、测试用例和执行结果管理、测试报告自动化生成的全链自动化测试流程。


随着整个流程的不断发展和完善,敏捷测试已逐渐让系统的可用性在频繁代码提交下也可以得到充分验证;同时,软件的集成周期和交付速度也在不断进化,越来越靠近速度和质量“双赢”的局面。

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

双态IT联盟成员单位


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接