软件测试的演进方向与能力建设
测试效能平台背景
数字化时代带来的“大链接”,直接催化了“消费升级”,消费者占据市场主导地位,传统车企投入大量资金和精力在产品技术研发的同时必须要做思维转变,数字化思维和意识需要贯穿企业的全过程,包括决策、核心价值链、创新业务等活动的全过程,测试也不例外。在上汽营销域以往的测试建设中,我们处于测试成熟度的2.0阶段,以自动化测试为测试建设的主要目标。在企业进入数字化建设的时期,测试也同样必须升级,将测试建设踏入平台化阶段,从组织的视角来提高系统测试效率。
图1 质量架构演进方向
业内测试价值探索
根据业内对于平台化测试的定义,我们引发了思考,我们与互联网的差距在哪里?如何质量度量?如何决策质量改进点?研发效能是否能提高?如何量化管理?2019年底,我们开始对测试效能提升的探索。
研发全流程视角的效能痛点分解
我们先要知道效能低在哪里。2019年底,通过调研,我们发现软件研发流程中的效能问题常见的有如下:
◆需求不按时锁定,评审不充分,开发质量参差不齐,提测延迟,造成人力等待;
◆ 环境、数据等问题造成测试效率低下;
◆ 无分层测试、无链路追踪导致BUG定位难;
◆ 代码变更影响范围不确定,浪费人天做全量回归;
◆ 无覆盖率度量,替代人工测试可信度低;
◆ 无历史数据度量,无法反映成果趋势;
图2 研发全流程效能痛点
为系统性的解决效能痛点,我们需要从流程、工具平台及能力三个方向来寻找解决方案。
图3 研发效能系统解决方案
从起步的难易程度及紧迫性考虑,我们可以优先建设如下几点:
1、 测试流程及规范建设;
2、 生产资料-测试环境治理
3、 自动化、分层测试及链路追踪;
4、 代码变更测试及覆盖率度量。
测试效能平台方案
测试效能平台的建设目标:
※ 测试过程-对焦精确;
※ 测试结果-度量准确;
※ 测试能力-纵向分层;
※ 用户体验-快速反馈。
图4 测试效能平台建设目标
基于测试团队能力及规模现状及用户诉求,我们采用如下建设原则:
★ 解决首要痛点,小步前进,结合团队能力现状,不做过度建设。
★ 与现有工具链结合,尽量不更改研发人员习惯。
测试效能平台业务模型及建设重点
根据我们的目标,我们设计了测试效能平台建设模型,该模型分为3个层次,为测试者服务是我们第一步要解决的问题,第二阶段为我们的效能度量。当第一阶段和第二阶段基本夯实后,我们再来看组织效能的工作。
图5 效能平台业务模型
测试效能平台方案
平台实现需要考虑一个现实:平台的用户是谁?用户需要平台完成什么工作?用户代码能力现状是什么?选择满足大多数人的能力还是通过平台拔高用户代码能力?
2020年初在经过调研分析,明确测试效能平台的用户为开发及测试后,我们进行了充分的用户诉求分析,最终确定平台必须满足低代码、图形化、可扩展的要求。孵化测试效能平台产品,并设计平台的功能框架如下:
图6 测试效能平台功能模型
测试环境为开发测试的基本生产资料,是开发交付的关键依赖,但测试环境布局容量小,版本更新频繁,稳定度低,这都导致测试环境故障频发,阻碍开发测试工作进度的推进。为了与平台及人员能力的建设相辅相成,我们另辟一条路线进行测试环境治理。对测试效能改进双管齐下。在测试环境的治理中,我们需要做到如下3个目标:
• 提供可靠的数据及稳定的环境;
• 资源合理并高效利用;
• 提升研发团队测试环境认知,加强故障分析定位能力。
测试效能平台实施
效能平台的实施分为工具平台建设及用户群体培养两个方面。工具平台一期主要是自动化测试的实施,用户群体培养主要是测试人员能力培养。
自动化测试实施
伴随效能平台及自动化测试的长久建设,我们对自动化测试采取分级保障及分级运行的策略。4个级别的用例定义如下:
P0:主场景用例
P1:核心接口正向用例
P2:核心接口异常用例
P3:非核心接口用例
P0和P1级别的测试用例为必保通过,P2和P3级用例为可选执行。
用例的上线与下线由生产访问量决定,对高访问量接口做重点关注,及时关停下线的或者无访问量的接口。将人力投入在需要的场景及接口上,才能做到聚焦且控制成本。
人员能力培养
测试效能除了政策上的推行,还需要营造氛围文化,让用户进入平台建设的共创中来,活跃的技术社区氛围至关重要。与以往常规的技术培训及分享会不同,我们倡导通过自主式挑战学习措施来提升人员能力:
1、 举办自动化测试workshop,对人员能力进行了差异化的培养。让测试人员自主讲解用例及分解思路,其他人员进行点评,帮助测试人员明晰自动化测试规范;
2、 鼓励测试人员寻找平台BUG,充分参与平台建设并获得用户共创满足感;
3、 选择部分具备高自动化要求的业务版块,发展代码能力较强的同学切入白盒测试,从而获得个人成长满足感;
4、 鼓励同学们开拓思维,参与业务技术峰会及技术牛人主题学习,由外部力量来输入成长动力;
5、 与流程体系结合,对测试质量进行度量及测试能力评优,通过表彰及模范的作用来引导自动化测试文化建设。
测试效能平台效果
经过一年的持续治理,测试环境故障在5分钟内响应,测试环境可用性达到99%。
经过6个月的实施,平台终于具备了产品线级测试管理、多语言兼容自动化测试、自定义度量的能力。而测试人员在持续参与体系共建的过程中,也发生了能力及方向的分化效应。
测试人员意愿度
效能平台以低代码式自动化接口测试,测试介入门槛低。平台提供图形化接口测试的编排能力;多样化的接口测试编排信息来源。自动化测试用例支持手动编写及录制方式。这些特性使得测试人员使用平台意愿高。配备定期的用例评审讨论会,加强测试人员对自动化测试规范认知,形成自动化测试的技术氛围。
图7 各条线测试效能平台活跃度
测试用例质量
测试用例质量直接决定产品上线质量。通过用例校验率的宣贯和持续跟踪,我们让用例膨胀的同时也保持甚至提高了测试用例的校验率,让测试用例看得见,能放心。
图8 测试效能平台用例校验率
代码质量控制
用例的通过率是检验我们代码版本质量的关键指标之一。为全天候无死角的卡控代码变更的回归质量,我们将自动化测试执行分为两个层级:
1) 核心系统回归用例自动化测试与代码分支部署挂钩;
2) 全量用例每天夜间执行一次。
3) 通过用例通过率的指标我们对用例健壮性及代码质量做双向追踪及控制。
经过持续的追踪,我们让各条线全量用例的通过率保持在80%以上,核心系统每次代码变更的P0及P1级用例通过率保持在100%。
图9 各条线自动化测试用例通过率
人员能力
通过1年的训练,测试人员的扁平能力分层有了显著的分化,通过多个项目以战练兵,测试团队的人员能力从3层分化到6层,整个测试团队具备了应对分层测试、架构改造的能力。截止到目前:
l 2021年度后端接口漏测故障为0;
l 100%人员参与自动化测试;
l 13%的人员具备白盒测试能力, 10%人员具备架构测试能力;
l 3名测试人员转变为测试开发;
l 4人独立项目管理能力;
在保障高质量交付及创新能力的同时,开发测试比同时有提升。交付线测试开发人员比从2.2提高到3:1,费用比提升至了3.5:1。
图10 测试团队人员能力分层
后续展望
研发效能是一个长期演进的过程,在我司的当前阶段,研发效能不适宜用大力出奇迹的策略,应采用小步前进,单点突破,及时纠偏纠错的策略。在下一步,测试应将视野扩大到整个组织级的效能,将研发效能建设推进到下图中的第三阶段,逐步过渡到研发过程的效能建设中,横向拓展护全局,纵向深入抓风险。
图11 研发效能的四个阶段
下一步,我们将做如下尝试:
1、 上线后的生产验证效能;
2、 需求与开发代码、测试执行的效能深挖;
3、 对开发、测试自研工具的生态支持及文化建设等。
以平台化方式支持研发效能建设,这是我们数字化研发利剑的一个旅程。路漫漫其修远兮,吾将上下而求索。作为持剑人的我们,也需在建设过程中精修内功,同时以开放的态度来学习行业的优秀经验,并将落地成为我们自己的最佳实践。
本文来自:数据及信息系统部(上汽乘用车)
-------- THE END --------