#ソフトウェアテスト
ソフトウェアテストについて調べたので、そのまとめ。
##1.ソフトウェアテストとは
・プログラムを実行し、正しく動作するか、目標品質に到達しているか、
意図しない動作をしないかどうかを確認する作業のこと。
・プログラム中の仕様にない振舞又は欠陥(バグ)をできる限り多く発見することを目標する場合がある。
・ソフトウェアテストの成功するとは、規定した試験項目にすべて合格するか、
規定した品質目標に到達するか、欠陥を発見すること。
・ソフトウェアテストでは、バグが存在することを示すことはできるが、バグが存在しないことは証明できない。
##2.テストプロセス
ソフトウェアテストにどのような作業があり、どういう順番で実施するかは以下の通り。
- テスト作業全体をどのような方針で実施していくかを計画する。
- その方針に基づいてテストの分析、設計、実装、実行を進める。
- これらの作業が最初に立てた計画通りに進んでいるかどうかを管理する。
- テスト実行が完了したら、結果を確認しテスト作業を終了してよいかどうかの判定を行う。
- 最後に終了作業を実施する。
###2.1.テスト計画
・テストのスコープや目的を明確にする。
・テストの全体計画(方針、体制、スケジュール等)を策定する。
・テストの終了基準を策定する。
終了基準の例:
- 必要なテスト項目が全て実施確認されていること。
- 検出された不具合が全て対応されていること。
- テスト実施期間の終了80%以降に、重要度の高い不具合が検出されていないこと。
- 検出された不具合の改修に対して、回帰テストが実施されていること。
###2.2.テスト管理
・テスト分析~テスト実行の作業について進捗を確認し、問題があればその状況に対するアクションを行う。
・バグの発見状況を監視し、それに対するアクション(品質管理)を行う。
###2.3.テスト分析
・テストベース(テストケースを作るためのインプットとなる成果物)を整理する。
・テストすべき条件や要件、テストケースの作成方針(どのテスト技法を使うか、など)を決定する。
###2.4.テスト設計
・テスト分析で洗い出した条件や要件を満たし、抜け漏れや重複の無いテストケースを作成する。
・テストケースは環境、前提条件、操作、期待結果を明記する。
###2.5.テスト実装
・テスト設計で作成したテストケースをもとに、実際に実行するための具体的な手順を作成する。
・テストデータや自動化用のスクリプトを作成する。
###2.6.テスト実行
・テスト実装で作成した手順どおりにシステムを操作し、期待した結果となるかを確認する。
・期待結果がNGの場合、キャプチャやログ等の証跡(エビデンス)を取得して、バグの報告をする。
・バグの原因分析、修正をする。
・バグ修正の影響範囲を分析したうえで、NGとなったテストケースだけでなく、すでに消化済みの関連するテストケースも再試験する。
###2.7.テスト終了判定
・テスト計画で作成した終了基準に従い、テストプロセスを終了するかを判定する。
・テストの実行結果やバグの検出状況などを分析する。
・終了基準を満たさず、妥当な理由がない場合、必要に応じてテストの追加などのアクションを行う
###2.8.テスト終了作業
・これまでのテストプロセスについて最終確認し、最終レポートを作成する。
・テスト資材を整理し、今後の活動のためのフィードバックを行う。
テストの種類や手法については、いずれまた。