您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2023 DOIS DevOps 国际峰会 · 北京站暨 BizDevOps 企业峰会]:白瀚雄-持续测试标准_构筑 DevOps 交付质量护城河 - 发现报告

白瀚雄-持续测试标准_构筑 DevOps 交付质量护城河

AI智能总结
查看更多
白瀚雄-持续测试标准_构筑 DevOps 交付质量护城河

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