テストデータ生成
Coco Test Engineのご紹介
Cocoのテストデータ生成機能「Coco Test Engine」は、次のような目的で設計されています:
- 到達可能な最高レベルのカバレッジをより早く達成する
- カバレッジ分析における冗長性を整理する
- 境界値などを含むテストデータを自動収集する
Coco Test Engineは、テストの質を向上させるためのテストデータを自動で生成し、人間のテスターでは見落としやすいエッジケースやエラーケースの網羅を支援します。あとはアルゴリズムを実行するだけで、通常のテストではカバーできないケースの補完や、既存テストスイートの強化が可能です。
テストの複雑さを減らし、管理性を向上
Cocoのテストデータ生成機能は、データ駆動型テストの実装における複雑さを、次の3つの方法で軽減します:
- テストコードとテストデータの分離:多くのテストフレームワークでは、データ駆動型テストの概念が提供されていないため、開発者はテストデータごとに個別の関数を書く必要があります。 仮に対応している場合でも、C++構文に準拠した形で同一ファイル内にコードとデータを記述する必要があり、ユニットテストコードが肥大化しがちです。Cocoではこれらを分離し、より柔軟に扱えます。
- スプレッドシート形式のデータエディタ:テストデータの作成・編集・確認をスプレッドシート形式で簡単に行えるため、視認性と操作性が向上します。
- ツール群による効率的な管理:新たなテストケースの発見を支援するだけでなく、コード変更に伴うテストデータの更新や、テスターによるデータ検証プロセスを効率化します。
プロセスの簡略フロー
- 2つのマクロを使って簡単なユニットテストコードを記述
- FETCH:入力データを取得
- CHECK:出力と期待値を比較
- ユニットテストをコンパイル
- データエディタでテストケースを作成し、通常のアプリケーションのようにデバッグ
- テストディスカバリを実行して新たなケースを発見し、カバレッジを向上
- 生成されたデータを確認し、出力が期待通りかどうかを検証
Coco Test Engineの概要
Coco Test Engineをプロジェクトに導入する方法