本連載では、開発プロセスの中でも重要な位置を占めるテストプロセスに着目し、全体最適を実現させるためのテストプロセスについて考察します。今回はテストの自動化に用いるツールを紹介する最後の回として、「テスト実行とロギングの支援ツール」と「性能・モニタリング支援ツール」を紹介しましょう。

テスト実行とロギングの支援ツール

「JUnit」や「CppUnit」などのxUnitと呼ばれるツールなど、自動テストツールがこの分類に入ります。統合テスト以降のテストの自動化では、PC上のマウスやキーボードの操作を記録、再生して期待結果と自動比較するキャプチャ/プレイバックツールが有名です(同ツールについては後述します)。

また、コードカバレッジ測定ツールもこの仲間に入ります。商用ツールとしては、日本コンピュウェアの「DevPartner」やガイオテクノロジーの「カバレッジマスター」などが有名です。フリーウェアでも多くのツールがありますが、言語環境、コンパイル環境によって使えるツールが異なります。

なお、自動テストツールを使ったからといって、すべての作業が自動で行われるわけではありません。そもそも手動で行ったことがないテストは、自動テストツールを使っても簡単にはできませんし、逆にすべて手動で行っていたテストは自動化できません。また、テストプロセスを見直さないと自動化に要する手間がかかりすぎて効果が出ない場合もあります。

性能・モニタリング支援ツール

この分類には、テスト実行中にソフトウェア内部の状態を解析してタイミングに依存する欠陥や、ソフトウェアを実行して初めてわかる欠陥を見つける「動的解析ツール」、手動では困難な大量の負荷をシステムへ与える「ストレステストツール」、負荷を与えた時の応答時間測定やシステムリソースモニタリング(監視)を行うツールが該当します。

この種のツールは、使わないとテストの実施が困難な場合が多いので、効果はわかりやすいでしょう。ただ、他のツールと同様に、テスト実施時には手間がかかるため、きちんと計画してテストを行うことが大切です。

動的解析ツールでは日本コンピュウェアの「DevPartner」が、ストレステストツールでは日本HPの「LoadRunner」や日本オラクルの「Load Testing for Web Applications(旧エンピレックスのe-Load)」が有名です。

テストの自動化ツールは基本的に上記の5つに分類できますが、組込み系開発で使うシミュレータなど、対象アプリケーションが限定されたツールも多いです。プログラム言語ごとに制限があるツールもあるので、自分たちの開発環境で適用可能なツールかどうかを判断するための調査、検証が必要です。

また、「Excel」はテストツールとは言えませんが、データ作成、テスト結果比較、マネジメント支援など様々な場面で活用できます。ハードディスクやデータベースを初期状態に戻すツールや、環境の自動設定をするツールなどもテストの効率化に役立ちます。

執筆者プロフィール

湯本剛 (Tsuyoshi Yumoto)
株式会社豆蔵 シニアコンサルタント。1991年に製造メーカーに就職し、原価管理、製品管理システム構築プロジェクトに参画。その後ソフトハウスにてパッケージソフト、プリンタドライバ、C/Sシステム、Webシステムなどソフトウェアテスト業務に携わる。現在は豆蔵にてソフトウェアテストのコンサルタントとして活動中。日本科学技術連盟SQiPステアリング委員、JSTQB技術委員、s-open幹事、NPO法人ソフトウェアテスト技術振興協会理事。

『出典:システム開発ジャーナル Vol.6(2008年9月発刊)
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。