ソフトウェアテストとは︖
▌ソフトウェアテストは、⽂字どおり「ソフトウェアをテストする」⾏為のこと。
▌ソフトウェアをテストする⾏為とは、ただ闇雲にソフトウェアを動かすだけで
はなく
l 定義されている仕様を満たす結果が得られるかを確認する「機能テス
ト」
l ソフトウェアの使いやすさなどを評価する「⾮機能テスト」
など、様々な観点から作成されたテストを実⾏すること。
1章のまとめ
ソフトウェアテストとは・・・
l ソフトウェアをテストして
l ソフトウェアに存在するバグを発⾒して修正して
l ユーザーが求めているソフトウェアを探求する⼯程︕
Slide 44
Slide 44 text
2. ソフトウェアテストの種類
Slide 45
Slide 45 text
ソフトウェアテストの種類について
▌ソフトウェアテストの種類として、JSTQBではテスト活動のグループを以下
のように分類している。
l 単体テスト(ユニットテスト、コンポーネントテスト)
l 結合テスト(インテグレーションテスト)
l 総合テスト(システムテスト)
l 受け⼊れテスト(ユーザーアクセプタンステスト)
動的テストと静的テスト
▌ソフトウェアテストは、ソフトウェアが出来上がるまでテストできない︖
l 「静的テスト」という、要件定義書や仕様書、設計書などのドキュメントか
ら⽋陥を⾒つけるテスト(レビュー)がある。
l 静的テストをソフトウェアを動かすテスト(動的テスト)の前から⾏うこと
で、⽋陥の早期発⾒が期待できる。
Slide 53
Slide 53 text
動的テストと静的テスト
▌静的テストで⽋陥を早期に検出するメリットは︖
l ⽋陥の早期検出を⾏うことで、修正コストが⼤幅に削減される。
l 後期に発⾒される⽋陥は、作業成果物の更新や確認、影響範囲の調査及
びテストを実⾏するコストがかかる。
l 静的テストで早期発⾒した⽋陥は、⽋陥箇所のみを修正するだけで完了する
など、安価なコストで修正が可能。
Slide 54
Slide 54 text
ソフトウェアテストのタイミング
▌開発プロセスの初期から静的テストを開始し、動的テストの前に⽋陥の
早期検出で開発コストを下げよう︕
▌静的テストに限らず、⽋陥は後⼯程で検出されるほど修正にコストがか
かってしまう。
l 開発プロセスの早い段階で⾏う単体テストや結合テストも⼤事︕︕
Slide 55
Slide 55 text
2章のまとめ
l テストは開発プロセスのどこでもできる︕
l それぞれのプロセスに適した種類のソフトウェアテストを⾏って、効果的に
品質をあげよう︕
ソフトウェアテストのプロセス
▌ソフトウェアテストの全体像
l テスト計画
l テストのモニタリングとコントロール
l テスト分析
l テスト設計
l テスト実装
l テスト実⾏
l テスト完了
テスト
計画
テスト
分析
テスト
設計
テスト
実装
テスト
実⾏
テスト
完了
テストのモニタリングとコントロール
Slide 64
Slide 64 text
ソフトウェアテストのプロセス
▌テスト計画
l テストの⽬的を定義し、テストのアプローチを決定する。
l スケジュールやコスト、メトリクスもここで計画する。
Slide 65
Slide 65 text
ソフトウェアテストのプロセス
▌テストのモニタリングとコントロール
l テスト計画で決定したメトリクスを利⽤してテストの進捗を計測する。
l 計測した進捗から現状のテストの状況を把握し、必要であれば是正
処置を⾏う。
l テストの終了判定もここで決める。
Slide 66
Slide 66 text
ソフトウェアテストのプロセス
▌テスト分析
l 仕様書やソースコードなどの開発成果物から、ソフトウェアの何をテスト
するのかを分析する。
l テスト対象の優先度付けを⾏い、いつテストするのかを決定する。
l 情報を分析することで、仕様の不備に気が付くこともある。
Slide 67
Slide 67 text
ソフトウェアテストのプロセス
▌テスト設計
l テスト分析で決定したテスト対象をどうテストするのかを決定する。
l 抽象的なテストケースを作成し、テストの全体像やそのテストの必要
性を把握できるようにする。
l テスト技法を使⽤し、より正確に、効率的にテストを作成する。
l 対象のテストの実⾏⽅法を⾃動テストか⼿動テストかを決定する。
Slide 68
Slide 68 text
ソフトウェアテストのプロセス
▌テスト実装
l テスト設計で作成した抽象的なテストケースを、より具体的なテスト
ケースへと書き出す。
l テストケースの⼿順を明確にする。
l テストに必要なスクリプトやデータの作成を⾏う。
Slide 69
Slide 69 text
ソフトウェアテストのプロセス
▌テスト実⾏
l テスト実装で作成したテストケースを実⾏する。
l テストは⼿動で⾏う場合もあれば⾃動で⾏われる場合もある。
l 検出された故障を報告し、修正された⽋陥を再度テストする⼀連の
活動も含まれる。
Slide 70
Slide 70 text
ソフトウェアテストのプロセス
▌テスト完了
l テストで得られた情報を集め、今後のテストにどう活かすのかを検討す
る。
l テストで使⽤した環境の整備を⾏う。
Slide 71
Slide 71 text
4章のまとめ
l テストはいきなり実⾏するのではなく、プロセスをきちんと踏むことでより効
率的に、効果的にテストを実⾏することができる︕
l どこをどのようにテストしようか︖
l このテストは本当に必要なのか︖
l 仕様にはないけど、ここってテストしなきゃいけないのではないか︖
l テストプロセスを通じて、テスト対象だけでなくソフトウェア全体の品質を考
えよう︕