リモートワーク・ご商談等のオンライン対応について

ギークスジョブの掲載案件はリモートワークでの参画がご相談可能です。
また、現在実施している個別説明会、各種イベント、顧客企業様との商談打ち合わせはオンラインでご対応いただけます。

テストパターンを効率化!直交表でテスト工数を最低限に!

作成日:2020/09/24 (木) TECH

この記事は公開から1年以上経過しているため、情報が古い可能性があります。

テストパターンを効率化!直交表でテスト工数を最低限に!

ソフトウェアやハードウェアのテストパターンをどのように作っていますか?パラメーターの組み合わせを網羅しようとするとテストパターンは膨大になってしまいます。すべてのパターンをテストする時間は無いが重要なパターンは押さえておきたい、というときに役に立つのが直交表です。

すべての組み合わせをテストするのは非効率

例としてスキャナーのドライバーのソフトウェアをテストする場合を考えてみましょう。スキャナーの動作を決めるパラメーターは【用紙サイズ・解像度・色】の3つとします。そして用紙サイズには【A4・B5】、解像度には【普通・きれい】、色には【白黒・カラー】とそれぞれ2つの選択肢があるとします。

全部の組み合わせパターンは2×2×2=8種類になります。8パターンのテストをするくらいは簡単です。しかし仮にパラメーターが2倍の6つに増えたら、組み合わせは2×2×2×2×2×2=64パターンにも増えます。パラメーターが増えると組み合わせの数は指数的に増えていきます。それを全部テストしようとしたらテストパターンは無限大になってしまうのです。

そもそもすべての組み合わせをテストする必要はあるでしょうか?手間がかかるわりにはバグをあまり検出できないという結果になってしまいそうです。ではどうすれば効率的にテストをおこなうことができるのでしょうか。

効率的な組み合わせを示したのが直交表

直交表とは、パラメーターの効率的な組み合わせが書かれた表です。


先ほどのスキャナードライバーの例で説明しましょう。
スキャナーの3つのパラメーター【用紙サイズ・解像度・色】を、直交表の用語では因子と呼びます。そして、それぞれの選択肢【A4/B5・普通/きれい・白黒/カラー】を水準と呼びます。スキャナードライバーには、3因子2水準の組み合わせパターンがあります。

3因子2水準用に、L4直交表という表があります。それに書かれた組み合わせに当てはめるとスキャナードライバーのテストパターンは下の右の表のようになります。

効率的な組み合わせを示したのが直交表の画像

8パターンのテスト項目が4パターンに減りました。この4パターンをテストしておけばバグのほとんどを洗い出せるのです。このように効率的な組み合わせを示した表が直交表です。因子と水準の数を変えたいくつもの直交表が用意されています。


参考:https://www.monodukuri.com/gihou/article_list/47/直交表

直交表は2因子の組み合わせを網羅している

なぜ直交表を使うとテストパターンが減るのに十分なテストができると言えるのでしょうか。


直交表の原理を説明します。

直交表は「不具合が起こる要因のほとんどは2つまでの要因の組み合わせによるものだ」という考えに基づいています。3つ以上の偶然が重なって起こる事件というのは、世の中には滅多にないのです。(ただし後述の最悪条件の組み合わせは除きます)

先ほどのスキャナーの例だと【A4-きれい・A4-普通・A4-白黒・A4-カラー】といったように、A4に対して2つの因子の全ての組み合わせがあります。白黒に対しても【白黒-B5・白黒-A4・白黒-普通・白黒-きれい】というように、2つの因子の全ての組み合わせがあります。つまり2つの因子の組み合わせを網羅しています。2つの因子の複合条件によって起こるテストをしておけばほとんどのバグを検出できるのです。

ただし、システムの負荷が最大となる組み合わせ(最悪条件の組み合わせ)は別にテストしておく必要があります。
上の直交表には、使用するメモリーの量が最大になるであろう【A4-きれい-カラー】の組み合わせは含まれていません。テストパターンを追加するかカラーと白黒を入れ替えるかをして、負荷が最大となるテストパターン(最悪条件の組み合わせ)を取りこぼすことがないようにしておきましょう。

食べきれないほどの組み合わせも効率化できる

先ほどのスキャナードライバーの例では組み合わせの数が少ないため、直交表の効果があまり感じられなかったかと思います。
そこで今度は水準の数を増やしてみましょう。「自動ラーメン製造機」を作ってテストをする例を考えてみます。

自動ラーメン製造機では【スープの種類・麺の硬さ・油の量・麺の量】を選択できます。スープの種類は【醤油・味噌・とんこつ】の3つの因子から選択できます。麺の硬さ、油の量、麺の量も同様に3つです。全ての組み合わせは、3×3×3×3=81通りです。これらのラーメンを全部試食するのは大食いチャンピオンでも難しいでしょう。


これを3水準4因子の直交表に当てはめてみると、以下の表のようになります。

食べきれないほどの組み合わせも効率化できるの画像

全部の組み合わせだと81通りもあったのに、直交表を使用すると9通りで済んでしまうのです。


ここでも2因子の組み合わせは網羅されていますから「大盛‐軟らかめ」のときに麺が伸びて器からあふれてしまう不具合とか、「とんこつ‐油少なめ」に設定しても油が多くなってしまう不具合などがあれば検出することができるのです。

おわりに

テストのパラメーターが多くて困ったときは、直交表を使ってテストケースを削減することを考えてみてください。そして工夫することでテストを楽しんでしまいましょう。

ギークスジョブはITフリーランス専門エージェントとして20年以上にわたり、ITフリーランスのご支援を行っています。
フリーランスを初めて検討される方はもちろん、現在フリーランスとしての今後に不安を感じている方、今よりもっと充実したフリーランス生活を楽しみたい方は、ぜひお気軽に相談ください。ITフリーランス専任のキャリアアドバイザーがマンツーマンでサポートいたします。


▽ 無料登録(エントリー)はこちら
https://geechs-job.com/entry


まだフリーランスになることに迷いがある方へは、独立のご相談から承ります。これまでのご経歴やキャリアの目標をお伺いしながら、お一人おひとりに寄り添ったキャリアプランのご提案をいたします。


▽ 独立相談会への無料エントリーはこちら
東京:https://geechs-job.com/event/details/1
大阪:https://geechs-job.com/event/details/2
福岡:https://geechs-job.com/event/details/3
名古屋:https://geechs-job.com/event/details/189

その他のおすすめ記事

5分でわかるSSL通信 SHA-1、SHA-2の違いとは?|ITフリーランスをサポートするギークスジョブ

ITフリーランスの方のための『お役立ち情報』をご紹介しています。この情報のテーマは5分でわかるSSL通信 SHA-1、SHA-2の違いとは?です。geechs job(ギークスジョブ)では、「フリーに生きる」ためのノウハウをご紹介し、ご希望のキャリアやライフプランを実現できるように、サポート致します!

シェア

スキルを収入上昇につなげよう

日本最大級のITフリーランス専門エージェント ギークスジョブ

無料登録はこちら

いきなりフリーランスとして活動するのは不安...という方へ

業界・専門知識の豊富なコーディネーターが、関東、関西、福岡で無料セミナーを実施しています

こんなお悩みはありませんか?

  • 自分のスキルでフリーランスになれるか不安
  • 安定した収入を得られるのか不安
  • 税金や保険などの手続きがどうなるのか知りたい

まずは、ギークスジョブの無料イベントに参加してみませんか?
まだ本格的に活動する予定がない方も、情報収集の手段として活用されています。
不安や小さな不明点を解消する場として、是非ご利用くださいませ。

イベント一覧を見る
上に戻る