本文へ移動
cccskills
無料GitHub で公開

testing-guide

Testing pyramid and test writing standards for UT/IT/ST/E2E. Use when: writing tests, discussing test coverage, test strategy, or test naming. Keywords: test, unit, integration, e2e, coverage, mock, 測試, 單元, 整合, 端對端.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md4.6 KB
  • testing-pyramid.md10.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Testing Guide

This skill provides testing pyramid standards and best practices for systematic testing.

Quick Reference

Testing Pyramid

                    ┌─────────┐
                    │   E2E   │  ← Fewer, slower (3%)
                   ─┴─────────┴─
                  ┌─────────────┐
                  │     ST      │  ← System (7%)
                 ─┴─────────────┴─
                ┌─────────────────┐
                │       IT        │  ← Integration (20%)
               ─┴─────────────────┴─
              ┌─────────────────────┐
              │         UT          │  ← Unit (70%)
              └─────────────────────┘

Test Levels Overview

LevelScopeSpeedDependencies
UTSingle function/class< 100msMocked
ITComponent interaction1-10sReal DB (containerized)
STFull systemMinutesProduction-like
E2EUser journeys30s+Everything real

Coverage Targets

MetricMinimumRecommended
Line70%85%
Branch60%80%
Function80%90%

Detailed Guidelines

For complete standards, see:

Naming Conventions

File Naming

[ClassName]Tests.cs       # C#
[ClassName].test.ts       # TypeScript
[class_name]_test.py      # Python
[class_name]_test.go      # Go

Method Naming

[MethodName]_[Scenario]_[ExpectedResult]()
should_[behavior]_when_[condition]()
test_[method]_[scenario]_[expected]()

Test Doubles

TypePurposeWhen to Use
StubReturns predefined valuesFixed API responses
MockVerifies interactionsCheck method called
FakeSimplified implementationIn-memory database
SpyRecords calls, delegatesPartial mocking

When to Use What

  • UT: Use mocks/stubs for all external deps
  • IT: Use fakes for DB, stubs for external APIs
  • ST: Real components, fake only external services
  • E2E: Real everything

AAA Pattern

test('method_scenario_expected', () => {
    // Arrange - Setup test data
    const input = createTestInput();
    const sut = new SystemUnderTest();

    // Act - Execute behavior
    const result = sut.execute(input);

    // Assert - Verify result
    expect(result).toBe(expected);
});

FIRST Principles

  • Fast - Tests run quickly
  • Independent - Tests don't affect each other
  • Repeatable - Same result every time
  • Self-validating - Clear pass/fail
  • Timely - Written with production code

Anti-Patterns to Avoid

  • ❌ Test Interdependence (tests must run in order)
  • ❌ Flaky Tests (sometimes pass, sometimes fail)
  • ❌ Testing Implementation Details
  • ❌ Over-Mocking
  • ❌ Missing Assertions
  • ❌ Magic Numbers/Strings

Configuration Detection

This skill supports project-specific configuration.

Detection Order

  1. Check CONTRIBUTING.md for "Disabled Skills" section
    • If this skill is listed, it is disabled for this project
  2. Check CONTRIBUTING.md for "Testing Standards" section
  3. If not found, default to standard coverage targets

First-Time Setup

If no configuration found and context is unclear:

  1. Ask the user: "This project hasn't configured testing standards. Would you like to customize coverage targets?"
  2. After user selection, suggest documenting in CONTRIBUTING.md:
## Testing Standards

### Coverage Targets
| Metric | Target |
|--------|--------|
| Line | 80% |
| Branch | 70% |
| Function | 85% |

Configuration Example

In project's CONTRIBUTING.md:

## Testing Standards

### Coverage Targets
| Metric | Target |
|--------|--------|
| Line | 80% |
| Branch | 70% |
| Function | 85% |

### Testing Framework
- Unit Tests: Jest
- Integration Tests: Supertest
- E2E Tests: Playwright

License: CC BY 4.0 | Source: universal-dev-standards

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Prevent AI hallucination and ensure evidence-based responses when analyzing code or making suggestions. Use when: analyzing code, making recommendations, providing options, or when user asks about confidence/certainty. Keywords: certainty, assumption, inference, evidence, source, 確定性, 推測, 假設, 來源, 證據.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

Systematic code review checklist and pre-commit quality gates for PRs. Use when: reviewing pull requests, checking code quality, before committing code. Keywords: review, PR, pull request, checklist, quality, commit, 審查, 檢查, 簽入.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

Format commit messages following conventional commits standard. Use when: writing commit messages, git commit, reviewing commit history. Keywords: commit, git, message, conventional, 提交, 訊息, feat, fix, refactor.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

Guide documentation structure, README content, and project documentation best practices. Use when: creating README, documentation, docs folder, project setup. Keywords: README, docs, documentation, CONTRIBUTING, CHANGELOG, 文件, 說明文件.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

Guide Git branching strategies, branch naming, and merge operations. Use when: creating branches, merging, pull requests, Git workflow questions. Keywords: branch, merge, PR, pull request, GitFlow, GitHub Flow, 分支, 合併, 工作流程.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

Semantic versioning and changelog formatting for software releases. Use when: preparing releases, updating version numbers, writing changelogs. Keywords: version, release, changelog, semver, major, minor, patch, 版本, 發布, 變更日誌.

日本語の概要は準備中です。原文の説明を表示しています。

AsiaOstrich/universal-dev-skills432025年12月30日 更新

AsiaOstrich のスキルをすべて見る

このスキルの問題を報告する