Boost logo

Boostテストライブラリ

"壊れる可能性のあるものはすべてテストする"

XPの格言

イントロダクション
コンポーネント

実行モニター
プログラム実行モニター
テストツール
テスト実行モニター
ユニットテストフレームワーク
ミニマルテスト

FAQ
設計

移転ガイド
オープンな議論
移植性
謝辞

イントロダクション

Boostテストライブラリは テストの作成、テストケースやテストスィートにおけるテストの管理、またそれらの実行制御などに適したコンポーネントセットを提供する。プログラム実行モニター はテスト環境ではなく、実稼働環境において有効である。

reference to the top

コンポーネント

  • 実行モニター - 例外・エラー検出用の基本ツール。製品またはテストプログラムに対して使用する。実行モニターはユーザの作成した関数を呼び出し、発生した例外すべてを検出・報告する。他のBoostテストライブラリコンポーネント内でも使用している。実稼働環境において、プログラムを破壊してしまいそうな関数の呼び出しを制御することも可能である。
  • プログラム実行モニター - プログラムの実行状況を監視する簡単なヘルパーツール。プログラム実行モニター はmain関数を提供し、実行モニターを使ってプログラムの実行を管理する。実稼働環境において、統一的なエラーレポートを作成するために使用する。テスト環境においてプログラムを管理する場合は、代わりにテスト実行モニターを使う。
  • テスト実行モニター - モニタ環境においてテストプログラムを実行する。The Test 実行モニター は簡単なテストプログラムの実行を管理するメイン関数を提供する。テストロジックを実装する際にはテストツールを使用する。テスト環境における使用を想定している。製品用コードの実装を管理する場合には Program 実行モニターを使用する。
  • ユニットテストフレームワーク - テストケースの作成と管理を容易にする枠組である。これは単純な関数やメンバ関数として作成したテストケースを、1つのテストスィートツリーで管理する。テストケースを実装する際にはテストツールを使用することができ、ログレポートレベルと結果レポートレベルを管理できる。
  • ミニマルテスト - Boost.Test の元のバージョンに附属していた機能を提供するツール。 Test 実行モニター と同じように、テストプログラムの実行 状況を監視することができる。加えて、テストツールのものに類似したテストツールを規定する。ミニマルテストツールは外部コンポーネントとのリンクを必要としないので、簡単で迅速なテストを行うのに最適なコンポーネントとなるだろう。
reference to the top

FAQ

Boostテストライブラリ FAQ参照

設計

Boostテストライブラリ設計参照

Boost.Test移転ガイド

Boost で使用されていた元のテストライブラリに置き換わるものである。 以下にあるいくつかの簡単な手順を行えば、最新のソフトウェアに問 題なく移行できる。

元のバージョンにあるcpp_main ツールを使っている場合、移行するには<boost/test/cpp_main.cpp>のインクルード を削除する必要がある。このファイルはもはや存在しない。

Boost.Test ライブラリの元のバージョ ンのtest_mainとテストツールを使用している場合、最新のバージョ ンを使用するには、次のいずれかの手順を行う。

  • Boost.Test ツールを使用しているテストコードを変更したく ない場合、テスト実行モニターとリンクを行う。ライブラ リ名は使用するコンパイラにより変わるが、おそらく libtest_exec_monitor.lib であろう。
  • <boost/test/included/test_exec_monitor.hpp>インク ルードする。この場合、プリコンパイル済みコンポーネントとリ ンクする必要はないが、コンパイル時間のオーバヘッドがかかる。
  • <boost/minimal.hpp>をインクルードする。この場合プリコンパイル済みのコンポーネントをリンクする必要はなく、コンパイル時間オーバヘッドオーバヘッド はかからない。しかし、これは元のテストライブラリに定義されている機能に限定される。BOOST_INCLUDE_MAINの定義も削除される。将来的に新しいBoost.Test の機能を使う場合、 上記の他の2つの方法のいずれかに変更せざるを得ない。

オープンな議論

  • Boostテストライブラリ にどれだけ依存させるか。機能拡張のこ とを考えて、 制約を取除く必要がある。
  • メモリ使用テストツール。
  • パフォーマンステストツール。
  • 与えられたタイプリストのテンプレート関数をテストするツール。
  • コンパイル可能性チェック機能をいかに実装するか。
  • テストケースを選択して実行する機能。ユーザによる指定とフレームワークへの通知方法。
  • コマンドライン引数処理ツール: 外部か内部か、シンプルなものにするか高機能なものか
  • 単体テストフレームワークのBoostビルドシステムへの統合。
  • マルチスレッドプログラムのテストのサポート。
  • BOOST_TEST_CLOSE によって値を適切に出力する。
  • Win32 プラットフォームでのタイムアウトの実装。
  • リファレンスとチュートリアルの分離。
  • ユニットテストフレームワーク拡張のドキュメント化。
  • 実行モニタページに例を含めるべきか?
reference to the top

移植性

Boostテストライブラリは Boost library を移植またはテストすることが重要であるので、厳密なC++ 形式で、また依存度も最低限に抑えて書かれている。

テストは多くのコンパイラでコンパイル・実行できる。

謝辞

Original Test Library:

Ed Brey, Kevlin Henney, Ullrich Koethe, and Thomas Matelich provided very helpful comments during development. Dave Abrahams, Ed Brey, William Kempf, Jens Maurer, and Wilka suggested numerous improvements during the Formal Review. Jens Maurer was the review manager. Beman Dawes is the developer and maintainer.

Second Release:

Beman Dawes and Ullrich Koethe started the library. Fernando Cacciola, Jeremy Siek, Beman Dawes, Ullrich Koethe, Dave Abrahams suggested numerous improvements during the Formal Review. Jeremy Siek was the review manager. Dave reference to the top Abrahams edited this documentation. Beman Dawes was a great help in both final testing and merging library with rest of the boost. Gennadiy Rozental is the developer and maintainer.