テストの独立性とは
テストの独立性は、作った本人以外の視点でテストする度合いのことです。 人は自分の成果物の欠陥に気づきにくい(作者バイアス)ため、独立性を高めると 欠陥検出の客観性が上がります。
独立性のレベル
低い順に、おおよそ次の段階があります。
- 開発者が自分のコードをテストする(独立性なし)
- 同じチームの別の開発者がテストする
- チーム内の専任テスト担当者がテストする
- 組織内の独立したテストチームがテストする
- 組織外(外部委託、認証機関)がテストする
独立性の利点と欠点(両面が問われる)
| 観点 | 内容 |
|---|---|
| 利点 | 作者と異なるバイアスのない視点で欠陥を見つけやすい。仕様の曖昧さ・思い込みを検証できる。客観的な品質報告がしやすい |
| 欠点 | 開発チームとの協力関係が損なわれるおそれ。開発者が「品質はテストチームの責任」と考える責任感の希薄化。フィードバックが遅れる。テスト担当者が情報から孤立する |
試験では「独立性は高ければ高いほど良い」という選択肢が誤りとして頻出です。 独立性はトレードオフであり、プロダクトのリスク・SDLCモデル・組織文化に応じて 適切なレベルを選びます。
アジャイルでの独立性
アジャイル開発では、テスト担当者が開発チームに組み込まれる(独立性は低め)ことが 一般的です。それでも、チーム外のテスト専門組織がリリース前の確認や特殊なテスト (性能・セキュリティ)を担うなど、複数のレベルを組み合わせることで スピードと客観性のバランスを取れます。
学習のポイント
「利点だけ」「欠点だけ」を答えさせる問題と、シナリオに適した組織形態を選ばせる K3問題の両方が出ます。利点・欠点を対で覚えるのが最短です。