扫码阅读
手机扫码阅读

规模化软件开发中如何治愈自动化测试不稳定的顽疾?(上)

68 2025-05-01

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:规模化软件开发中如何治愈自动化测试不稳定的顽疾?(上)
文章来源:
软件质量报道
扫码关注公众号
文章摘要

文章摘要

译者按:文章介绍了自动化测试中的不稳定测试(Flaky Test)问题及其对研发效率的影响,并分享了通过自动检测和隔离失败测试用例来解决这一问题的具体做法。

1. Flaky Test的挑战

Flaky Test是指自动化测试用例在相同测试环境中多次执行却获得不同结果的问题。这种测试的不稳定性在大规模团队开发中尤为突出,导致持续集成(CI)构建失败率高,影响代码合入效率和开发人员体验。DevXp团队通过指标如开发人员情绪、CI稳定性、代码合入时长(TTM)等,努力优化测试基础设施,但测试任务失败率一度达到57%。

2. 自动隔离系统的应用

团队通过引入Flaky Test自动隔离系统,将测试任务失败率从57%降低至5%以下。该系统自动检测和隔离不稳定测试用例,减少人工排查时间,提高开发效率。虽然Flaky Test并非新问题,但在规模化开发活动中,它对团队协作和软件质量的影响愈发显著。

3. 规模化开发中的挑战

DevXp团队管理规模巨大的代码库和测试集,每周处理550多个Pull Request,运行超过27,000个自动化测试。这种规模导致的测试不稳定问题无法完全依赖开发人员手动排查,特别是存在责任分散效应。人工排查一个失败测试用例通常需要28分钟,显著增加了开发成本。

4. 不稳定测试的分类

不稳定测试分为两类:独立的不稳定测试(单独运行失败)和系统性问题导致的不稳定测试(因共享状态或CI环境差异失败)。后者更难调试,且对CI稳定性和开发效率影响更大。开发人员反馈显示,设备依赖型测试的不稳定性尤为突出。

5. 人工排查流程

团队最初依赖人工排查失败测试任务,包括通知开发人员失败原因、反复重试测试、调试历史记录、隔离测试用例等。这一过程虽然提高了测试稳定性,但效率较低。因此,团队决定将排查流程自动化,以减少开发人员的重复工作和提升CI稳定性。

6. 软件测试架构师的角色

文章最后提到Flaky Test自动隔离系统是否由测试架构师设计,并引发关于软件测试架构师职责、技能和知识的探讨。这表明解决测试不稳定问题需要深入的架构设计和技术支持。

想要了解更多内容?

查看原文:规模化软件开发中如何治愈自动化测试不稳定的顽疾?(上)
文章来源:
软件质量报道
扫码关注公众号

本公众号致力于健康、安全、绿色的软件生态,分享软件质量管理、软件测试的思想、方法、技术与优秀实践,追踪软件质量领域的热点,及时报道软件质量管理的成功案例或质量事故,以及分享深度思考、有温度的技术文章等,努力成为您工作中的朋友。

43 篇文章
浏览 27.9K
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线