本連載では、開発プロセスの中でも重要な位置を占めるテストプロセスに着目し、全体最適を実現させるために、どのように現実のテストプロセスに取り組んでいくべきかを考察しています。今回も前回に引き続きソフトウェアテストのトレンドにフォーカスを当て、テスト技法として「直交表(HAYST法)」について解説します。

HAYST法(『ソフトウェアテストHAYST法入門』吉澤正孝/秋山浩一/仙石太郎著、日科技連出版社刊)とは、Highly Accelerated and Yield Software Testingの略で、テスト計画で策定したテスト戦略に基づいてテストベースを分析するものです。その上でテストウェアとユーザーシーン(HAYST法では「ノイズ」と呼びます)からテスト対象のテスト条件(HAYST法では「因子」と「水準」と呼ばれる要素を使います)を抽出し、これらの組み合わせを網羅するための直交表という表に割り付け、それをもとにテストを実施する技法です。

HAYST法は、実験計画法という効率的な実験を行うために考え出された(学問分野で用いられている)直交表を、ソフトウェアテストへ適用できるように富士ゼロックスが開発しました(図1)。

図1 HAYST法とは ※この図は『ソフトウェアテストHAYST法入門』の原著者の1人である 秋山浩一氏(富士ゼロックス株式会社)よりご提供いただきました。(c)Fuji Xerox Co., Ltd.  All Rights Reserved.

富士ゼロックスでは、MFP(MFP:Multi Function Peripherals)と呼ばれるデジタル複合機の開発を行っています。MFPの開発では、図1にあるような様々な機能を組み合わせてテストしなければなりません。

例えば18種類の用紙と21種類の原稿サイズと6種類のトレイ、これらすべての組み合わせをテストするとなると、2,268通りものテストが必要になってしまいます。

実験計画法では、用紙や原稿サイズ、トレイといった機能テストの組み合わせとなる要素が因子となり、用紙の種類であるA3やA4、B5といった因子を構成する要素が水準となります。

ソフトウェアテストとして、何種類もの因子(テストする機能)間の組み合わせを網羅することは現実的ではありません。そこでHAYST法では、「2機能間の組み合わせを網羅すれば、機能の組み合わせが原因となる不具合のうち、70~90%の不具合が検出できる」というソフトウェアエンジニアリング分野の研究結果に着目しました。2因子間の組み合わせを効率的に網羅できる直交表を用いれば、機能の組み合わせのテスト項目数が爆発することを合理的に抑えることができるからです。このような背景でHAYST法が開発されたそうです。

直交表にはいくつもの種類があるのですが、このサンプルはL4直交表と呼ばれるものです。因子が3つで、各因子は1か0という2つの水準で構成されます(図2)。

図2 直交表のサンプル(L4直交法)

3つの因子間の水準の総当たりを行えば、2の3乗、つまり8つの組み合わせとなります。ですが、2つの因子間での水準の組み合わせに絞れば、この表のように4つに減らすことができます。実際に、どの因子間における水準の組み合わせを見ても0と0、1と0、0と1、1と1の組み合わせがあることがわかるでしょう。

これを実際にソフトウェア開発に適用するために、HAST法では様々な工夫がなされています。 詳しく知りたい方は、参考文献『ソフトウェアHAYST法』を一読することをお勧めします。なお、組み合わせを網羅する技法には直交表以外にAll Pair法というものもありますので、興味がある方は調べてみるといいでしょう。

執筆者プロフィール

大西建児 (Kenji Onishi)
株式会社豆蔵 シニアコンサルタント。国内電機メーカー、外資系通信機器ベンダーで培ったテストや品質保証などの経験を生かし、テスト手法や技術の普及、発展に取り組む。NPO法人ソフトウェアテスト技術振興協会(ASTER)副理事長。JaSST’08東京 共同実行委員長。著書に「ステップアップのためのソフトウェアテスト実践ガイド」(日経BP社)などがある。

『出典:システム開発ジャーナル Vol.5(2008年7月発刊)
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。