Boost logo

Boost Test Library

"Test everything that could possibly break"

XP maxim

Introduction
Components

Execution monitor
Program Execution Monitor
Test Tools
Test Execution Monitor
Unit Test Framework
Minimal Test

FAQ
Design

Migration guide
Open Issues
Portability
Acknowledgements

Introduction

The Boost Test Library は テストの作成、テストケースやテストスィートにおけるテストの管理、またそれらの実行制御などに適したコンポーネントセットを提供する。 Program Execution Monitor はテスト環境ではなく、実稼働環境において有効である。

reference to the top

Components

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

FAQ

See Boost Test Library FAQ.

Design

See Boost Test Library Design.

Boost.Test migration guide

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

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

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

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

Open Issues

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

Portability

Because the Boost Test Library is critical

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

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

Acknowledgements

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.