ソフトウェアテストとは︖ ▌ソフトウェアテストは、⽂字どおり「ソフトウェアをテストする」⾏為のこと。 ▌ソフトウェアをテストする⾏為とは、ただ闇雲にソフトウェアを動かすだけで はなく l 定義されている仕様を満たす結果が得られるかを確認する「機能テス ト」 l ソフトウェアの使いやすさなどを評価する「⾮機能テスト」 など、様々な観点から作成されたテストを実⾏すること。
ソフトウェアテストの種類について ▌ソフトウェアテストの種類として、JSTQBではテスト活動のグループを以下 のように分類している。 l 単体テスト(ユニットテスト、コンポーネントテスト) l 結合テスト(インテグレーションテスト) l 総合テスト(システムテスト) l 受け⼊れテスト(ユーザーアクセプタンステスト)
動的テストと静的テスト ▌ソフトウェアテストは、ソフトウェアが出来上がるまでテストできない︖ l 「静的テスト」という、要件定義書や仕様書、設計書などのドキュメントか ら⽋陥を⾒つけるテスト(レビュー)がある。 l 静的テストをソフトウェアを動かすテスト(動的テスト)の前から⾏うこと で、⽋陥の早期発⾒が期待できる。
動的テストと静的テスト ▌静的テストで⽋陥を早期に検出するメリットは︖ l ⽋陥の早期検出を⾏うことで、修正コストが⼤幅に削減される。 l 後期に発⾒される⽋陥は、作業成果物の更新や確認、影響範囲の調査及 びテストを実⾏するコストがかかる。 l 静的テストで早期発⾒した⽋陥は、⽋陥箇所のみを修正するだけで完了する など、安価なコストで修正が可能。
ソフトウェアテストのプロセス ▌ソフトウェアテストの全体像 l テスト計画 l テストのモニタリングとコントロール l テスト分析 l テスト設計 l テスト実装 l テスト実⾏ l テスト完了 テスト 計画 テスト 分析 テスト 設計 テスト 実装 テスト 実⾏ テスト 完了 テストのモニタリングとコントロール
ソフトウェアテストのプロセス ▌テスト設計 l テスト分析で決定したテスト対象をどうテストするのかを決定する。 l 抽象的なテストケースを作成し、テストの全体像やそのテストの必要 性を把握できるようにする。 l テスト技法を使⽤し、より正確に、効率的にテストを作成する。 l 対象のテストの実⾏⽅法を⾃動テストか⼿動テストかを決定する。
4章のまとめ l テストはいきなり実⾏するのではなく、プロセスをきちんと踏むことでより効 率的に、効果的にテストを実⾏することができる︕ l どこをどのようにテストしようか︖ l このテストは本当に必要なのか︖ l 仕様にはないけど、ここってテストしなきゃいけないのではないか︖ l テストプロセスを通じて、テスト対象だけでなくソフトウェア全体の品質を考 えよう︕