关于自动化测试:DevOps-时代的高效测试之路

3次阅读

共计 2649 个字符,预计需要花费 7 分钟才能阅读完成。

10 月 22 日,2021 届 DevOps 国内峰会 在北京顺利召开,来自国内外的顶级技术专家独特畅谈 DevOps 体系与办法、过程与实际、工具与技术。CODING 测试及研发流程治理产品总监程胜聪(Diego)在大会现场承受了 CCTV《态度》栏目组的专访,也在 DevOps 最佳实际及解决方案专场为大家分享了他的主题——DevOps 时代的高效测试之路。

测试正在成为继续交付的最大瓶颈

业界对于测试的焦虑由来已久。从 2017 年开始,行业开始对测试窘境造成共识,即测试不够快成为导致交付延期的次要起因。之后,行业开始强调自动化测试,提出打造疾速反馈环、流水线工作流和工程文化等理念。

在这种背景之下,Diego 认为,继续测试是 DevOps 时代的高效测试之钥。测试作为一项根底的、继续的流动,理当贯通于整个软件交付周期之中。继续测试扭转的是传统测试后置的工作模式,让测试流动延长到 SDLC 的每个阶段。

高效测试须要以自动化为实际基石

从一项对于测试工夫破费的调研中能够得悉,测试执行占了总工夫的四成。因而如果要晋升整体测试效率,首要的就是通过自动化来晋升测试执行的效率。然而,测试团队发现即便在 CI 中配置好自动化代码库,因为待执行的用例汇合是固定的,随着自动化测试覆盖率晋升、自动化代码越来越多,运行工夫越来越长,于是运行频率却越来越低,成果并不如人意。

Diego 指出,只是默默地写自动化代码是不够的,自动化测试须要 ” 更聪慧地执行 ”。如果可能人工地将需要(Req)、用例(Case)以及自动化函数(Func)关联在一起,灵便确定测试子集会让测试变得更加自在。如果某个自动化函数运行失败,则能够迅速定位到某个有问题的需要,团队再依据问题的优先级和影响,来断定是否可能持续公布。

新的时代,新的流程

在新的时代,提倡新的流程。继续测试并不仅仅只是自动化测试、还有对流程的全局优化,这须要咱们从单点(执行)效率的晋升延长到全局效率的晋升。工具 / 技术改良过程效率(efficiency),而流程会指向正确的后果(effectiveness)。

那么,DevOps 时代须要什么样的测试流程?

首先,Diego 认为麻利宣言的四个“高于”清晰的指出了研发应该关注于为用户带来价值的行为和后果,而不是过程中的产物。

然而只管合作很重要,却不意味着流程、文档、打算不重要。只有软件的复杂度还在,有助于软件顺利交付的流程、文档、打算都是必要的。只是须要相应变动、与时俱进——转为轻流程、简洁文档、尽早打算,或“演进式”的流程 / 文档 / 打算。

DevOps 须要更轻,更强调角色合作的流程。测试团队首先须要围绕需要发展测试,策略性定义子集,并且确定基于危险的测试策略。其次,团队须要推动测试左移,让测试与开发并行工作。在这个阶段,须要实现的工作包含单元测试、测试评审、代码扫描,以及基于接口定义的开发和自动化测试。最初,还须要实际测试右移,让“测试永不退出”—— 在部署之后,还须要进行线上的实时监控,保障问题失去疾速发现和解决。

此外,DevOps 还须要强壮的标准和疾速的反馈。Diego 认为:研发“一致性”是效力晋升的根底,标准可能升高合作中的人为产生的主观复杂度、防止不必要的上下文了解。而疾速反馈不仅仅是缩小手工操作的“劳力破费”、更重要的是缩小成员的“心力损耗”,让成员能够专一于本人的工作,不必要在不同平台之间来回切换。软件开发的艺术成分应该被关进笼子里,而在软件开发中并不需要艺术的局部,例如机械的判断抉择、和协同所需操作,应趋向于科学化和量化。

腾讯云外部落地实际的分享

最初,Diego 向现场观众分享了腾讯云 CODING 团队外部的落地实际,展示研发一体化的高效测试是如果实现的。

在研发过程中,存在各种各样的流动。研发团队中的不同角色,如产品、开发、测试以及运维个别都只关注本人所负责的流动,而后不同角色流动之间也存在关联,合作产生的流动便造成一个残缺的工作流。在此基础之上,退出准入准出标准能够让合作更加强壮,而主动操作则让流动更加高效。CODING 正是基于这样的逻辑,来为研发流程的高效治理设计出 CODING Compass 这一产品。

然而,DevOps 不应该只是研发团队自嗨的畛域,咱们还须要跟业务价值连接起来。通过把研发流动映射到业务人员所相熟的阶段:打算、开发、测试、部署,并且放弃对 Lead Time(前置工夫)、Process Time(解决工夫)、% of Completeness &Accuracy(实现 & 精确百分比)等指标的关注和继续改良,造成价值流治理。

接下来,Diego 向大家介绍了腾讯云 CODING 团队是如何将测试流动嵌入其中的。

首先,迭代布局阶段会围绕着需要发展测试,策略性的定义测试子集。测试与开发严密合作,同时认领同一需要工作。而当迭代 Backlog 确定下来之后,也就示意测试范畴定下来了,测试计划就能够创立,而需要的验收规范也就能够间接转换为性能点用例。

而在迭代进行时,测试和开发并行进行工作,在开发人员编码单测的同时、进一步细化用例使之残缺,并及时进行评审。在写自动化用例的时候,咱们能够利用 CODING 平台的帮忙实现自动化用例与性能用例的关联。

从而,当从测试计划中发动测试执行,关联的自动化用例会被指定执行。

通过践行研发一体化的高效测试,团队的高频公布失去了松软的撑持,月均胜利公布次数 400+,需要的测试覆盖度 96%,而且笼罩骨干的自动化用例集通过继续重构基本上维持在 1400 的数量(冒烟自动化用例必须要在 15 分钟内执行结束)。

最初,Diego 总结道:CODING 之所以能实现高效的测试,3 个方面理念的转变是尤为要害的。

首先是突破职能筒仓、实现目标共享。在过来开发和测试人员的指标通常是割裂、甚至互相对抗的,开发人员看重写了多少行代码,测试人员则关注发现了多少个 bug。正确的观点应该是赋予团队同一指标,让不同角色围绕业务需要开展工作,独特交付高质量的软件。

其次是,扭转“阶段式交接”为“小步快走”的工作模式。开发和测试应该以同样优先级程序来解决需要,这样到了交付的时候失去的是成品而非“半成品”。一方面在全局通过管制在制品数量来缩短交付工夫,另一方面在部分则通过自动化的伎俩来进行单点的减速。

最初,则是实现了真正为团队成员赋能。赋能并非要求所有人都是全才,而是让团队成员都释怀的与其他人合作、或者应用其他人提供的工具和服务。为了解除疑虑、保障合作过程的顺畅,通过标准规范的设定来晋升流动的一致性,为团队效力晋升带来踊跃的影响。

正文完
 0