ソフトウェアのテストについて(第10课)
- 格式:doc
- 大小:29.00 KB
- 文档页数:4
ソフトウェアのテストについて
本文
品質を段階的に検証する一般的にテストプロセスには
①.モジュールをテストする単体テスト
②.各モジュールを結合させた状態でテストを実施する
結合テスト
③.システム全体をテストするシステムテスト
④.ユーザー企業による受け入れテストや本番環境でテ
ストを実施する運用テストがある
テストの目的は、大きく2つに分類できる
1つはバグ検出のためのテスト。
もう1つはシステムの動作をは保障するためのテストである。
テストというと「バグを発見するもの」と考える人が多いかもしれないが、必ずしもバグを発見することだけがテストの目的ではない。
単体テストなどのテストの初期段階ではバグの検出が優先されるが、結合テスト以降では、システムの動作を保証することに、重点が置かれる。
2つに分類できるテスト手法
テスト手法に大きく分けて「ホワイトボックス・テスト」と「ブラッボックス・テスト」がある。
ホワイトボックス・テストは、プログラムの内部構造を参照し、そのロジックや制御の流れ調べるテスト手法で、単体テストで使用される。
ホワイトボックス・テストは、さらにいくつかのテスト手
法に分類できるが、もっと一般的な手法は、制御パス・テストである。
制御パス・テストは、プログラム処理経路(開始から終了に至る命令の列)をテストする手法で、テストる処理経路の網羅の度合いに応じて、命令網羅、分岐網羅、条件網羅などの網羅基準がある。
一方のブラックボックス・テストは、テスト対象の使用や使い方に着目して、入力値と出漁区結果の対応関係から、関数やメソッドのふるまいを調べるテストである。
ブラックボックス・ウエストは、結合テスト以降のテスト後半で使用される。
ブラックボックス・テストも、「同地分割」や「境界値分析」、「原因結果グラフ。
テスト』など様々な手法に分類される。
例えば同地分割は、入力値を有効地の集合と無効地の集合に分け、各集合から代表値を選んでテストする手法。
境界値分析は、有効値と無効値の境界値とその前後の値を選らんでテストする手法である。
いずれも、無効値が入力されたときに限りエラーになることを確認するものである。
ただし、ブラックボックス・テストでは検証できないこともある。
具体的には、メモリーへの適正なアクセスやメモリー領域の確保・解放、プログラムの命令が実行されたのかどうかは、入力値と出力結果を見るだけでは検証できない。
このため、テスト対象プログラム内にチェック用のコード(プ
ローブ)を埋め込んで命令の実行を確認したり、テスト実施中のメモリー状況を計測するといった方法を採用うることがある。
この手法を「グレーボックス・テスト」と呼ぶ。
グレーボックス・テストを実施するには、メモリー状況を計測したり、命令の呼び出しを計測するためのツールが必要になる。
結合テストの手法
結合テストには「増加テスト(インクリメンタル・テスト)」と「一斉テスト(ビッグバン・テスト)」という2つの基本的な進め方がある。
増加テストは、最初にテストしたモジュールに徐々に他のモジュールを結合しながらテストを進める方法。
結合方法によって、
①.「トップダウン・テスト」
上位モジュールからテストを始めて、徐々に下位モジュールを結合していく
②.「ボトムアップ・テスト」
下位モジュールからテストを始めて、徐々に上位モジュールを結合していく
③.「サイドイッチ・テスト」
中間のモジュールからテストを始めて、上位、下位のモジュールを結合していく
の3種類に分類できる
トップダウン・テストを実施する際には、下位モジュールをエ
ミュレートするダミー・モジュールである「スタブ」を作成する必要がある。
スタブは、上位モジュールから呼び出し可能な関数を持ち。
ある値を受け取ると、なんらかの値を返す。
また、ボトムアップ・テストの場合は、上位モジュールをエミュレートする「ドライバー」を作成する必要がある。
ドライバーは、下位モジュールを呼び出してテストデータを渡すきのうを持つモジュールである。
スタブやライバーはなのべく単純あ構造をにしておき、なんども再利用することが重要である。
一方の一斉テストは、すべてのモジュールを結合してからテストを実施する方法で、段階を踏まない分、うまく進めればとっも効率よくテストを重量できる¥。
だが、逆に問題が発生した際の手戻りや不具合の解析には時間がかかるため、開発の規模が大きかった、システムが複雑な場合には、増加テストを採用する方が効率がよい。