テスターのテストによる開発者のためのテスト

システム業界で思ったことをそのまま言葉にしよう

テストってなんだろう? 第二回「全数テストは不可能」

転職してから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だったらいいかもしれませんが(笑)

 

それでは、今回はこの辺で!