殺虫剤のパラドックス
殺虫剤ばかりで虫を退治していると、やがて虫は進化し殺虫剤に対する耐性を身に付け、その殺虫剤では効かなくなってしまうこと。
薬とかでも耐性菌ができちゃうっていうあの話のことです。
IT業界では業界での「殺虫剤のパラドックス」とは同じテストを何度も繰り返すと、
最終的にはそのテストでは新しい欠陥を見つけられなくなるということ。
テストの本来の目的は、テスト対象に欠陥がないことを確認すること。
でも、現場は要件仕様通りに動作するかどうかを確認するだけでも精一杯ってことが多い。
(テストやソースレビュー、修正対応とかしていると改善要望や「あるべき論」とかってドンドン、出てくるんですよね。)
殺虫剤のパラドックスによって「バグ自体が高度で限られた条件のみのバグのみが残っていく」という意味では、
ある意味、品質が向上して言っているのでいいことだと思う。
でも、この殺虫剤のパラドックスはどっちかっていうと、テスト担当者自体がテスト仕様書に慣れてしまって(耐性がついて)、
手早く適当なテストをしてしまうことに問題があると思う。
記述的テスト
伝統的なソフトウェアテスト(記述的テスト)は、事前に定義したテストケースを順番にすべて適用する形でテストを実施する。
規模に応じたある程度の妥当な件数のテストをこなすだけでテストが終わったという達成感がなによりも怖い。
とはいえ、網羅性の確認という意味で、エビデンスをとって必ずやるべき作業だと思う。
客を納得させる資料で、開発者が納得してしまったら、そこで終わっちゃう。
なので、よりテスト品質を上げるための期間を設けて追加テストを行うべきと思う。
探索的テスト
テスト担当者がテスト仕様書にないアドリブでテストを実行する方法を「探索的テスト」という。
臨機応変にテスト項目を決めていくテストスタイル。
この方法は、仕様やシステムを熟知していて、ある程度の経験を積んだテスト担当者のみが行なえる必殺技。
前のテスト結果に応じて、次のテストの方法を決めていく系統だったテストでもある。
「ここで障害でたから、強化テストや横展開しておくか」って、新たなテスト件数が生まれるという感じ。
要は、「殺虫剤をより強く広範囲に」って感じ。
あと探索的テストと同じようにテスト仕様書を使わないテストの方法に「エラー推測テスト」ってのがある。
エラー推測テストは、ソフトウェア開発者が「考慮漏れ」を起こしそうな点に的を絞ってテストを実施するもの。
まあ、エラー推測テストはすっごく属人的で良くない方法です。
でも、実際の現場ではテスト件数に表れない、先述した探索的テストやエラー推測テストによって発見される障害も結構あります。
なので、
「テスト期間はテスト仕様書に書いていないテストをする謎の期間がほしい」
と訴えましょう、
(実は何もやっていないのではという恐怖を抱かれつつ)
それがエロかっこいいテストだと思ってます。
[…] 殺虫剤のパラドックス | ありブログ | arison.jp http://arison.jp/blog/2012/11/23/paradox-of-insecticide/ […]