mcpField
Q
qe-shift-left-testing

qe-shift-left-testing

github.com/proffesor-for-testing测试与质量51990 次安装今天更新
代码仓库

关于 qe-shift-left-testing

qe-shift-left-testing 面向希望将测试前移至开发早期的团队,覆盖从需求和设计到实现与 CI 的阶段。它介绍 TDD、BDD、风险分析、自动化测试,以及 Agent 辅助的需求验证和测试生成。

主要功能

  1. 01验证需求的可测试性
  2. 02在实现前编写测试
  3. 03在 CI 中自动运行测试
  4. 04应用测试金字塔
  5. 05分析设计风险
  6. 06根据规范生成测试

适用场景

  1. 01在需求细化阶段检查需求
  2. 02在编码前实践 TDD
  3. 03在每次提交时运行自动化测试
  4. 04在架构设计时评估风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-shift-left-testing

安装后在 Claude Code 中输入/qe-shift-left-testing确认已加载。

详细介绍

左移测试

<default_to_action> 实施早期测试实践时:

  1. 在编码前验证需求(可测试性、BDD 场景)
  2. 在实现前编写测试(TDD:红—绿—重构)
  3. 在 CI 流水线中自动化(每次提交都会触发测试)
  4. 遵循测试金字塔:大量单元测试(70%)、一些集成测试(20%)、少量端到端测试(10%)
  5. 立即修复缺陷——绝不让缺陷累积

快速了解左移级别:

  • 级别 1:每个 PR 都包含单元测试(开发者负责)
  • 级别 2:采用 TDD 实践(先写测试,再写代码)
  • 级别 3:在细化阶段进行 BDD/示例映射(需求测试)
  • 级别 4:在设计阶段进行风险分析(架构测试)

关键成功因素:

  • 在需求阶段发现的缺陷成本为 1 倍;在生产环境中发现则为 100 倍
  • 每次提交都必须运行自动化测试
  • 质量是构建出来的,而不是测试出来的 </default_to_action>

速查卡

适用场景
  • 降低缺陷成本
  • 实施 CI/CD 流水线
  • 开始实践 TDD
  • 提升需求质量
各阶段的缺陷成本
阶段相对成本示例
需求1 倍修正文档:30 分钟
设计5 倍重新设计:数小时
开发10 倍修复代码:1 天
测试20 倍修复并重新测试:2 天
生产100 倍热修复 + 回滚 + 调查
测试金字塔
       /\        E2E (10%) - Critical user journeys
      /  \
     /    \      Integration (20%) - Component interactions
    /      \
   /________\    Unit (70%) - Fast, isolated, comprehensive
左移级别
级别实践时机
1PR 中的单元测试合并前
2TDD实现前
3BDD/示例映射细化期间
4风险分析设计期间

级别 1:每个 PR 都包含测试

# CI pipeline - tests run on every commit
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run test:unit
      - run: npm run test:integration
      - run: npm run lint

  quality-gate:
    needs: test
    steps:
      - name: Coverage Check
        run: npx coverage-check --min 80
      - name: No New Warnings
        run: npm run lint -- --max-warnings 0

级别 2:TDD 实践

// Red: Write failing test first
test('calculates discount for orders over $100', () => {
  const order = new Order([{ price: 150 }]);
  expect(order.discount).toBe(15); // 10% off
});

// Green: Minimal implementation
class Order {
  get discount() {
    return this.total > 100 ? this.total * 0.1 : 0;
  }
}

// Refactor: Improve while keeping green

级别 3:在细化阶段进行 BDD

# Example mapping before coding
Feature: Loyalty Discount
  Scenario: Gold member gets 15% discount
    Given a customer with "gold" membership
    When they checkout with $200 in cart
    Then discount applied is $30
    And order total is $170

  Scenario: New customer gets no discount
    Given a customer with no membership
    When they checkout with $200 in cart
    Then no discount is applied

级别 4:在设计阶段进行风险分析

// During architecture review
await Task("Risk Analysis", {
  phase: 'design',
  component: 'payment-service',
  questions: [
    'What happens when payment gateway times out?',
    'How do we handle duplicate submissions?',
    'What if inventory changed during checkout?'
  ]
}, "qe-requirements-validator");

// Output: Testability requirements, failure mode tests

Agent 辅助左移

// Validate requirements testability
await Task("Requirements Validation", {
  requirements: userStories,
  check: ['INVEST-criteria', 'testability', 'ambiguity'],
  generateBDD: true
}, "qe-requirements-validator");

// Generate tests from requirements
await Task("Generate Tests", {
  source: 'requirements',
  types: ['unit', 'integration', 'e2e'],
  coverage: 'comprehensive'
}, "qe-test-generator");

// Smart test selection for changes
await Task("Select Regression Tests", {
  changedFiles: prFiles,
  algorithm: 'risk-based',
  targetReduction: 0.7  // 70% time savings
}, "qe-regression-risk-analyzer");

Agent 协作提示

记忆命名空间
aqe/shift-left/
├── requirements/*       - Validated requirements
├── generated-tests/*    - Auto-generated tests
├── coverage-targets/*   - Coverage goals by component
└── pipeline-results/*   - CI/CD test history
Fleet 协作
const shiftLeftFleet = await FleetManager.coordinate({
  strategy: 'shift-left',
  agents: [
    'qe-requirements-validator',     // Level 3-4
    'qe-test-generator',             // Level 2
    'qe-regression-risk-analyzer'    // Smart selection
  ],
  topology: 'sequential'
});

相关技能


请记住

越早越省。 需求阶段的缺陷成本为 1 倍;生产环境中的缺陷成本为 100 倍。测试金字塔:70% 单元测试、20% 集成测试、10% 端到端测试。每次提交都运行测试。TDD 将质量构建在产品中。

借助 Agent: Agent 会验证需求的可测试性、根据规格生成测试,并选择最优回归测试套件。借助 Agent 一致地实施左移实践。

评论

支持 Markdown