---
description: 最初に自然言語を使用してテストケースを記述し、その後GitHub Copilotを使用してコードを生成してテストカバレッジを向上させます。
---

# 自然言語でテストケースを最初に記述する

[![](https://img.shields.io/badge/Lv1-Early_Stage_Pattern-blue)](https://github.com/orgs/AI-Native-Development/projects/1/)

## Description

GitHub Copilotのような AI を活用したコード生成を行う際、AI に明確なコンテキストを提供せずに包括的なテストカバレッジを期待するのは難しいことです。その段階でコードでテストケースを記述しようとする代わりに、まず自然言語の記述を作成します。これにより、生成されたコードがすべての必要な基準を満たすことを確認することに焦点を当て、テストカバレッジを向上させることができます。

### Example

以下は、自然言語でテストケースを記述する方法の例です。この方法を使用することで、コードを生成する前にさまざまなシナリオやエッジケースをカバーすることができます。

```py
class TestMultiply(unittest.TestCase):
  def test_multiply(self): 
    # 正数、負数、ゼロ、小数、非整数の入力など、さまざまなケースのテスト
```

## Exercise

* **エクササイズ1**: 三角形の面積を計算する関数に対して、自然言語のテストケースを記述してください。さまざまな入力シナリオとエッジケースを考慮してください。
* **エクササイズ2**: エクササイズ1で記述した自然言語のテストケースから、GitHub Copilotを使用してコードを生成します。結果を分析します。
* **エクササイズ3**: より複雑な関数（例: ソートアルゴリズム）に対して、自然言語を使用してテストスイートを作成します。さまざまな入力シナリオとエッジケースを考慮してください。

## 学習のためのチェックリスト

* コードを記述する前に自然言語でテストケースを記述する利点は何ですか?
* 自然言語で記述されたテストケースは、開発者と非技術的な関係者との協力をどのように改善できますか?
* このアプローチを使用する際の潜在的な課題は何であり、それらはどのように緩和できますか?
