/note/tech

品質の言語化のススメー早期テストの原則をClaude Code Agent Skillsで実現する試み

要約:

■ 1. 概要

  • LayerX QAエンジニアによるClaude Code Agent Skillsを活用した品質管理の取り組みの紹介
  • AIコーディングアシスタントの普及に伴い「どこまで厳密なエラーハンドリングが必要か」「テストはどの程度書くべきか」という課題が発生
  • バクラク事業部の品質定義・テスト戦略を言語化しClaude Codeにリスクの高い箇所を保護させテストを同時生成させる試みを実施

■ 2. 早期テストの原則

  • JSTQB FLシラバスに定義されるテストの原則の1つ「早期テストで時間とコストを節約する」を基盤とする
  • プロセスの早い段階で欠陥を取り除くことで後半に発生する故障が減少し品質コストが削減される
  • テスト実行のみならず要件レビューや質問といった活動も含む
  • 欠陥の予防が最もコスパが高くアジャイル開発とも親和性が高い
  • この原則をClaude Codeの動作に適用することを目指す

■ 3. Skillsに組み込む判断基準

  • AIによる予防を実現するため以下の3つの判断基準を言語化:
    • 目指す品質
    • 目指す品質を判断するためのリスクと基準
    • 自動テストのスコープ
  • 上記定義によりAIが以下を思考・実行可能になる:
    • 今目指すべき品質のゴールの把握
    • 今守るべきリスクの特定
    • リスクに応じた実装基準の決定
    • 各自動テストで担保すべきスコープの特定

■ 4. 判断基準の言語化

  • 目指す品質:
    • バクラクはセンシティブな情報を預かるプロダクト群であり一定以上の品質水準の維持が必要
    • プロダクトのフェーズごとに「バクラク事業部が目指す品質」を定義
    • 市場へのリリースでフィードバックを集めるフェーズと運用中フェーズで優先すべき品質の側面が異なる
  • リスクと基準:
    • バクラク事業部ではコンパウンド戦略を採用し複数プロダクトそれぞれに固有のリスクが存在
    • severityの度合いとその影響範囲をまとめたリスク情報をプロダクトごとにskills上で定義
    • 特定期間ごとにチームでリスク定義をアップデートする習慣が社内に確立済み
    • リスク情報に基づきカバレッジの基準を決定
  • 自動テストのスコープ:
    • テストピラミッド戦略として自動テストの各レイヤーで検証すべき内容をLayerX社内で定義済み

■ 5. Claude Codeへの統合と動作

  • 言語化した情報をClaude Code Agent Skillsとして実装
  • フェーズ判断:
    • タスク内容からプロダクトのフェーズを判断
    • 不明な場合はHITL(Human In The Loop)でユーザーに質問
  • リスク評価:
    • 機能カテゴリを参照しリスクレベルを評価
    • compaction(コンテキスト肥大化・圧縮による精度低下)防止のため開発対象プロダクトのリスク情報のみを読み込む設計
  • 基準の適用:
    • 判断したフェーズとリスクレベルに基づき実装方針・テスト戦略(カバレッジ目標)・コーディング規約を自動適用
  • 用途は製品開発のみならずテスト計画・設計・自動テスト整備相談にも対応

■ 6. 実施結果

  • skill-creatorのEvalsを使って効果測定を実施し改善効果を確認
  • リスクが高い機能開発:
    • Claude Codeが自らリスクの高さを判断しトランザクション管理・ロールバック処理を含む堅牢なコードを生成
    • 定義した基準のユニットテストカバレッジを達成
  • テストカバレッジの比較:
    • スキルなし: 65%
    • スキルあり: 95%

■ 7. 結論

  • AIがコードを書く時代において人間の役割は「あるべき姿を定義(言語化)すること」へシフト
  • 暗黙知になっている品質の姿を言語化しAIに組み込むことでQuality Harnessとして機能させフィードバックループを加速可能
  • モデル性能向上に伴いスピードと質が向上する世界において品質のポイントを押さえることの重要性を強調