GitHub Copilot - Patterns & Exercises
GitHub 🌟
ja 🇯🇵
ja 🇯🇵
  • ようこそ
  • プロジェクトに貢献するには
  • General
    • コード補完
    • コメントからコードを生成
    • コードからコメントの自動生成
    • GitHub CopilotとのクイックQ&A
    • 正規表現
    • プログラミング言語間の翻訳
    • タイプヒンティング
    • 構造化データからのオブジェクト生成
    • コードからドキュメントへ
  • Client Side Tips
    • Copilot スニペットハンドリング
    • GitHub Copilot ショートカット
    • 定義に移動
    • 便利なファイルのピン留め
  • Design Patterns
    • AI が理解可能な命名規則
    • 一貫性のあるコーディングスタイル
    • ハイレベルアーキテクチャを先に
    • 小さなコードチャンクで作業する
    • コンテキストレス・アーキテクチャ
    • 微細な OSS 依存関係の排除
  • Collaboration
    • AIフレンドリーなドキュメンテーション
    • プロンプトとコード生成プロセスのコーチング
  • Testing
    • ユニットテストの作成
    • テストコード生成の方法を指定する
    • 失敗ケースを最初に書く
    • 自然言語でテストケースを最初に記述する
    • 必要な部分だけをテストする
  • Refactoring
    • リファクタリング前にテストコードを書く
    • 計算ロジックを独立させる
    • オープン・クエスチョンで尋ねる
  • Archived
    • GitHub Copilot Patterns & Exercises Guide
    • Translations
      • German 🇩🇪
      • Spanish 🇪🇸
      • French 🇫🇷
      • Italy 🇮🇹
      • Japanese 🇯🇵
      • Portuguese 🇵🇹
      • Chinese 🇨🇳
Powered by GitBook
On this page
  • Description
  • Example
  • Exercise
  • Checklist for Further Learning
Edit on GitHub
  1. Testing

必要な部分だけをテストする

不必要なテストの保守コストを回避するため、必要な部分だけをテストします。

Last updated 1 year ago

不必要なテストケースを書く必要はありませんが、どのようなテストが必要かはチームによります。パターンとして具体化するには、より具体的な議論が必要です。

Description

高速なソフトウェア開発の時代において、効率的で有益なテストの記述はこれまで以上に重要です。GitHub Copilotを使用する際に、開発者はカバレッジを増やすために多くのテストコードを生成してしまうかもしれません。しかし、不必要なテストコードの生成は保守の負担や技術的な負債を引き起こす可能性があります。GitHub Copilotを使用してテストコードを書く際には必要な部分のみをテストする事が重要です。

Example

特定の関数に対して意味のあるテストを書くことに重点を置くことで、カバレッジを上げるために複数のテストを書く代わりに、意味のあるテストを書くことが重要です。

以下は不必要になりうるテストコードの例です:

  • セッターやゲッターのテスト

  • 言語の機能のテスト

  • フレームワークの機能のテスト

  • 定数のテスト

  • 同じロジックを持つ冗長なテスト

  • 些細なロジックのテスト

  • サードパーティのライブラリのテスト

  • ロジックのないランダムな値のテスト

カバレッジを増やすだけでなく、また価値を追加しない数多くのテストを追加するのではなく、必要なテストのみを追加します。

Exercise

  • エクササイズ 1: 現在意味のないテストで過度にテストされているコードベース内の関数を特定し、必要なテストのみを含むようリファクタリングします。

  • エクササイズ 2: コードの重要な部分に新しいテストを書き、冗長性を避けて重要な側面に焦点を当てます。

  • エクササイズ 3: 現在のテストカバレッジを評価し、不可欠なカバレッジを失うことなくテストを削減できる領域を特定します。

Checklist for Further Learning

  • 機能を確実に検証するテストを書いているか、それとも単にカバレッジを上げるためのテストを書いていますか?

  • 書いているテストがプロジェクトに価値を提供し、保守の負担を増やすだけでないことをどのように確認できますか?

  • 特に GitHub Copilot などのツールを使用する際、テストスイートをスリムで意味のあるものに保つためにどのような戦略を取り入れることができますか?