Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于 DevOps 的精准测试体系构建与实践论文

发布时间:2023-09-23 15:12:08 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)

  摘 要:本文从精准测试的含义、与传统测试的区别、精准测试的关键点、实现机制、如何引入以及全链路集成几个方面 说明如何构建精准测试体系,用于企业 IT 业务版本交付中的高质量把控,助力 IT 信息化。
  Construction and Practice of Precise Testing System Based on DevOps

  MEI Song, ZHAO Chunsheng, YANG Yujie, CAO Yi

  (Nanjing Customs of the People's Republic of China, Nanjing Jiangsu 210000)

  【Abstract】: This article explains how to build an accurate testing system, the content is about the meaning of accurate testing, the difference between accurate testing and traditional testing, the key points of accurate testing, the implementation mechanism and how to integrate into every link in the software life cycle, it can be used for high-quality control of enterprise IT business version delivery and help IT informatization.

  【Key words】: precision testing;basic data construction;code coverage;full link integration

  0 引言

  软件创新是支撑新一代网络信息技术建设的关键灵 魂,是支撑数字经济跨越式发展实现的核心基础,是实 现制造实力强国、网络强国、数字城市中国的建设蓝图 的强大关键支撑。2021 年 11 月,工业和信息化部印发 《“十四五”软件和信息技术服务业发展规划》中指出 “新发展格局赋予产业新使命”任务, 明确不断提升软 件产业创新活力,坚持补短板、锻长板,夯实产业发展 基础,着力打造更高质量、更有效率、更可持续、更安 全的产业链和供应链。在海关企业信息化中,项目建设 不足,导致后期运维工作繁琐以及运维处于被动救火状 态的痛点,本质上对海关供应链系统高质量高速交付提 出了新的要求,借此我们引入基于 DevOps 理念的高速 高质量交付中精准测试体系,这也是当前软件交付领域 研究和实践的一个热点。

  1 精准测试在 DevOps 交付中的概述

  1.1 精准测试定义

  精准测试也是一种测试技术和方法的总体称谓。相 较于市场其他更为普通的测试,精准化测试即是指在传统产品的测试或研发设计过程中,通过借助互联网技术 手段直接进行对当前所有的被待测试的产品程序所进行 的一个 360°全方位的产品全景仿真测试,将对其产品测 试研发的全过程完全进行可视化、数字化、标准化,最 终实现产品的被待测完成后的程序快速上线运营的稳 定、无风险、维护与运营管理成本低的目标等优势 [1]。 和国内其他的传统测试模式相比简单得复杂起来,精准 的测试模式只针对需要经过计算机的自动采集存储后生 成出来的海量的完整准确的、不能再随意的被任何恶意 软件篡改或者删除的原生态的测试结果样本数据,同时 由计算机自动对所有的这些样本原始的数据信息也进行 了自动汇集、分析,并同时能直接输出带有针对测试人 员的培训指导,避免掉了由于以往在传统的测试过程模 式中需要的人力记录而带来的极高时间成本性与低真实 性所导致的问题。

  1.2 在 DevOps 交付中的核心特性

  在研发运维一体化 ( 简称 DevOps) 交付中,测试 工作融入到了项目生命周期的每个环节,也带来了诸多 挑战,如频繁部署甚至一天多次上线,导致测试时间紧张,甚至变成不可能完成的任务,原来大量集中测试变 成高频快速自动测试且对编码能力、精准测试提出新的 要求,本文通过智能源码审计、数据建设,双向自动关 联机制自动识别所有变动的源码、接口、功能清单并进 行精准测试,核心特性如下 :

  (1)智能源码静态审计前置 , 通过多种工具化审计 手段,不是靠单一的单元测试以保证审计覆盖率,而是 通过分别进行从单元测试、坏态味道、路径分析、漏洞 分析、质量分析、崩溃捕获分析等多种全方位智能代码 静态审计分析,并能够通过丰富多样的分析报表形式和 各种技术债务与审计风险指标结合进行展示 [2] ;(2) 不 改变原来的软件测试设计与执行方法,功能测试时将测 试用例和代码关联,功能测试用例映射到代码层 ;(3) 建立测试过程数据、测试过程用例库和测试代码间的自 动双向关联机制和自动追溯体系 [3]。

  1.3 Devops 交付中精准测试体系构建的关键点

  由于 DevOps 交付运营过程中包含有大量的数据 信息、测试验证,重难点是精准测试体系的建立,特别 是数据选取和精准引入问题。我们将结合蕴含 DevOps 理论、多维测试评估等多种技术理论知识,循序线性切 入,覆盖研发全生命周期的软件质量提供解决方案。该 解决方案包含代码覆盖率、Code 与 Case 精准关联、 全链路集成三个方面,如图 1 所示。
\

  2 精准测试在 DevOps 的实现机制

  2.1 主流覆盖率工具及其实现逻辑

  质量问题主要来自植入源头,精准测试体系目标也 是为了从源头上改进系统过程。企业通过自底向上的规 范及工具化审计,内建质量,避免缺陷向下流转。根据 开发前端、后端、数据库等编码规范,选型出工具集, 例如 Sonarqube9.4 版, 扫描插件中包括 Checkstyle、 FindBugs、PMD-P3C、PLSQL-ZPA ;通过 以下两种 方式实现主流覆盖率 :

  (1) 通过在 IDE 集成开发工具环境上安装扫描插件 (Checkstyle、FindBugs、PMD-P3C、PLSQL-ZPA) , 配置规则。(2)安装 Sonar 和对应的插件环境,通过 Jenkins 配置持续扫码任务 ;全方位智能代码静态分 析,从开发架构来看包含前端、后端、数据库 ;从源码 本身来看,包含规范性指标如代码编码格式、命名规范、注释规范 ;内建质量指标如空指针、死代码 ;单元 测试覆盖率等 ;设计指标如代码重复率、严谨性等 ;安 全指标包含安全合规性检查、安全漏洞扫码。

  2.2 Code 与 Case 精准关联

  分析测试程序时,通过代码覆盖信息要比直接 Debug 要显得容易和更精准很多,有了代码覆盖率,我们能够 先后地完成分析被待测的程序、指导测试设计、测试用 例对设计代码质量做出的量化和评估标注、对版本质量 给出了基本的评估等。

  下面我们分别举例 Code 与 Case 的精准关联实例, 如图 2 所示为 Code 与 Case 的一对多正向关联 ;如图 3 所示为 Code 与 Case 的反向关联。
\

  2.3 自动化测试引入精准测试

  有了代码质量评估,还需要更快速灵活地来适应各 种市场需求变化,快速更好地迭代产品版本和快速交付 产品。其精准性还需更进一步,以下将是自动化测试如 何做到精准基础数据建设的方法。

  首先自动化测试用例标准步骤包含数据准备、业务操 作校验、数据清理三个部分。为了尽可能提高数据获取方 法的数据准确性,需同时消除并彻底隔离对来自第三方的 操作或者行为导致的数据获取干扰, TestCase 将在执行 过程开始进行前先彻底清除被干扰的数据, 同时为了保 证 TestCase 能够在整个执行过程结束后,就可以直接 获取所有与用例之间完整数据关联信息的覆盖率数据,会 同时彻底清除之前已经被成功地获取到的干扰的数据 [4]。 在精准的测试和高覆盖率数据快速获取的数据驱动模式下,通常存在 TestCase 同时关联单个应用的场景和 TestCase 关联多个应用的场景。

  TestCase 关联到单个测试应用的场景模式下,为 了保持其精准性,例如junit/Java TestNG 等测试工具 就必须保证在每个测试用例执行完成后的 Dump 模式 下覆盖率数据。针对 junit4@Test 注解的用例,我们 还可 以直接通过修改 BlockJUnit4ClassRunner 类 中 的 runChild 方法,在每次执行完用例后进行覆盖率数 据的 Dump。针对其他开源工具,也需要自定义服务动 作,在 Set Up 中清除干扰数据,在 Tear Down 中获取 用例完整关联的覆盖率数据 [5]。

  TestCase 关联 N 个应用场景下,第一步个性化定制 Sonar,在 Tcpclient 模式下启用注册监听机制,注册到 Sonarqube ;第二步通过Jenkins 管理Job 和应用的关 联关系 ;第三步 Sonar 提供覆盖率收集服务和质量度 量分析服务 ;第四步自动化管理平台在 TestCase 执行 完成后,发起覆盖率数据收集。

  3 全链路集成

  精准测试体系在近几年 CI&CD 中的应用价值明 显,主要体现在提高大型项目的测试用例回归效率、根 据版本变化能动态赠别关联的自动化回归测试用例、 辅助人工定位回归范围并降低人工选择测试的盲点、 CI&CD 中的风险预警,还有通过双向回溯,确定版本 迭代的影响范围,最终我们将整个链路总结为 :需求 -覆盖率 - 影响范围 - 双向回溯 - 新增 - 变化覆盖,如图 4 所示。
\

  4 结语

  本文重点阐述精准测试在 DevOps 的实现机制。以 DevOps 技术理论为指导,形成全链路集成精准测试体 系。使用代码精通扫码分析技术以及自动化设计方法, 对软件 CI&CD 中质量管理进行循序渐进的数据驱动、 变更代码覆盖率从源码、功能测试案例引入精测分析与 测试案例关联,从而构建基于 DevOps 的全链路精准测 试体系。当然也存在一些不足之处,比如如何解决实际 研发的痛点,还需进行深入挖掘和研究。

  参考文献

  [1] TMQ精准测试实践团队.不测的秘密 精准测试之路[M].北 京:机械工业出版社,2018.
  [2] 徐焱,陈俊杰,李柯俊,等.Java代码审计(入门篇)[M].北京:人 民邮电出版社,2021.
  [3] 李龙.软件测试架构实践与精准测试[M].北京:人民邮电出 版社,2018.
  [4] BEUST C,SULEIMAN H.Java测试新技术:TestNG和高级 概念[M].王海鹏,译.北京:机械工业出版社,2008.
  [5] DUVALL P M,MATYAS S,GLOVER A.持续集成:软件质量改 进和风险降低之道[M].王海鹏,译.北京:机械工业出版社,2008.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/63647.html

相关内容

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml