Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Produktivität · SKILL.md

defect-report-generator

defect-report-generator

将缺陷/任务清单 CSV 自动转换成一份自包含的 HTML 测试缺陷报告。当用户给出一份 CSV(含任务状态/标题/负责人/模块/逾期等列)并要求"生成测试报告""出一份缺陷分析报告""根据缺陷清单做统计报告"时使用。脚本仅用 Python 标准库,图表为内联 SVG + CSS(无 CDN),离线可打开。也适用于任务清单、Bug 列表、工单导出的质量分析。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

name: defect-report-generator description: 将缺陷/任务清单 CSV 自动转换成一份自包含的 HTML 测试缺陷报告。当用户给出一份 CSV(含任务状态/标题/负责人/模块/逾期等列)并要求"生成测试报告""出一份缺陷分析报告""根据缺陷清单做统计报告"时使用。脚本仅用 Python 标准库,图表为内联 SVG + CSS(无 CDN),离线可打开。也适用于任务清单、Bug 列表、工单导出的质量分析。 agent_created: true

Defect Report Generator(缺陷/任务清单 → 测试报告)

Overview

把一份缺陷(或任务/工单)CSV 清单,一键生成一份自包含、可离线打开的 HTML 测试缺陷报告。 报告包含:KPI 概览卡片、状态分布环形图、模块分布条形图、各模块状态明细表、负责人分布、 未完成(未关闭)缺陷清单、逾期清单、测试结论与改进建议、数据说明共 8 个章节。

设计要点:仅依赖 Python 标准库(csv/re/math/html/argparse),不联网、不装包;图表手写内联 SVG + CSS,因此双击 HTML 即可打开,不会因缺 CDN 而白屏。

WHEN to use

  • 用户给出一份 CSV 并说:"生成测试报告 / 出缺陷分析报告 / 根据这份清单做统计 / 帮我看看缺陷情况"。
  • 源文件是缺陷管理、Bug 跟踪、任务看板(TAPD/Jira/禅道等)导出的 CSV。
  • 任务列表、工单列表、需求清单的"质量/进度"分析同样适用(列结构相同即可)。

Workflow(使用流程)

  1. 确认输入:拿到 CSV 路径。若用户没给标题/项目名/测试周期,可用 --title / --project / --period 覆盖,或从 CSV 表头(项目列、开始/截止列)自动推断。
  2. 运行脚本(隔离 Python 环境,不要污染用户系统):
    /Users/zhushengping/.workbuddy/binaries/python/versions/3.13.12/bin/python3 \
      ~/.workbuddy/skills/defect-report-generator/scripts/generate_report.py \
      "<CSV路径>" -o "<输出HTML路径>" \
      [--title "报告标题"] [--project "项目名"] [--period "2026-07-10 ~ 2026-07-31"]
    
  3. 核对输出:脚本会打印总数、各状态计数、未关闭数、逾期数、解决率、关闭率。 与业务预期对一下(例如"已验收=45、未关闭=11"是否合理)。
  4. 交付:用 present_files 打开 HTML 预览交付;有必要则补充说明口径。

列自动识别规则(无需固定表头)

detect_columns() 按关键词模糊匹配表头,定位以下列(找不到则为空,统计降级):

逻辑列命中关键词
状态状态 / status
标题标题 / title / 名称 / summary / 主题 / 描述
负责人负责人 / 处理人 / owner / assignee / 经办
模块模块 / module
逾期逾期 / overdue / late
任务ID任务id / 缺陷id / bug id / id / 编号 / 序号
项目/开始/截止项目 / 开始 / 截止·due·完成日期·结束
  • 模块优先从标题首段 【xxx】 或 [xxx] 解析(extract_module),无括号才回退到模块列,都没有记"未分类"。
  • 编码按 utf-8-sig → utf-8 → gbk → gb18030 依次尝试,兼容带 BOM / 中文导出的 CSV。

状态映射规则(6 桶模型)

业务状态千奇百怪,脚本用关键词顺序匹配把它们归一成 6 个标准桶 (CANON_RULES,顺序很重要,先匹配更具体的):

标准桶命中关键词(节选)业务含义
已验收已验收/已关闭/验收/closed/verified/已解决测试确认关闭
已拒绝已拒绝/拒绝/rejected/wontfix/不予修复/不是缺陷/设计如此/重复/不修复开发拒绝或无效缺陷(视为已处理)
修复中修复中/处理中/进行中/in progress/开发中处理中
已修复已修复/修复/fixed/resolved待验证
待确认待确认/待处理/待验证/待修复/pending/新建/打开/重新打开/待未关闭
其他(以上都不匹配)无法归类

口径:「未关闭」= 已修复 + 修复中 + 待确认 + 其他; 「解决率」= (已验收 + 已拒绝) / 总数;「关闭率」= 已验收 / 总数。

⚠️ 维护提示:若"修复中"被错误并入"已修复",说明 CANON_RULES 里 修复中 元组不在 已修复 之前, 保持顺序即可(修复中 必须在 已修复 之上,否则子串"修复"会把两者吞掉)。

输出报告章节

  1. 顶部信息条(项目 / 测试周期 / 生成日期 / 总数)
  2. KPI 卡片:缺陷总数、已验收、已拒绝、未关闭、逾期
  3. 一、缺陷状态分布(环形图 + 图例 + 解决进度说明)
  4. 二、缺陷模块分布(条形图,Top10 + 其他)
  5. 三、各模块状态明细表
  6. 四、负责人分布
  7. 五、未完成(未关闭)缺陷清单
  8. 六、逾期情况
  9. 七、测试结论与建议(结论 + 改进建议两栏)
  10. 八、数据说明与局限

局限与扩展

  • 原数据若缺严重程度 / 优先级 / 发现版本等字段,报告不做相应分析(已在"数据说明"注明)。
  • 可在脚本中扩展 CANON_RULES 适配更多状态词;需要 Word/PDF 输出可叠加 docx/pptx 技能。
  • 换一份同结构 CSV,改路径重跑即更新,无需改代码。

Resources

scripts/

  • generate_report.py —— 核心脚本,标准库实现,见上方"使用流程"。
Gespeicherte Skills