
本文深入剖析了保利威如何基于创新性的 “双螺旋模式”、自研测试工具和 “先保障质量,再提升效率” 的核心理念,在 SaaS 业务快速发展背景下,构建高效、可扩展的自动化测试体系,从而更好地服务于业务需求,实现降本提质的目标。我们面临的挑战是如何解决测试资源分配不均、测试效率低下、自动化测试推进缓慢等问题。为应对这些挑战,保利威创新性地提出了 “双螺旋模式”,并自主研发了覆盖接口、性能和 UI 的全方位自动化测试工具链,结合 CI/CD 实现了测试的持续集成。本文将重点介绍保利威如何基于 “双螺旋模式” 构建高效的自动化测试体系,以及如何通过技术手段提升测试效率和覆盖率,最终取得了在回归提速、覆盖率提升和拦截 Bug 等方面的显著成果。本文将为业界提供可参考的 SaaS 自动化测试体系建设经验。
过去的问题现在的思考
背景与挑战
在 2018 年,随着保利威 SaaS 业务的快速增长,测试团队面临着巨大的压力,自动化测试推进缓慢,主要表现在以下几个方面:
测试人员能力不足: 测试团队成员普遍缺乏自动化测试的编码能力,难以应对保利威复杂的 SaaS 业务逻辑。同时,部分测试人员对自动化测试的价值和意义认识不足,导致自动化测试推进缓慢。例如,直播业务模块的回归测试,由于需要手工执行,每次都需要耗费大量的测试人力和时间。
测试资源分配不均: 各产品线各自为战,都希望优先推进自动化测试,导致测试资源竞争激烈,资源在 A 项目和 B 项目之间频繁切换,每个项目测试效率降低了 20%。
自动化工具缺失: 缺乏统一的自动化测试平台和工具,导致测试用例无法有效复用,测试效率较低,并且维护成本高昂,例如,维护一次回归测试用例需要花费 50 小时,测试效率低下导致版本发布周期延长,严重影响了业务发展,无法快速响应市场需求,影响了客户的体验。
核心理念:交付效率与质量的平衡

图一:保利威的交付效率与质量平衡策略
面对交付效率和交付质量的矛盾,保利威团队得出结论:
先保障质量可控,再提高过程效率,通过节省下来的资源去投入到提高质量的过程中。
这一理念指导了保利威自动化测试体系的建设,确保在追求效率的同时,不以牺牲产品质量为代价,从而保障业务的稳定性和客户的满意度。
自动化测试落地实践
为了实现上述目标,保利威从协同模式、人员能力、技术手段等多方面进行了改进。
双螺旋模式:业务测试与测试开发的协同

图二:保利威双螺旋模式
为了更好地保障交付质量和效率,保利威引入了“双螺旋模式”。该模式的核心是将业务测试和测试开发有机结合,构建双螺旋上升的质量保障体系:
测试开发负责旧功能回归: 测试开发团队不再专注于新功能测试,而是深入理解业务,利用技术手段对旧功能进行自动化回归测试,从而提高回归效率。
业务测试负责新功能测试: 业务测试团队则专注于新功能的首轮测试,确保新功能能够快速且有质量保障地交付。
新旧功能的交替: 当新功能经过首轮测试并趋于稳定后,其测试用例将沉淀为旧功能,并由测试开发团队将其转换为自动化用例。测试开发团队对旧功能的回归交付质量负责。
这种模式下,测试开发团队专注于构建质量保障的底座,而业务测试团队则可以更加专注于新功能测试,两者形成协同,共同提高交付效率和质量,确保测试工作真正服务于业务目标。
业务测试从经验型转变到技术型
仅仅依靠测试开发团队对旧功能进行自动化测试是不够的。业务测试团队仍然承担着每周大量的交付工作,为了提高新功能的交付和回归效率,节省时间投入到更深层次的测试用例设计中,业务测试转型势在必行。
为了更好地适应快速迭代的业务需求,业务测试团队必须从经验型向技术型转变,掌握自动化测试能力,以应对繁重的测试任务。
保利威通过内部培训、技术分享、项目实践 等方式,帮助业务测试人员掌握基础的自动化测试技能。 例如,业务人员可以独立完成简单的自动化测试用例编写,并运用自动化工具提升测试效率。业务测试人员通过掌握自动化测试技能,可以更好地理解业务需求,从而设计出更具针对性和业务价值的测试用例,提升测试的有效性,并可以把精力放在探索更深入的业务场景中。
随着技术的不断创新和交付模式的不断改变,保利威的测试团队需要尽快从交付型经验质量向实时技术型质量方向转移。
传统的交付型质量,将测试作为一道道关卡,以任务的形式分布在开发提测和项目发布时,这种方式存在不同角色之间的过多交互,只能起到单点质量保障。实时质量的目标是:将质量手段以模块、组件乃至系统化的方式嵌入到业务应用中,形成实时保障质量的能力。例如,引入自动化技术,首先构建夯实的自动化测试底座,通过 CI/CD 形成核心保护层,然后拓展到多个产品应用场景,落地质量保障。
自动化测试达成标准
在自动化测试投产之前,保利威制定了一系列的标准,确保自动化测试的有效性和可靠性,具体标准如下:
表一:自动化测试标准
自动化测试投产实战
BaaS 服务:业务自动化测试服务
为了长远发展,保利威质量团队提出了分层 BaaS(Business-automationtest-as-services)业务自动化测试服务的目标。该服务的核心是将测试资源和能力进行平台化、服务化输出,能够有效降低测试成本、提高测试效率。该服务的核心是打通业务中心的测试用例库建设,关联分层用例,通过分析研发代码变更影响面,精准推荐测试用例进行持续构建。
分层用例: 将测试用例按功能模块和业务重要性进行分层,例如核心业务流程、关键功能点、边缘功能等。
代码变更影响分析: 通过分析代码变更,找出受影响的功能模块,从而精准地执行相关的测试用例。
持续构建: 通过 CI/CD 流程,将自动化测试集成到日常开发流程中,实现持续测试。


图三:保利威 BaaS 服务架构
工具和平台建设
业界提出的 TestPyramid 测试金字塔
在自动化测试领域,业界普遍采用测试金字塔模型来指导测试策略的制定。测试金字塔模型从下往上分为 Unit 测试、Service 测试和 UI 测试三个层次,层次越低,测试的执行速度越快,成本越低。保利威在自动化测试体系建设中,参考了测试金字塔模型,并结合自身业务特点,构建了覆盖 UI、接口和性能的全方位自动化测试能力。Unit 测试主要用于测试代码的最小单元,例如函数或者类,它具有执行速度快、成本低的特点,通常由开发人员来完成。Service 测试主要用于测试服务与服务之间的交互,包括 API 测试、集成测试等,它能够保证不同服务之间的协同工作,通常由测试人员来完成。UI 测试主要用于测试用户界面,包括功能测试、兼容性测试等,它可以保证用户体验,通常由测试人员来完成。

图四:测试金字塔模型
行业现状
目前,业界在自动化测试方面仍面临诸多挑战,例如测试成本高、维护困难、自动化覆盖率低等问题。同时,在多终端多角色场景下,业界常见的自动化测试方法也存在诸多不足,例如,测试工具难以覆盖复杂的交互场景,测试数据难以管理,测试用例维护成本高等。如上图所示,API 自动化测试和 UI 自动化测试是效率提升最高的两种方式,保利威基于这些行业现状分析,投入资源研发了接口录制回放平台、UI 自动化平台、和 Agent 自动化底座,以应对这些挑战。

图五:工作中使用的效率提升方式
接口录制回放平台
该平台能够帮助测试人员快速生成接口自动化测试用例,无需编写大量代码,极大地提升了测试效率。平台支持 RESTful API 和 WebSocket 协议 的录制和回放,并支持数据驱动和参数化的管理, 从而降低了测试人员的技能要求,降低了人力成本。
HTTP API 录制回放
通过浏览器 UI 操作录制 API 数据,降低自动化用例编写难度,并支持对动态参数的处理和复杂鉴权的设置。


图六:接口录制回放平台-HTTP API 录制回放
长连接 Socket 录制回放
自研服务端录制工具,拦截通讯事件,快速生成回放数据。
优势: 降低用例使用和维护成本,隔离 UI 变化的影响,纯 API 回放速度快。
录制命令示例: java -cp ./analysis-client-1.0.jar com.kang.ChromeRecorder group={录制组命名};role={录制的角色命名};init={录制的初始化页面}


图七:接口录制回放平台-长链接 Socket 录制回放
性能压测平台
该平台基于 JMeter 构建,可以模拟高并发场景,对系统进行负载测试、压力测试和容量测试,并实时监控性能指标。该平台帮助测试人员提前发现系统性能瓶颈,从而避免了线上事故,降低了损失。
监控链路指标: 平台提供全面的性能指标监控,包括 CPU 利用率、内存占用率、响应时间、吞吐量等。
性能测试监控大盘: 提供可视化的大盘,方便用户实时查看性能测试结果。

图八:性能压测平台-性能压测平台架构

图九:性能压测平台-性能监控链路指标
监控链路指标说明

性能测试监控大盘
提供可视化的大盘,方便用户实时查看性能测试结果,支持对性能瓶颈的快速定位和分析。


Agent 自动化底座服务
Agent 底座概述
基于保利威多终端、多角色互动等复杂业务场景,构建基于代理模式的分布式自动化技术架构。每个 Agent 部署成微服务,模拟多用户、多终端使用场景,支持多种客户端。Agent 底座基于 Docker 和 Kubernetes 构建,实现 Agent 的动态注册和发现,并通过消息队列实现 Agent 之间的通信,同时实现了测试任务的分布式调度和执行。 该平台支持多终端多角色场景的测试,从而覆盖更复杂的业务场景,提升了测试的覆盖率。

图十一:Agent 自动化底座架构
UI 自动化测试平台
该平台提供了图形化界面,方便用户编写和管理 UI 自动化测试用例。
特点: 降低 UI 自动化门槛,通过录制或者图形化编辑用例,支持多种元素定位方式(如 ID、XPATH、CSS)和多浏览器多环境的测试。




图十二:UI 自动化测试平台
可观测:测试能力成长
保利威通过代码变更覆盖率来衡量自动化测试的有效性,并不断调整测试用例设计。通过分析代码变更,找出未被测试用例覆盖的部分,及时补充用例,从而达到测试覆盖率的提升。通过以下方式来实现可观测性:
代码变更覆盖度分析: 通过分析代码变更,找出未被测试用例覆盖的部分,及时补充用例。
测试用例与代码关联: 将测试用例与代码模块关联起来,方便查找和管理。
自动化测试平台数据可视化: 提供可视化报表和图表,方便用户了解测试覆盖率、测试结果等。
代码变更覆盖度调整用例设计




图十三:可观测-代码变更覆盖度调整用例设计
自动化测试收获
回归提速: 自动化测试大大缩短了回归测试的时间,每次版本发布平均回归时长节省 50 小时,大大加速了版本发布周期,提高了业务的响应速度 。
回归覆盖率提升: 自动化测试覆盖了更多的功能点,覆盖率从 10% 提升到 70%, 降低了线上缺陷的风险,提升了用户满意度。
自动化拦截 Bug: 自动化测试有效地预防了线上 Bug 的发生,提前拦截了 3 个严重 Bug,避免了线上事故,保障了业务的稳定运行,避免了业务损失。
回归提速效率数据

图十四:回归提速数据
回归覆盖度提升数据

图十五:回归覆盖率数据
自动化测试预防拦截 bug

图十六:某次回归自动化拦截 Bug 数据
写在最后
保利威的自动化测试实践,并非一蹴而就,而是在不断探索和实践中逐步完善的。通过“双螺旋模式”和各种自动化工具的引入,保利威构建了高效的自动化测试体系,持续稳定跑了超过 20 个月,为产品的质量提供了有力的保障,不仅保障了当前业务的质量,更为未来业务发展奠定了坚实的基础。
未来,保利威将积极探索 AI 驱动的智能测试,实现测试流程的智能化和自动化,并构建更加完善的质量体系,以适应不断变化的业务需求,具体目标包括:
更智能化的测试: 引入 AI 技术,实现智能化的测试用例生成和执行,提高测试效率和覆盖率。例如,利用 AI 自动生成测试用例,并基于 AI 进行缺陷检测和分析,从而更好地服务于业务,并可以降低测试成本。
更全面的覆盖: 进一步拓展自动化测试的范围,覆盖更多的业务场景和边缘功能,减少漏测风险,比如覆盖更多的移动端业务和复杂的网络环境。
更完善的质量监控体系: 构建更完善的质量监控体系,实现质量的实时可视化,及时发现和解决问题,并能根据数据分析,自动优化测试策略。
作者介绍:
乐少是一位资深技术和管理专家,专注于软件研发、测试和项目管理。曾在网易等知名互联网公司担任重要技术岗位,主导研发效能提升和自动化测试质量平台的建设。在保利威推动 SaaS 行业企业直播质量测试平台的建设,助力企业降本增效。他注重实践与创新,以结果为导向,通过优化流程和引入新技术推动团队高效发展。乐少在 InfoQ 等平台分享的经验,特别是在研发效能、质量管理和项目管理领域的实践成果,对行业产生了积极影响。
评论