最新文章 更多
​​对象池模式是一种创建型设计模式,它维护一组预先初始化的对象——称为“池”,以便随时使用,而不是按需创建和销毁对象。它通过以下四个简单步骤工作:初始化池:创建并将对象加载到池中。查找合适对象:根据特定标准选择一个可用对象。获取对象:预留对象供专用。释放对象:在使用后将对象返回池中。为什么使用对象池模式?主要好处是高效的资源管理和并行化协同,特别是在运行并行测试时。它还有助于解决常见问题:会话冲突
2025-08-12/80 人阅读/0 人点赞

几周前,我与某人进行了一次结对编程/指导会议,此人联系我是因为他们觉得自己需要一些支持。当我第一次看到他们编写的代码时,我印象深刻。当然,有些地方我会做得不同,但大多数情况下,这只是个人偏好,并不是我的方法比他们的方法更好。我们没有直接修改他们的代码,而是决定从零开始一起构建一些测试代码,在此过程中讨论和应用良好的编程原则和模式。由于测试使用的是TypeScript中的Playwright,并且主
2025-08-12/71 人阅读/0 人点赞

​​在快节奏的软件开发世界中,测试常常被简化为二元对立的争论:手动测试与自动化测试。一些人声称自动化测试是解决所有质量问题的灵丹妙药,而另一些人则认为,如果没有批判性思维和手动测试技能为基础,即使是最好的自动化测试也会不尽如人意。然而,真相介于两者之间。测试不仅仅是执行步骤,它是一个互动的认知过程,需要适应性、创造力和深刻的理解。自动化测试有其用武之地,但它无法取代人类在实时探索、质疑和适应方面的
2025-08-12/65 人阅读/0 人点赞

​​多年来,我看到许多团队在Playwright测试中陷入相同的陷阱——测试不稳定、行为不可预测以及无休止的调试会话。我帮助团队识别了这些反模式,并转向更健壮、更周到的策略,真正发挥Playwright的强大功能。在这篇文章中,我分享了经过艰苦努力才学到的经验,以及一些我在将混乱的测试自动化策略转变为弹性、高效的系统中的示例。我将带你了解一些主要挑战,并提供经过官方Playwright文档验证的提
2025-08-12/77 人阅读/0 人点赞

​​在当今的数字环境中,无障碍性不仅仅是一个法律要求;它是创造包容性用户体验的一个非常重要的部分。无障碍测试确保不同能力的用户能够使用您的应用程序,符合WCAG(Web内容无障碍指南)、ADA(美国残疾人法案)和第508节等标准。本指南深入探讨了无障碍测试,涵盖了要执行的测试类型、使用的工具和要遵循的最佳实践。让我们开始吧🚀无障碍测试是什么?无障碍测试是评估网络和移动应用程序的实践,以确保它们能
2025-08-12/76 人阅读/0 人点赞

​​人工智能辅助测试的个人实践当我第一次接触Cursor时,我对AI驱动的IDE究竟能多大程度提升自动化测试效率持怀疑态度。在同时使用Playwright和Selenium测试工具后,我将从真实场景出发分享经验,帮助同行应对快速演进的技术浪潮。理解Cursor:超越传统IDE的变革Cursor并非简单堆砌AI功能的代码编辑器,而是测试创建与维护范式的根本性转变。基于VSCode构建的它,集成了多种
2025-08-12/121 人阅读/0 人点赞

​​你可能对并行测试执行的扩展策略类型不太熟悉,但在实际工作中,99%的人都在使用它们。我想向你介绍三种扩展策略,以扩展你的知识基础。垂直扩展垂直扩展是通过增加现有系统的处理能力(如CPU或RAM)来满足不断增长的需求。​​垂直扩展:通过增加单个服务器的资源容量(CPU、RAM)来处理更多负载。换句话说,通过增加并行测试执行中的线程数/工作进程数,你就进行了垂直扩展。这种扩展方式受限于测试执行实例
2025-08-12/70 人阅读/0 人点赞

我们都知道,求职是许多人面临的最令人生畏的经历之一,而随着大规模裁员、员工冗余以及市场环境的不稳定,求职并没有变得更容易。我撰写这篇文章是为了所有正在积极寻找新工作的QA(质量保证)同行们,同时也为了那些在当前职位上很安稳,但仍在积极关注市场动态以保持对趋势的领先把握的人。在我写这篇文章的同时,我自己也在重新出发,尝试这些新想法,这些想法都来自于我最近收听的有用的播客和阅读的文章。所以,如果你感觉
2025-08-12/82 人阅读/0 人点赞

测试糟糕应用的乐趣先坦白一件事:我喜欢测试不好的应用。在笨拙的用户界面中导航,点击不起作用的按钮,填写填到一半就崩溃的表单,这种体验有一种奇怪的满足感。这就像玩一个目标是破坏一切的电子游戏——只不过你还拿着薪水。但事实是:再先进的AI和自动化测试,也替代不了测试糟糕应用时的抓狂体验。它们不会因为按钮不起作用或页面加载缓慢而感到烦恼。它们不会在应用一小时内第五次崩溃时暗自咒骂。当然,它们更不会因为找
2025-08-12/75 人阅读/0 人点赞

​​借助大语言模型加速大规模测试迁移Airbnb近期完成了首个大规模大语言模型(LLM)驱动的代码迁移项目,将近3,500个React组件测试文件从Enzyme迁移至ReactTestingLibrary(RTL)。最初我们预估手动迁移需耗费1.5年工程时间,但通过结合前沿模型与自动化方案,仅用6周便完成了全部迁移。本文将重点解析:迁移过程中遭遇的独特挑战LLM如何高效解决此类问题我们如何构建可扩
2025-08-12/69 人阅读/0 人点赞

推荐博客 更多

大家好,我是陈哥。当下,国产化替代稳步推进,不少企事业单位对工作中所用的到信创产品提出了更高的要求。硬件、操作系统和数据库等产品的国产化替代受到了一定的重视,但底层框架的国产化同样不容忽视。正如华为创始人任正非所说:“核心技术是买不来的,只有自主创新才能立于不败之地。”这与禅道的观点不谋而合,我们一直在不断探索和优化软件的架构。在《国产化替代是个伪命题?被误解多年的开源软件,如今怎么样了?

82° /820 人阅读/0 人点赞/0 条评论


《聊聊其他“Ops”(一)》中跟大家简单介绍了DevOps,以及与其概念相近的NoOps、DevSecOps和GitOps。“Ops家族”还包含其他形式,但归根结底,DevOps之所以更为流行,是因为其提供了改进工作流程的最全面的方法,因而被广泛应用。一、DevOpsvs.ITOps接下来,我们将更仔细地了解一下ITOps。许多开发人员将ITOps视为DevOps更传统的版本,但实际上它不止

134° /1341 人阅读/0 人点赞/0 条评论


大家好,我是陈哥,今天想和大家聊聊敏捷团队项目的准时交付~敏捷方法和硬性期限看似是两个不相容的概念。提到“敏捷”,我们通常会想到灵活性、适应性、迭代和持续改进,而“期限”往往与固定日期、最终性和时间压力有关。实际上,敏捷与期限并非完全对立,它们之间可以找到一个合适的平衡点,使得项目既能保持灵活性,又能遵守时间节点。正如知名敏捷教练玛丽·波彭迪克(MaryPoppendieck)所说:准时交

182° /1828 人阅读/0 人点赞/0 条评论


大家好,我是陈哥,今天想和大家聊聊Git合并冲突解决~背景前几天,我正好收到了一位读者的留言:又又又又遇到了Git合并冲突,解决冲突比写代码还费劲,突然想起SVN的好。该怎么避免Git冲突啊?我想,比如这样?在我看来,Git合并冲突是不可避免的。在本文,我想和大家简单分享一下遇到Git冲突该如何解决,希望对大家有所帮助。在此之前,我们先来了解一下Git的合并冲突是什么以及合并冲突的类型有哪

275° /2758 人阅读/295 人点赞/0 条评论


大家好,我是陈哥,今天聊聊禅道的代码提交规范~背景在《还不知道这个原则的程序员,要小心了》的文章中,我提到了禅道的代码提交规范。简单来说,我们将工具融入到禅道团队的日常代码提交过程中,利用工具对流程、行为进行规范和约束。接下来,我将从编码规范、测试规范等方面,和大家简单分享一下禅道团队的代码提交规范。为了方便大家了解和学习,大家可以发送【代码提交规范】,免费领取禅道团队的代码提交规范。

311° /3118 人阅读/293 人点赞/0 条评论


一位读者在看过我的《理解这八大优势,才算精通单元测试》后,问我:知道单元测试有好处,但实在没空写。看完文章后又想重新落实一下,有没有啥写好单元测试的技巧?这位读者绝对不是第一个和我抱怨单元测试的人。这很好理解,中国互联网公司太多太卷,想要抢夺市场就要推出不同功能,而这些压力一部分落在了程序员身上,拼命赶需求。单元测试这种费力不讨好的事情,自然而然就没有人做。就我多年的经验来看,写单元测试其实不

340° /3401 人阅读/293 人点赞/0 条评论


在准备将软件上线到生产环境之前需要进行测试。随着软件测试方式日趋成熟,软件开发团队的测试也在取代大量手动测试,逐渐实现自动化测试。通过自动化测试,开发团队可以在短短几分钟内就了解到软件是否存在问题,而不需要等待几天的时间。自动化测试大大地缩短了反馈周期,与敏捷开发、持续集成和DevOps文化密切相关。本文将分为上、下篇来探讨如何构建一个高响应、可靠并且可维护的测试组合,无论是针对微服务架构、移动

466° /4665 人阅读/292 人点赞/0 条评论


作为开发人员,我们应该遵守这样一句话:“质量不是来自检查,而是来自生产过程的改进。”——爱德华·戴明 “测试即代码。”太多的组织将任何未编码的东西视为一次性的。很明显,测试是必不可少的,但我们一次又一次地发现,团队将测试自动化和相关材料视为二等公民。测试是用户行为的文档,与产品组织产生的需求密不可分,并在虚拟层面与用于创建功能的代码相连。 如果它提供了价值,就应该对它进行版本化、维护、照顾和尊重,

488° /4881 人阅读/189 人点赞/0 条评论


技术性债务在DevOps到底意味着什么?从本质上讲,这是小的开发缺陷的积累,需要不断地返工。它可能由多种原因引起,例如快速交付新功能的压力,这可能会导致团队不得不牺牲代码的整洁和完善。但这些不完整的小代码,如经济上的债务一样,随着时间的推移会产生“利息”,在软件工程里就表现为修改的挑战或添加新功能的困难。 一、技术债务的原因技术债务的主要原因之一是组织的开发方和业务方之间的脱节。开发团队经常会感到

422° /4229 人阅读/270 人点赞/0 条评论


在《TDD、BDD、ATDD都是什么、有什么区别?(上)》一文中,探讨了探讨TDD、BDD和ATDD的概念。虽然TDD、BDD和ATDD都是软件开发中使用的测试方法,但它们在方法和重点上有所不同。TDD、BDD和ATDD之间的主要区别在于关注点、抽象层级和协作。1、关注点TDD侧重于测试代码并确保它满足需求。BDD关注软件的行为,并确保它满足业务需求。ATDD关注于验收标准,并确保软件满足业务

465° /4652 人阅读/184 人点赞/0 条评论