AI智能总结
持续测试工程实现价值 郑欣 公司职位高效运维社区资深技术专家 曾就职于大连创盛,EMC²,立思辰,作业盒子等企业,担任测试管理相关工作。专注于测试团队效能提升改进,敏捷化转型,DevOps改造等相关领域的工作。 传 统 测 试v s持 续 测 试 目录 D e v O p s持 续 测 试 标 准 介 绍 测 试 现 状 与 标 准 要 求 总 结 传统测试vs持续测试 传统测试——企业测试实践的普遍状况 效能谜团 团队进行了长期的自动化建设投入,但是并没有在效能方面获得显著的收益 缺陷谜团 团队依靠自动化脚本发现的问题并不多,大量问题的发现还是依赖人工操作 质量谜团 测试人员越来越多,但是线上质量并没有越来越好 管理谜团 工作流程中仍然无法规避过多的人工卡点,人工智慧和经验无法复用。宝贵资产随人员流动而流失 偏见谜团 人们常常认为,质量是测试部门的事情,和其他角色无关 发展谜团 测试组织、人员、流程、技术该向何方发展? 传统测试——企业测试实践的普遍状况 测试团队自身的困惑 01.经验和知识 04.测试度量 经验和知识依托于个人,没有成为有价值的组织能力 测试过程难以度量,需求覆盖率、代码覆盖率,缺陷密度等指标无法得到准确数据 05.工具平台 02.测试流程 工具平台能力无法集中赋能,有重复建设和局部能力支撑不足的情况 测试流程不连贯,过多的人工卡点造成流程效率低下 06.测试左右移 03.变更应对 受制于上下游局限,无法有效通过测试左右移,完成有效的全阶段测试工作 变更应对能力弱,用更多的全量回归防止质量回退,耗时耗力 BizDevOps企业峰会·城市行-北京站 传统测试——影响交付成本和效率的主要因素 传统测试中,测试阶段通常发生在开发阶段后,所以缺陷出现较晚,在集成阶段集中爆发。 传统测试中,测试从开发提测后开始,缺陷从集成阶段被发现和修复。间隔较长的反馈周期,造成系统修复成本居高不下。 这还导致产品缺陷随着迭代而大幅度波动,这导致缺陷总是集中爆发,集中修复,无法实现缺陷预防的。 从被动到赋能,DevOps催生持续测试 软件研发相关的测试活动发展至今,经历了三个主要阶段: u发展阶段: Ø上世纪80年代到本世纪初,以瀑布模式为主Ø系统和集成测试耗费了大量时间和成本Ø以手工测试为主 u敏捷阶段: Ø本世纪第一个十年,研发模式向敏捷模式转型Ø测试分层金字塔出现Ø自动化测试比例不断提高 uDevOps阶段: Ø最近10年,DevOps思想的不断发展和传播Ø与持续交付流水线相融合Ø覆盖软件全生命周期的持续测试闭环 持续测试就是DevOps时代的软件测试方式。 BizDevOps企业峰会·城市行-北京站 我国DevOps持续测试蓬勃发展 政策助推DevOps持续测试快速发展 测试左移、自动化测试等持续测试实践加速落地 根据《中国DevOps现状调研报告(2022)》统计,测试左移正在加速,持续测试逐渐在行业中落地。 “推动科技管理敏捷转型。建立能够快速响应需求的敏捷研发运维体系,积极引入研发运维一体化工具,建设企业级一站式研发协同平台。建立适应”敏态”与”稳态”的全周期线上交付管理流程,完善数字化交付管理体系。通过精益生产管理方法,提高对大规模科技队伍和复杂技术工程的管理能力。“ Ø17.74%的企业实现了在需求阶段设计测试、开发阶段完成测试,体现了完全的测试左移和测试驱动开发,同比增长23%;有22.95%的测试在代码开发前介入,代码级和接口/服务级测试均在代码开发时同步进行。 Ø累计超4成企业实现测试的部分左移。 ——2022年1月中国银保监会《关于银行业保险业数字化转型的指导意见》 此外,自动化测试依赖测试工具来实现,测试管理和自动化测试工具已成为了DevOps中非常重要的环节之一。企业对自动化全流程的诉求愈来愈强,测试自动化已成为提升企业测试效率的必经之路。 “聚力攻坚基础软件,推进软件集成开发环境相关产品和关键测试工具的研发与应用推广”。 Ø自动化代码扫描、单元测试、接口测试自动化率占比约七成,均同比上涨5%左右。自动化比例超过或接 近30%的测试类型包括冒烟测试、开发自测、回归测试、UI测试、性能测试、安全性测试、用户验收测试、系统集成测试、稳定性测试、可用性测试、可靠性测试,其中主要的非功能测试自动化比例都有显著提升。 “加速程序静态分析、动态测试、仿真测试、自动化测试平台等测试工具研发”。——2021年11月工业和信息化部 《“十四五”软件和信息技术服务业发展规划》 Ø目前,一些新兴的测试技术自动化率较低,包括模糊测试(7.42%)、全链路测试(11.21%)、混沌测试(13.29%),是未来自动化测试工具的主要发力方向。 BizDevOps企业峰会·城市行-北京站 DevOps持续测试标准介绍 持续测试的概念及范围 持续测试概念 持续测试(Continuous Testing)是指软件持续交付流水线中的一种可随时开展且具有连续性的自动化测试流程。特点: Ø测试左移 Ø测试右移Ø自动化 持续测试标准范围 本文件规定了组织在软件研发运营一体化(DevOps)中进行持续测试的方法和能力成熟度模型,适用于具备IT软件研发交付运营能力的组织和项目,对持续测试能力建设进行评价和指导。本文件旨在帮助组织通过持续测试提高测试效率、增强交付能力、保障交付质量,支撑组织实现价值的持续交付。 DevOps持续测试标准框架 在DevOps系列标准快速推广的背景下,为了帮助企业建立完善的持续测试体系、增强企业DevOps综合能力、提升软件交付质量和效率,2022年,中国信息通信研究院牵头与多家重点行业头部企业单位共同参与研制的行业标准《研发运营一体化(DevOps)持续测试能力成熟度模型》。 Ø标准从DevOps过程出发,将持续测试流程分为: 需求阶段测试、开发阶段测试、集成阶段测试、验收与发布阶段测试、运营阶段测试、持续反馈。 对应在DevOps迭代周期中,持续测试从敏捷开发的需求侧开始,到技术运营的运维监控,形成了端到端的持续测试闭环。 Ø除持续测试流程外,持续测试能力还包括测试通用基础能力和持续测试效能度量。测试通用基础能力是持续测试流程的支撑,是实现持续测试的所有资源和风险管理的集合;持续测试效能度量覆盖测试的全流程,持续优化组织测试和研发运营能力,体现测试效能和成果。 部分编写单位:中国信通院、中国联通、农业银行、中国银行、中信银行、人保财险、中金公司、中泰证券、中移金科、京东、百度、东软集团、华佑科技、移动云能、金证科技、中软国际、广通优云等(以上排名不分先后) BizDevOps企业峰会·城市行-北京站 测试现状与标准要求——持续测试贯标价值 需求阶段 通过成熟度级别的贯标:测试人员能够了解并能够根据测试提出需求,保证了需求具有可测试性、完备性,让各角色对需求达成一致的理解,并让测试工作充分左移。 需求阶段是软件研发的初期阶段。在需求阶段中,业务人员发现并形成用户故事,并进行用户故事的拆分。 企业在需求阶段现状存在一些亟待解决的问题,如: Ø自动开展需求评审准入检查Ø需求缺陷的预防能力Ø验收测试驱动开发(ATDD) 测试设计与测试计划 通过成熟度级别的贯标:在测试计划阶段可实现对于测试对象、流程、执行等等环境进行全面、尽早的规划。 测试计划描述了测试活动的范围、方法、资源和进度的集合;它确定测试项、被测特性、测试任务、执行任务人员/主体、及其他可能的风险,是对测试过程管理的准备、执行、人员等安排的总合。企业在测试计划实践中存在难点,如: 用例设计开发 通过成熟度级别的贯标:测试人员尽早根据评审生成的需求文档和测试分层策略的设计,高效率高质量生成完备的测试用例。 用例设计作为测试的重要环节,包括了手工用例和脚本两个部分,在设计实践中存在过于依赖设计人员能力,过于依赖人工评审等问题,是测试改进的重要阵地。企业在测试计划实践中存在难点,如: 开发—单元测试 单元测试指开发人员编写和维护的、用来运行产品源代码的一些小部分并检查结果的小程序片段。开发人员通常编写大量单元测试构成测试套件来对应程序行为。 通过成熟度级别的贯标:让企业在开发阶段尽早发现问题,提高交付质量,实现快速、频繁、高质量的单元测试。 企业在单元测试中存在一些难题,如: 测试准入准出 传统的测试中,准入标准指从软件源代码开发阶段进入测试的标准,测试准出是组织完成质量测试晋级部署的环节,是决定产品交付质量基准的环节。 通过成熟度级别的贯标:准入准出标准全面提高了持续测试的频率和效率,保障产品满足设置的质量标准和要求基线。 企业在准入准出环节的实践也存在一些问题,如: 缺陷管理 缺陷管理是指在软件生命周期中,对程序出现的所有错误进行识别与管理、确定缺陷进行修复和记录的过程。 通过成熟度级别的贯标:测试发现的缺陷被跟踪管理而不丢失,缺陷能够快速解决并且通过分析反馈实现缺陷预防和优化开发。 企业在缺陷的统计分析和价值提炼中需解决包括: Ø缺陷分布等统计结论,对瓶颈进行发现和优化改进Ø早期推荐预防历史缺陷Ø精准判定缺陷影响范围 测试平台能力 通过成熟度级别的贯标:测试平台可以针对不同测试阶段中的单个或多个测试对象,提供系统的自动化测试能力,产出测试报告,提高测试效率和产品质量。 测试通用基础能力指对持续测试全流程的支撑能力,包含测试流程规范、测试人员管理、资产管理、环境管理、数据管理等。这些能力需要持续测试平台进行打通。持续测试平台是测试过程中使用的通用平台类或服务类的工具 Ø组织级具备前端界面的测试平台/工具Ø可用性保障Ø专属团队负责Ø覆盖主要的测试阶段和测试内容 企业在持续测试平台中急需实现的功能包括: 企业现状 Ø流水线集成整合,全流程自动化Ø与流程管理/审批平台对接打通Ø使用记录留痕、统计和权限等审计功能Ø支撑项目组自助服务 Ø智能化服务,测试过程的持续改进 测试效能度量 通过成熟度级别的贯标:能够建立起完整的测试效能度量指标体系和展示平台,并通过度量实现持续改进。 测试效能度量,在大部分传统企业中仍处于建设初期,在度量指标的确定、基础指标的收集、指标加工算法、指标分类分级,可视化展示等方面均需进行大力建设。 Ø各阶段度量指标设计,指标分类分级,线上管理;Ø角色自定义展示,展现趋势Ø反馈按照周期,纳入工作项改进 企业在效能度量中急需实现的功能包括: Ø度量模型设计,精细化管理触达团队Ø度量平台化,可自定义;度量数据能够上卷下钻Ø自动化告警、生成改进工作项并跟踪 Ø智能化加工、推荐指标,自动调整指标优先级Ø智能化展示、加工、预测、告警Ø自动完成聚类分析计算,持续改进 持续测试贯标收益总结 帮助企业提炼和复用高价值资产 帮助企业建设现代化测试团队 帮助企业开展度量体系建设 帮助企业进行缺陷预防体系建设 帮助企业提升全民质量意识 BizDevOps社区高效运维社区荣誉出品