software testing process / テストプロセス
ソフトウェアテストを進める際の一連の作業の流れのこと。「テスト計画」「テストコントロール」「テスト分析/設計」「テスト実装/実施」「終了基準の評価と報告」「終了作業」の工程を基本に計画されることが多い。
テストはソフトウェアプロセスの一部なので、作業の単位や順序は開発プロセスによって変わってくる。伝統的なウォーターフォールモデルではV字型表現でも分かるとおり、実装プロセスの後にテストプロセスが置かれ、結合テスト・システムテスト・受け入れテストという順序でテストが進んでいく。
それに対して反復型開発やアジャイル開発では、同じ単体テストでも頻度やサイクル、テスト実施者が変わってくる。必ずしもテスト担当者やテスト部門が一貫してテストを行うプロセスとはならないので、ウォーターフォールの場合よりもきちんとテストプロセスを設定する必要があると考えられる。
ソフトウェアテストの流れの概要は以下のようになる。
ソフトウェアプロジェクトにおいてテストプロセスを定義する作業/したものをテスト計画と呼ぶ。プロジェクトフェイズやイテレーションなどでそれぞれ、どのようなテストを実施するか、その内容や順序、テスト相互の役割分担を定める。各テストごとに目的、方針、戦略、対象範囲、リソース、開始基準と終了基準を定義する。
テスト計画でテストプロセスの概要が定められたら、各テストについて分析/設計を行ってテスト設計書、テスト手順書、テストケースを作成する。テストケースを作る作業をテスト実装(※)ということもある。テスト実施者はこれらに基づいてテストを行い、その結果を記録・報告する。
※ テスト設計者ではなく実施者などがテストケースを作る場合、テスト設計(行為)にテストケース作りを含めることができないため、実装という表現が使われると思われる
欠陥修正や仕様変更などでプログラムコードなどに変更が加えられた場合は、再テストによって確認を行う。また、それらの修正が修正個所以外に影響を及ぼしていないかについても回帰テストを実施して改めて確認する。
計画されたテストが終わり、終了基準を満たしたなら、当該テストは終了となる。テスト報告書にその旨を記載・提出して作業を終える。
ソフトウェアテストで使用するテスト文書に関する推奨規格「IEEE Std 829」は、テストプロセスとその作業項目の参考になる。
テスト結果は、ソフトウェアプロセスやテストプロセスを改善する“改善プロセス”を活用することもできる。テストプロセス改善のフレームワークとして、TPI(Test Process Improvement)やTMMi(Testing Maturity Model integration)が有名である。
▼『体系的ソフトウェアテスト入門??アジャイル開発時代のテスト計画、準備、実行、プロセス改善まで』 リック・D・クレイグ、ステファン・P・ヤスキル=著/宗雅彦=監訳/成田光彰=訳/日経BP社/2004年10月(『Systematic Software Testing』の邦訳)
▼『基本から学ぶテストプロセス管理??コンピュータシステムのテストを成功させるために』 レックス・ブラック=著/トップスタジオ=訳/テスト技術者交流会=監訳/2004年4月(『Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing, 2nd Edition』の邦訳)
▼『テストプロセス改善??CMM流実務モデル』 ティム・コーメン、マーティン・ポル=著/富野壽=監訳/構造計画研究所/2002年5月(『Test Process Improvement』の邦訳)
▼SLCP(software life cycle process)
▼IID(iterative and incremental development)
▼TMMi(testing maturity model integration)
▼TPI(test process improvement)
Copyright © ITmedia, Inc. All Rights Reserved.