跳转到主要内容
Fugen Services logo

软件工程

测试应抓住回归问题,而非为提升覆盖率数字而测试

一个测试套件值得拥有,前提是它能让你在周五放心部署。大多数测试套件做不到,原因有二:要么测试的是代码而非行为,导致每次重构都会崩溃,而结账功能损坏时却仍能通过——要么就是不稳定到所有人都会反复重跑直到绿灯。

参考报价

起价£4,500

开发前以书面形式确定固定价格。

获取报价+44 7488 265083

此方案解决的问题

覆盖率百分比是导致这种情况的根源。追求 80% 覆盖率会产生数百个针对琐碎函数的测试,却对创造收入的四个核心流程一无所用。同时,不稳定的测试套件还会产生危害:它会训练团队忽视红色警示,这比完全没有测试更糟糕。

您将获得的服务

测试创收流程

注册、登录、搜索、加购物车、结账、支付、管理履约。优先覆盖这些流程,其余功能再考虑测试。

在正确层级使用正确测试

逻辑使用单元测试,数据层使用集成测试,仅对真实流程使用端到端测试。端到端测试速度慢且脆弱;若滥用,便是测试套件被废弃的原因。

零容忍不稳定测试

不稳定的测试即缺陷,必须修复或删除,绝不允许通过重试强行通过。使用确定性等待与种子数据,避免任意睡眠。

集成 CI 作为门控

在每次拉取请求时运行,并在失败时阻止合并。运行时间需足够短,避免有人因此跳过测试。

无障碍与跨浏览器检查

关键页面自动化 axe 检查,并实际在 Chrome、Safari 与 Firefox 中运行。仅在 Safari 中出现的布局问题很常见,若只在 Chrome 中测试则无法发现。

可诊断的失败

失败时自动捕获截图、录像与追踪,使红色构建能在两分钟内诊断,而非耗费半天本地复现。

我们的工作方式

  1. 找出关键路径

    如果某个流程中断一小时,会让您损失金钱或客户,那么这就是测试计划的重点。

  2. 评估现有测试

    审查现有测试,确认其真实断言。部分测试会保留,部分会删除———个无法有意义失败的测试比没有测试更糟糕。

  3. 搭建测试框架

    数据预置、固件及可重复运行测试的环境。

  4. 自动化关键路径

    优先覆盖核心流程的端到端测试。

  5. 集成CI门禁

    接入CI系统并设置必需检查项,同时保持测试套件运行速度。

  6. 移交维护

    开发人员按照相同模式编写测试,因为一个仅由外包承包商维护的测试套件,在其离职后将无法继续维护。

您应当期待什么

  • 在发布前捕获收入关键流程的回归问题
  • 团队信任的测试套件,红色即代表停止发布
  • 部署前无需再手动逐步验证
  • CI中的失败可直接诊断,无需本地复现

构建于

  • Playwright
  • Cypress
  • Vitest
  • Jest
  • PHPUnit
  • Pest
  • Testing Library
  • axe-core
  • GitHub Actions
  • Lighthouse CI
  • k6

Mainstream, well-supported technology — chosen so you can hire for it and so another team could take the project over.

QA与软件测试 — your questions

包括那些大多数机构在页面上忽略的成本问题。

为典型Web应用自动化关键流程的费用为£4,500至£12,000,具体取决于流程数量及当前应用的可测试性。若应用缺乏测试接缝,则需先进行部分重构,此部分工作将单独报价而非隐藏成本。

我们不以百分比为目标,因为这是错误的衡量方式——90%的覆盖率但无结账测试,不如40%覆盖率且包含结账测试。目标是确保每条收入关键路径实现端到端覆盖,且每个修复的Bug均附带能捕获该Bug的测试。

新项目使用Playwright:真正的跨浏览器支持(包括Safari)、更好的并行处理能力,且其跟踪视图可显著加快故障诊断。Cypress是优秀的工具,我们会维护现有Cypress测试套件而非强制重写。

可以。有时应用需进行小幅改动以提升可测试性——稳定的选择器、数据注入方式、时间控制钩子等。这些改动值得一做,因为难以测试的代码通常也难以修改。

在重大版本发布前的探索性测试阶段,是的——人工能发现断言无法捕获的可用性问题。但在回归测试阶段,不做——每次发布重复相同的手动检查既昂贵又不可靠,这正是自动化的用武之地。

与亲自构建过此类系统的人交谈

A short call is usually enough to tell you whether this is the right service for your situation — including when it is not.