software testing / テスト
コンピュータのソフトウェアプログラムを実行し、それが意図したとおりに動くかを観測・評価・検証する作業のこと。通常は検証対象のソフトウェアを実際に試行する動的テスト(注1)を指すが、レビュー(注2)などを静的テスト(注3)と呼んで広義のテストに含める見方もある。
ソフトウェアテストを行う目的としては、「欠陥やバグ(注4)を検出する」「要件を満たすことを保証する」「リリース後の品質リスクを見積もる」「開発プロセス改善の指標となる」などが挙げられる。どの目的を重視するかは、開発するソフトウェアプロダクトの目的やニーズ、開発組織の成熟度などによって変わってくる。
ソフトウェア開発におけるテストは一般に、ユーザーの使用状況を反映した入力データを用いてソフトウェアを実行し、事前に想定した結果と実際の実行結果をつき合わせて合否の判定を行う。このテスト用の“入力データ”とそれを実行したら得られるであろう“事前に想定した結果”の対をテストケースという。
すなわち、テストケースを使って対象を実行してみる“行為”がテスト(testing)である。ただし、このときに使用するテストケース(テストデータ、テストスイート)などの“道具”をテスト(test)ということもある。「テスト設計」「テストを書く」という場合のテストは、道具(※)としてのテストである。
※ 一般にテストは能力や実力、学力などを測る道具である。この場合、テスト問題といってもよい
さらにソフトウェアプロセスの中でテストチームや品質保証部門が担当する作業の全体である“テストフェイズ”、あるいはテスト目的を達成するようにテスト(行為)を一連の流れに編成した“テストプロセス”をテストと呼ぶこともある。「テスト計画」「テストコントロール」という場合のテストは、テストプロセスやテストフェイズを指す。
テストされていないプログラムは正しい動作を保証されず、実際に高い確率で正しく動作しない。したがってソフトウェア開発において、でき得る限り網羅的にテストを行うべきであり、テスト自体は必須の工程と位置付けられてきた。しかしながら、ソフトウェア開発の黎明期から「完全なテスト」の困難性が指摘されている。
実用レベルの複雑さ(規模)を持つソフトウェアの場合、“入力データ”と“実行結果”の組み合わせは事実上無限となる。また、環境に依存する機能では、環境との組み合わせも発生する。このため、ほとんどのテストは無限の組み合わせに対して有限個のテストケースをあてがう作業であって、完全なテストにはならないのである。
ソフトウェアテストにはさまざまなテスト技法が存在するが、これらは「いかにテストケースを少なく、効率的にテスト目的を達成するか」「どれだけテストをすれば、品質を確保したといえるか」といったテーマに対する工夫である。適切なテストプロセスを計画するには各テスト技法の特徴をよく知り、対象ソフトウェアの開発目的に応じて、どのテスト技法をどの段階で行うのか、正しく取捨選択する必要がある。
ソフトウェアテストの技法や手法には、以下のようなものがある。
ソフトウェアテストの主な分類 |
■テスト設計技法による分類
※ テスト設計テクニックによる分類としては、「ホワイトボックステスト」「ブラックボックステスト」「グレーボックステスト」に分ける視点もある。
※ 機能テストは機能要件に関するテスト、非機能テストは非機能要件に関するテストだが、機能要件/非機能要件の分類は必ずしも固定化されていない。
|
ソフトウェアテストの世界には、長年の経験をまとめた7つの一般原則がある。
レベル0 | テストとは、デバッグのことである |
レベル1 | テストの目的は、ソフトウェアが正常に働くことを示すことである |
レベル2 | テストの目的は、ソフトウェアが正常に働かないことを示すことである |
レベル3 | テストの目的は、ソフトウェアが正常に働かないことで生じるリスクを許容値まで下げることである |
レベル4 | テストとは、高品質のソフトウェアを開発しようという精神的な規律である |
▼『ソフトウェア・テストの技法〈第2版〉』 グレンフォード・J・マイヤーズ、トム・バジェット、テッド・M・トーマス、コーリー・サンドラー=著/長尾真=監訳/松尾正信=訳/近代科学社/2006年7月(『The Art of Software Testing: 2nd ed』の邦訳)
▼『ソフトウェアテスト技法??自動化、品質保証、そしてバグの未然防止のために』 ボーリス・バイザー=著/小野間彰、山浦恒央=訳/日経BP出版センター/1994年2月(『Software Testing Techniques, 2nd Edition』の邦訳)
▼『ソフトウェア品質知識体系ガイド??SQuBOK Guide』 SQuBOK策定部会=編/オーム社/2007年11月
Copyright © ITmedia, Inc. All Rights Reserved.