テスト品質についてまとめていく
第5回までを予定
①テストとは
②品質とは
③代表的なテスト技法
④レビューについて
⑤テスト工程枚の確認ポイント
テストの概念について
テストとは?
要求通りにソフトウェアが機能するか確認する。
テストとしては、ソフトウェアの動作確認を指すことが多いが、
テストの計画や、テスト終了判定の検証、結果・プロセスの報告などもテストの一環。
何のため?
- バグをできる限り見つける
- 重要な部分の動作を保証する
(バグが多い箇所やバグが許されない箇所) - バグの作りこみを予防する
テストの7原則
JSTQBが提唱するテストの原則
JSTQBは、世界的なテスト技術者資格を運営するISTQBの加盟組織。
テストは問題がある事しか示せない
どれだけテストしても、バグがないことは証明不可能。
あくもあでも、潜在するバグを見つける事が目的。
全数テストは不可能
入力パターンをすべて網羅することは、基本的に不可能。
例えば、9桁の数値(0〜9)を入力するシステムの入力パターンは、10^9=1兆となる。
さらに、この例は正常系しか含まれていない。
パターンに対し、バグの多さや発生時のリスクから、優先順位をつけて対象を絞る。
初期工程にてテスト
バグ対応は下流工程ほどコストが高い。
可能な限り初期でバグを検出を目指す。
欠陥の偏在
欠陥は特定のモジュールに集中する。
例えば、新人が対応した箇所に他よりバグが多かったり、
複雑な機能にバグが集中していたり等。
要件、機能、工程、スキル差などから傾向を分析できる。
殺虫剤のパラドクス
虫を殺す殺虫剤身も、使い続けると耐性により効果がなくなるように、
テストテンプレートを使い回しを続けていると、バグを検出し難くなる。
定期的なメンテやテスト内容の再評価は必要。
テストは条件次第
全く同じ製品でも、条件によって実施するテストは異なる。
個社への対応と、全社向け対応で同じレベルのテストはしない。
要求品質レベルがズレたまま製造が進まないように気を付ける。
バグ0の落とし穴
バグがないことは高品質ではない。
結果として、性能や利便性を犠牲にしていないか。