テストってなんだろう? 第二回「全数テストは不可能」
転職してから6ヶ月目。
あっという間の半年でした。
いろんなことを体験しながら、これから来る「梅雨」が恐怖でしかありません( ゚д゚)
北海道に住んでいたので「梅雨」の経験はありません。
さてはて、どうなることか。
さて、半年近くテストエンジニアをしていますが、いまだにテストとはなんだろうと思わない日がありません。
しかし、テストエンジニアにはJSTQBのシラバスというバイブルが存在します。
今回もシラバスを読み解いていきましょう!
前回に引き続き、7つの原則のその2です。
原則2.全数テストは不可能
これは確かに不可能です。
例えば、
計算機には「1」「2」「3」「4」「5」「6」「7」「8」「9」「0」
演算子は「+」「-」「×」「÷」「=」
1桁の数値を2回演算するパタ-ンのテストケースを考えてみましょう。
正常系のテストは
「数値(10パターン)」+「演算子(4パターン)」+「数値(10パターン)」+「=」+「結果」
テストケースは10 × 4 × 10 = 400ケース
はい!400 ケース
このケース数は正常系のテストです。
では、異常系は?
・
・
・
無限に考えられます。
しかも今回は「1桁の数値を2回演算するパタ-ン」です。
ということは、全数テスト=無限のテストケースということになりますね。
ゆえに不可能です。
まぁ、世の中そこまで考えてくれる人はいないので、「組み合わせを全パターンやればできるだろ!」とか平気でいう人がいます。これマジです。
言われたことあるんです。じゃ、素直に組み合わせを持って行くと、このパターンはありえないだろと言う人。たしかにそういうこともありますけどさ(笑)
今回は、パソコンについては言及していませんが、パーツの愛称というのものあります。他にもAWSとかのインフラが落ちる場合もあります。そういった外的要因も考えると本当に全数テストは無理です。AWSに「テストしたいからサービス落としてくれ!」なんていう強者がいないことを望みます。
じゃ、どうするかというと
取捨選択するしかありません。
WEB系のシステムだとブラウザをどこまでテストするか、どういった因子や水準を設けるか。その組み合わせで不可能なパターンはケースとして除外するか。
etcetc…
ここで重要になるのはQCDでしょう。どこまでの品質を求めて、それにかけれるコストを決め、いつまでに必要かを明確にするべきでしょう。
品質は最高品質で、でもコストはかけないで、納期はなる早で!
そんな会社はブラック臭がするので、気をつけてください!
経営陣がQCDに対して決められないのなら、その会社は成長しないと言えます。
逃げることを勧めます。よっぽどのドMだったらいいかもしれませんが(笑)
それでは、今回はこの辺で!