単体テスト

テストフェーズ

  1. 準備(Setup):テストの事前条件を確立する。
  2. 実行(Exercise):システムに対して何かする。
  3. 検証(Verify):期待される結果をチェックする。
  4. 後片付け(Cleanup):テストした後、テスト対象のシステムを初期状態に戻す。

TDD

Test-Driven Development

手順

テストリストを書く

  • 仕様からテスト項目を作成する
  • この時点で明白なリストでなくてもいい
    • 設計を進めることで課題を浮き彫りにする

テストを書く

インターフェースをテストする

実装する

テストする

リファクタリング

用語定義

用語 説明
モジュール うまく定義されたインターフェースを備えた、システムを構成する自己完結したパーツ
テスト対象コード(Code under test) テストされるコード
プロダクトコード(Production code) 製品となるコード
テストコード(Test code) プロダクトコードをテストするためのコード
テストフィクスチャ(Test fixture) テストの環境構築をするコード

テストフレームワーク

テストダブル

用語定義

用語 説明
コラボレータ テスト対象コードの外部にある関数、データ、モジュール、デバイスのうち、テスト対象コードが依存しているもの
テストダブル テスト中に関数やデータ、モジュール、ライブラリになりすますもの
テストダミー(Test dummy) リンクエラーによるビルドの失敗を回避する。ダミーは決して呼び出されることのないシンプルなスタブで、コンパイラや隣家、実行時の依存関係を満足させるために使われる。
テストスタブ(Test stub) 現在のテストケースの指示通りに値を返す。
テストスパイ(Test spy) テスト対象コードが渡したパラメータを記録する。これによって、テスト対象コードが正しいパラメータを渡しているか検証する。テストスタブと同様、テスト対象コードに戻り値を返すこともできる。
モックオブジェクト(Mock object) テスト対象コードから依存コンポーネントに対して、呼び出された関数、呼び出し順序、渡されたパラメータが正しいか検証する。また、テスト対象コードに特定の値を返すようプログラムしておく。モックオブジェクトは通常、複数の呼び出しがあり、それぞれの呼び出しと応答が異なる状況を扱うときに使われる。

参考文献

  • テスト駆動開発による組み込みプログラミング(James W. Grenning, 監訳 蛸島 昭之, 訳 笹井 崇司)
最終更新:2015年12月09日 23:53