Bug 标题示例:35+ 个「好标题 vs 差标题」对照(2026)

为什么标题比正文更重要

好的 Bug 标题 = 在哪个页面 + 做了什么操作 + 结果错成什么样 + 什么条件下复现。 一句话把四件事说清,开发不用问你就能复现——这就是好标题和差标题的全部差别。下面 40 组对照示例,按登录、注册、支付、移动端、接口、性能、UI 七类场景列全,你可以直接照着自己的 Bug 改写。

开发者在缺陷列表里先扫的永远是标题。标题写得不明确,要么他得多问一轮,要么这条 Bug 被跳过。要命的是,标题写坏了,后面填的环境信息、复现步骤做得再认真也救不回来——没人会点开一个叫"按钮坏了"的工单。

判断一个标题好不好,只看四条:是否具体(点明组件/页面)、是否可观察(写事实,不写"不好用")、是否含条件(浏览器、设备、账号类型、时间)、是否能一眼判断范围(是全局崩还是边缘场景)。

Bug 标题公式(4 段式)


[组件/页面] + [操作] + [异常结果] + [触发条件]

填法示例:

  • 组件:结算页 / 登录弹窗 / 订单列表 / POST /api/orders
  • 操作:点击、提交、上传、切换 Tab、扫码
  • 异常结果:无响应、返回 500、数值多加一位、状态未同步、文案重叠
  • 触发条件:Chrome 120、iOS 17.2、宽度 <390px、仅企业账号、网络超时后重试

英文团队常用同一套骨架:Component – Action – Result – Condition。骨架不变,语言换来换去都成立。

1. 登录与账号(7 组)

差标题 好标题
登录按钮没反应 Chrome 120 下点击「登录」无响应,控制台报 TypeError: login is not a function
忘记密码邮件收不到 使用 Gmail 邮箱点「忘记密码」后 30 分钟未收到重置邮件(已确认垃圾箱)
登录后跳转错误 普通用户登录后被跳转到 /admin 而非 /dashboard,v5.3 起必现
验证码一直错 图形验证码输入正确仍提示「验证码错误」,仅隐私模式(无痕窗口)复现
账号被锁了 连续 3 次密码错误即永久锁定账号,提示文案却写「请 24 小时后重试」
多设备登录串号 同账号在第二台设备登录后,第一台设备会话未失效,仍可继续操作
SSO 登录失败 SSO 登录回调返回 Invalid signature,IdP 证书轮换后开始出现

要点:登录类 Bug 的条件字段(浏览器/账号类型/隐私模式)几乎决定复现概率,别省。

2. 注册与表单(7 组)

差标题 好标题
注册不了 邮箱含「+」号(如 user+test@x.com)注册时提示「邮箱格式错误」
手机号校验有问题 已输入 11 位 +86 手机号仍提示「请输入 11 位手机号」
密码强度提示错 已含数字的 8 位密码仍提示「需包含数字」
下拉框选不中 「国家/地区」下拉在输入 3 字符过滤后无法用键盘方向键选择
表单提交两次 注册表单按 Enter 提交两次,后台生成两条重复用户记录
必填项没校验 未勾选「同意服务条款」仍可提交,后台创建成功
时区默认值错 注册页时区默认显示 UTC+0,中国区用户应为 UTC+8

要点:表单类 Bug 用具体输入值代替描述,比写十句"输入有问题"都有用。

3. 支付与结算(7 组)

差标题 好标题
支付失败 订单金额 ¥1,299 在结算页显示为 ¥12,999(多一位),支付页金额同步错误
优惠券用不了 已过期优惠码仍显示「可用」,点击「应用」后返回 500 并清空购物车
购物车数量不更新 删除最后一件商品后顶部角标仍显示「1」,刷新页面才恢复
重复扣款 网络超时后重试支付,同一订单被扣款两次(订单号 #10231)
发票信息不保存 结算页填写的公司发票信息,返回上一步再前进后被清空
退款状态不同步 后台已退款,用户端订单仍显示「已支付」(订单号 #10388)
支付方式缺失 结算页缺少「微信支付」选项,仅企业账号类型下出现

要点:涉及金额、订单号的 Bug,把单号写进标题,排查速度能快一倍。

4. 移动端与响应式(6 组)

差标题 好标题
手机上错位 iPhone 14(iOS 17.2)上「加入购物车」按钮与价格文字重叠,宽度 <390px 必现
页面没法滚动 移动端打开弹窗后页面锁定滚动,关闭弹窗后仍无法上下滚动
输入框被键盘挡住 Android Chrome 键盘弹出时遮挡「提交」按钮,无法点击
横屏显示异常 iPad 横屏(1024×768)下导航栏折行,Logo 与菜单重叠
图片不加载 Safari iOS 16 商品详情页主图不显示,控制台返回 403(CDN 签名过期)
点击热区太小 移动端分页按钮触控热区仅 12×12px,低于 44px 无障碍最小标准

要点:移动端一定要写具体机型 + 系统版本 + 屏幕宽度,"手机上"不是一个条件。

5. 数据、接口与权限(6 组)

差标题 好标题
导出失败 导出 1 万条以上订单报表返回 504,分批导出正常
时间显示错误 报表时间戳比实际早 8 小时,仅当用户时区为 Asia/Shanghai 时出现
搜索没结果 搜索「iPhone」返回 0 条,数据库中确实存在 12 条匹配记录
分页重复数据 订单列表翻至第 2 页时重复出现第 1 页最后 3 条记录
上传报错 上传 5MB 以上 PNG 返回 413,前端却提示「上传成功」且文件为空
权限越权 只读角色可调用 DELETE /api/projects/12 并成功删除项目

要点:接口类 Bug 标题里带上 HTTP 状态码 / 接口路径 / 阈值数字,等于把定位工作做了一半。

6. 性能与加载(3 组)

差标题 好标题
页面很卡 首页在 4G 网络下首屏 LCP 8.2 秒,主因是 2.1MB 未压缩 JS
内存泄漏 连续切换 Tab 20 次后内存由 120MB 涨至 900MB,标签页最终崩溃
接口慢 商品列表接口 P95 响应 4.8 秒(基线 300ms),仅大促期间出现

要点:性能类必须给数字 + 基线,否则开发无从判断是否算缺陷。

7. 文案与 UI 细节(4 组)

差标题 好标题
有错别字 结算页「确任订单」应为「确认订单」
图标风格不统一 设置页 4 个图标中 2 个线性风格、2 个填充风格,视觉不一致
深色模式看不清 深色模式下输入框文字 #333 叠加深色背景,几乎不可见
错误提示不明确 上传失败仅提示「操作失败」,未说明原因与重试方式

要点:文案/UI 类 Bug 标题直接写出「错在哪 → 应该是什么」,评审成本最低。

7 个让标题变差的坏习惯

  • 只写情绪:「太卡了」「不好用」「体验差」——开发无法行动。
  • 只写字段名:「标题有问题」「优先级不对」——没说清是什么问题。
  • 把优先级写进标题:「【紧急】登录崩了」——优先级有专门字段,写在标题里会过期失真。
  • 写猜测当结论:「缓存导致的登录失败」——不确定就写「疑似」,别让猜测污染标题。
  • 大而全:「登录注册支付全都有问题」——一条工单只装一个可验证的现象。
  • 省略条件:「偶发报错」——偶发也要写清在什么条件下偶发。
  • 中英混排不统一:同一批工单里 "login button" 和「登录按钮」混着用,检索和统计都会乱。
  • 不同角色该怎么写

    角色 建议写法
    QA / 测试 用完整 4 段式公式,条件字段写全(浏览器、设备、账号、网络)
    客服 / 运营转研发 写「用户视角的现象 + 可复现路径 + 截图」,不确定原因就不写原因,标注「待技术确认」
    UAT 验收 以验收标准为锚:「与验收标准 AC-3 不符:订单状态未在 5 秒内更新」
    产品经理 标题写明「用户可感知的影响」,便于排优先级,但不要代替技术现象描述

    中英文标题对照(给海外/双语团队)

    中文标题 英文标题
    结算页删除最后一件商品后购物车角标未更新 Cart badge not updated after removing the last item on checkout
    Android Chrome 键盘遮挡提交按钮,无法点击 Android Chrome keyboard covers the Submit button, making it untappable
    只读角色可删除项目(越权) Read-only role can delete projects (privilege escalation)

    中文习惯"现象在前",英文习惯"组件在前 + 句式首字母大写(sentence case)"。团队内部统一一种即可,统一比选哪种更重要。

    常见问题(FAQ)

    Bug 标题应该多长? 控制在 60 个字符或 40 个汉字以内,保证在列表页不被截断。超过就说明核心信息没提炼出来,或者该拆成两条 Bug。

    标题里要不要写优先级或严重程度? 不要。优先级属于独立字段,会随排期变化;写进标题后一旦调整,标题就成了错误信息,还会干扰检索。

    不知道原因,标题能写猜测吗? 可以标注「疑似 XX 导致」,但不要把猜测当结论写死。带猜测的标题要在正文里说明依据,否则会误导排查方向。

    同一个 Bug 在多个浏览器/设备上出现,要拆成多条吗? 标题写核心现象,把环境差异放进「环境」或「备注」字段。只有当修复路径完全不同(例如 iOS 与 Android 分别由不同代码路径处理)时才拆分。

    英文标题用 Title Case 还是 Sentence Case? 两种都能用,但要与团队缺陷系统里的存量工单保持一致。若没有历史包袱,推荐 Sentence Case,可读性更好。

    标题还是要人来写,其余字段可以自动完成

    说清楚一点:BugCapturer 不会替你写标题——标题需要你对现象的判断。但一份 Bug 报告里最枯燥、最容易写漏的部分,它可以自动补齐:

    • 自动技术信息:URL、浏览器、操作系统、屏幕分辨率、视口尺寸自动写入,标题里的条件字段不用再手抄。
    • 诊断数据:自动收集错误级控制台日志与失败的网络请求(HTTP ≥ 400),敏感参数(token、密码、API Key)自动脱敏。
    • 标注截图:拖拽选区即可在页面上画箭头、方框、文字,把"错在哪"固定在图上。
    • 录屏:直接录制当前标签页并裁剪片段,提交给开发的就是一段可验证的 12 秒视频。
    • 一键分享或同步:生成分享链接给外部协作方(免注册即可查看),或把报告送进飞书多维表格 / 通用 Webhook。

    这样一来,你只需要专心写好标题那一行,剩下的字段交给工具填。

    可下载清单

    复制这份清单贴在显示器边,写完标题自查:

    • 是否点明了组件或页面?
    • 是否用了可观察的事实,而不是「不好用」?
    • 是否包含了条件(浏览器 / 设备 / 账号 / 网络 / 屏幕宽度)?
    • 是否带了可验证的数字(状态码、单号、金额、耗时、阈值)?
    • 是否只描述一个现象?
    • 是否去掉了优先级和未经验证的猜测?
    • 是否控制在 60 字符 / 40 汉字以内?

    7 条全过,你的标题就比 90% 的缺陷工单更容易被优先处理。

    延伸阅读:Bug 报告模板(完整字段与可直接复制的模板)· 如何高效报告 Bug · 测试用例模板与示例 · Bug 报告格式 · 复现步骤怎么写