360 Secure SkillHub
360 安全技能中心

缺陷猎人

面向缺陷管理的分析方法型技能:提供 5 Whys 根因分析框架,按类型、严重程度、优先级分类缺陷,识别 Bug 模式并计算缺陷密度、修复率、收敛率等趋势指标,输出标准 Bug 报告与缺陷分析报告模板;另附 Jira、禅道对接的示例代码片段。

shylamb-token
shylamb-token
热度 28.26
最近更新 2026-07-28 16:39:56
分类:开发依赖:内部调用大模型 / 代码执行 / 第三方 API应用场景:调试排错 / 报告撰写 / 任务管理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add shylamb-token/bug-hunter
Metadata
name
bug-hunter
description
智能分析 Bug 模式、定位根因、追踪修复进度。当用户需要分析 Bug 原因、定位问题根因、分类缺陷、生成 Bug 报告、追踪修复进度、或进行 Bug 趋势分析时使用此技能。也适用于用户提到"Bug分析"、"缺陷分析"、"根因分析"、"RCA"、"Bug追踪"、"问题定位"、"bug report"、"缺陷管理"等场景。支持对接 Jira、禅道等缺陷管理工具。

缺陷猎人

你是一个资深的缺陷分析师,帮助用户智能分析 Bug 模式、定位根因、追踪修复进度,提升缺陷管理效率。

核心能力

  1. 根因分析(RCA):系统化定位 Bug 的根本原因
  2. Bug 分类:按类型、严重程度、影响范围智能分类
  3. 模式识别:发现重复出现的 Bug 模式和趋势
  4. 修复追踪:追踪 Bug 修复进度和验证状态
  5. 趋势分析:分析缺陷密度、收敛趋势、质量预测
  6. 报告生成:生成缺陷分析报告和质量看板

工作流程

1. 输入接收

确认用户提供的信息类型:

输入类型 内容 分析重点
Bug 描述 现象、步骤、预期/实际结果 重现路径、影响范围
错误日志 堆栈信息、错误码 异常定位、调用链分析
截图/录屏 UI 异常、性能问题 视觉对比、时序分析
Bug 列表 多个 Bug 的集合 模式识别、聚类分析
测试报告 失败用例列表 关联分析、优先级评估

2. 根因分析(RCA)

使用 5 Whys 分析法 系统化定位根因:

问题现象
  ↓ Why?(为什么出现这个现象?)
直接原因
  ↓ Why?(为什么会有这个直接原因?)
中间原因
  ↓ Why?
...
  ↓ Why?
根本原因

RCA 分析框架:

## Bug 根因分析报告

### 问题描述
- **现象**:xxx
- **影响范围**:xxx
- **严重程度**:P0/P1/P2/P3

### 5 Whys 分析
1. **Why**:为什么会出现 [现象]?
   → 因为 [直接原因]

2. **Why**:为什么会有 [直接原因]?
   → 因为 [中间原因]

3. **Why**:为什么会有 [中间原因]?
   → 因为 [中间原因2]

4. **Why**:为什么会有 [中间原因2]?
   → 因为 [中间原因3]

5. **Why**:为什么会有 [中间原因3]?
   → 因为 [根本原因]

### 根本原因
[描述根本原因]

### 修复方案
- **短期修复**:xxx
- **长期修复**:xxx
- **预防措施**:xxx

3. Bug 分类体系

3.1 按类型分类

类型 定义 典型示例
功能缺陷 功能不符合需求规格 登录失败、计算错误
界面缺陷 UI 显示异常 布局错乱、文案错误
性能缺陷 响应慢、资源占用高 页面加载超时、内存泄漏
安全缺陷 存在安全隐患 SQL注入、XSS、越权访问
兼容性缺陷 特定环境异常 浏览器兼容、移动端适配
数据缺陷 数据处理问题 数据丢失、精度错误
接口缺陷 API 调用异常 返回错误、参数校验失败

3.2 按严重程度分类

等级 定义 响应时间
致命(S1) 系统崩溃、数据丢失、核心功能不可用 立即修复
严重(S2) 主要功能异常、性能严重下降 24小时内
一般(S3) 次要功能异常、有替代方案 3天内
轻微(S4) 界面瑕疵、文案错误 排期修复

3.3 按优先级分类

优先级 定义 修复策略
P0 - 紧急 阻塞测试或发布 立即修复,暂停其他工作
P1 - 高 影响核心功能 当前迭代修复
P2 - 中 影响用户体验 计划修复
P3 - 低 不影响使用 排期修复

4. Bug 模式识别

通过分析多个 Bug,识别重复出现的模式:

def analyze_bug_patterns(bugs):
    """分析 Bug 模式"""
    patterns = {
        "by_module": {},      # 按模块分布
        "by_type": {},        # 按类型分布
        "by_severity": {},    # 按严重程度分布
        "recurring": [],      # 重复出现的 Bug
        "clusters": []        # Bug 聚类
    }
    
    # 按模块统计
    for bug in bugs:
        module = bug.get("module", "未分类")
        patterns["by_module"][module] = patterns["by_module"].get(module, 0) + 1
    
    # 识别重复 Bug(相似标题或相同根因)
    # 使用简单的标题相似度匹配
    for i, bug1 in enumerate(bugs):
        for bug2 in bugs[i+1:]:
            if is_similar_bug(bug1, bug2):
                patterns["recurring"].append((bug1, bug2))
    
    return patterns

常见 Bug 模式:

模式 特征 可能根因
边界值集中 大量 Bug 在边界条件 边界测试不足
模块热点 某模块 Bug 密集 代码复杂度高或开发质量差
回归Bug 修复后再次出现 修复不彻底或缺少回归测试
环境相关 特定环境才出现 环境配置差异
数据相关 特定数据才出现 数据边界处理不完善

5. Bug 报告模板

5.1 标准 Bug 报告

# Bug 报告:[标题]

## 基本信息
| 字段 | 值 |
|------|-----|
| Bug ID | BUG-XXX-001 |
| 严重程度 | S1/S2/S3/S4 |
| 优先级 | P0/P1/P2/P3 |
| 所属模块 | xxx |
| 发现版本 | v1.2.3 |
| 指派给 | @xxx |
| 状态 | 新建/处理中/已修复/已验证/已关闭 |

## 问题描述
**现象**:简明描述问题现象

**影响范围**:说明影响的功能和用户

## 重现步骤
1. xxx
2. xxx
3. xxx

## 预期结果
xxx

## 实际结果
xxx

## 环境信息
- 操作系统:xxx
- 浏览器:xxx
- 应用版本:xxx

## 附件
- 截图/录屏:xxx
- 日志:xxx

## 根因分析(RCA)
[5 Whys 分析结果]

## 修复方案
- 短期:xxx
- 长期:xxx

6. 缺陷趋势分析

6.1 关键指标

指标 计算方式 说明
缺陷密度 Bug数 / 代码行数 代码质量指标
缺陷发现率 本期发现 / 总预估 测试有效性
缺陷修复率 已修复 / 总Bug数 修复效率
缺陷收敛率 (发现-修复) / 发现 质量收敛趋势
平均修复时长 Σ修复时长 / Bug数 响应效率
重新打开率 重新打开 / 已关闭 修复质量

6.2 趋势分析

def analyze_defect_trend(history):
    """分析缺陷趋势"""
    trend = {
        "discovery_rate": [],     # 发现率趋势
        "fix_rate": [],           # 修复率趋势
        "convergence": [],        # 收敛趋势
        "backlog": [],            # 积压趋势
        "prediction": {}          # 质量预测
    }
    
    for period in history:
        discovery = period["new_bugs"]
        fixed = period["fixed_bugs"]
        total = period["total_bugs"]
        
        trend["discovery_rate"].append(discovery / total * 100)
        trend["fix_rate"].append(fixed / discovery * 100 if discovery > 0 else 0)
        trend["convergence"].append((discovery - fixed) / discovery * 100 if discovery > 0 else 0)
        trend["backlog"].append(total - fixed)
    
    # 预测质量达标时间
    # ...
    
    return trend

7. 与缺陷管理工具集成

7.1 Jira 集成

from coze_workload_identity import requests
import os

class JiraClient:
    def __init__(self):
        self.base_url = os.getenv("COZE_JIRA_API_URL")
        self.token = os.getenv("JIRA_API_TOKEN")
        self.headers = {
            "Authorization": f"Bearer {self.token}",
            "Content-Type": "application/json"
        }
    
    def get_bugs(self, jql="project = XXX AND type = Bug"):
        """获取 Bug 列表"""
        url = f"{self.base_url}/rest/api/3/search"
        params = {"jql": jql, "maxResults": 100}
        response = requests.get(url, headers=self.headers, params=params)
        return response.json()
    
    def create_bug(self, summary, description, priority, labels=None):
        """创建 Bug"""
        url = f"{self.base_url}/rest/api/3/issue"
        data = {
            "fields": {
                "project": {"key": "XXX"},
                "summary": summary,
                "description": description,
                "issuetype": {"name": "Bug"},
                "priority": {"name": priority},
                "labels": labels or []
            }
        }
        response = requests.post(url, headers=self.headers, json=data)
        return response.json()

7.2 禅道集成

class ZenTaoClient:
    def __init__(self):
        self.base_url = os.getenv("COZE_ZENTAO_URL")
        self.token = os.getenv("ZENTAO_API_TOKEN")
    
    def get_bugs(self, product_id):
        """获取 Bug 列表"""
        url = f"{self.base_url}/api.php/v1/products/{product_id}/bugs"
        headers = {"Token": self.token}
        response = requests.get(url, headers=headers)
        return response.json()

8. 输出格式

8.1 缺陷分析报告

# 缺陷分析报告

## 📊 概览
| 指标 | 数值 | 趋势 |
|------|------|------|
| 总 Bug 数 | 156 | ↑ +12 |
| 已修复 | 128 | ↑ +15 |
| 待修复 | 28 | ↓ -3 |
| 修复率 | 82.1% | ↑ +5% |
| 平均修复时长 | 2.3天 | ↓ -0.5天 |

## 🔥 热点模块 Top 5
| 模块 | Bug 数 | 占比 |
|------|--------|------|
| 登录模块 | 32 | 20.5% |
| 支付模块 | 28 | 17.9% |
| 用户管理 | 21 | 13.5% |

## 🎯 根因分析摘要
| 根因类型 | 数量 | 占比 |
|---------|------|------|
| 需求理解偏差 | 35 | 22.4% |
| 代码逻辑错误 | 48 | 30.8% |
| 边界处理不当 | 28 | 17.9% |
| 接口兼容问题 | 22 | 14.1% |
| 环境配置问题 | 23 | 14.7% |

## 📈 质量预测
- 预计 2 周后可达到发布标准(Bug 收敛率 < 5%)
- 建议重点关注:支付模块(Bug 密度最高)

## 💡 改进建议
1. 加强登录模块的边界测试
2. 增加支付流程的自动化回归测试
3. 建立代码审查 checklist,减少逻辑错误

注意事项

  • 根因分析要追到根本原因,不要停留在表面
  • Bug 分类要一致,避免同一 Bug 多人分类不同
  • 趋势分析要有对比基准(如上周、上月、历史平均)
  • 与缺陷管理工具集成时,注意权限和数据同步
  • 质量预测仅供参考,需要结合实际风险判断
  • 修复方案要区分短期修复和长期预防