« ブラックボックステストは、缶詰とビン詰か | トップページ | [雑誌]日経SYSTEMS 2006年12月号 「特集2 勝ちにいく!ソフトウエア・テスト」 »

タグチメソッド for ソフトウェアテスト ≠ HAYST法 と思ってます

久しぶりに直交表/HAYST法関連のブログ記事~。

==

以前ご紹介したブログで直交表やHAYST法についての考察が出された。

マイリストに「ソフトウェアテストにおける直交表(HAYST法、All-pair法)の利用」をアップ by つれづれなる技術屋日記



・ソフトウェアテスト開発技術者やソフトウェアテスト技術者にとって未知の世界
・タグチメソッド自体が賛否両論
・直交表自体の学習の難しさ
 ・実験計画法の記述のほとんどが、数式と表
 ・ベースとなる統計や代数・幾何

直交表とかタグチメソッドとかいう名前を会社の上司に話したとしても、知ってる程度で実際に直交表の書かれた紙や画面を見せると、苦笑い、といったことが多い。これは指摘の通り、未知の世界だということが大きいかも。今や大学在籍時の専攻が理学系だったとしても、なかなか数学って敬遠されがちな分野。行列とかベクトル空間とかあんまり記憶にないのが現実。だから、「直交(orthogonalかな?)」という概念もすぅ~っと頭に入りにくい。

僕はちなみに数学を主専攻にしていたので、大学時代ぶりの数式を見るとけっこう楽しい。ツボだね。それは同僚からすると意外に稀有な存在に映るらしい。



・タグチメソッド(品質工学)との間隙

(中略)

 ・SN比など重要な概念が、電気・機械・化学等の計測した数値の場合が多い
 ・体系が、電気・機械・化学等の事例をベースに確立されている

タグチメソッドについて浅学すぎて議論についていっていないかもしれないが、ここで僕の考えは少し違う。そもそもタグチメソッドを利用したソフトウェアテストという体系と、直交表を使ったソフトウェアテストという体系は別物だと考えてます。どういう理屈からかというと、、、

# 以下、浅学なため見当違いの意見を含むかもしれませんので、ご指摘を。。

  • タグチメソッドとはいかに分散を抑えるかが目的
  • タグチメソッドを説明するサイトで多く見られるのが、平均値が正確な技術と分散が小さい技術、どちらを優秀と評価するか、といった例が挙げられている。このメソッドによって、例えばどういった環境とどういったデータでソフトウェアは想定した動作をするかを評価はできる。あるいは、サーバのCPU性能、メモリ搭載量、ディスク性能といったパラメータがどのように処理性能に影響するかを評価するときに利用できる。

  • 直交表の性質から、効率的な組み合せパターンを作成できる
  • 直交表は任意の2列が直交という性質を持っていて、それをテスト条件の因子に当てはめると、効率的なテストケースのパターン作成に役立つ。例えば、ON/OFFの2種類の条件が7つあった場合、組み合せ数は2の7乗=128通りが想定できるが、任意の2条件についてすべて網羅できるという制約をつければたった8通りのテストケースで網羅できる。また、ソフトウェアによっては3条件以上の網羅を必要とする場合があるが、それも田口博士の工夫によって網羅率を高める方法が存在する。

    以上のように、ソフトウェアテストへの応用について言えば、タグチメソッドと直交表とは区別したほうがいいのではないか。と、私見ではあるが考える。



    少ない利用事例

    ・タグチメソッド自体、ソフトウェアでの利用事例発表が少ない
    ・HAYST法利用での発表も同様
    ・All-pair法利用での発表は皆無(特に日本。参考文献5は貴重)

    ほんっとに、少ない。ソフトウェアテスト全般に活用できるとは思っていないが、局所的にはすごく便利なツールなのでもっと文献や資料、事例がないと、なあ。タグチメソッド(というかSN比)の活用については、負荷分析に利用できる、といった示唆はあったが、それくらい。



    ・ソフトウェアテストのイメージ(困難な直交表経験者の流用)

    (中略)

     ・従来のタグチメソッド用ツールが使えない(HAYST法のツールはソフトウェア専用。たぶんAll-pairも)
     ・逆にソフトウェア直交表ツールを、ハードウェアのタグチメソッドに使えない

    お互いのツールがお互いを意識していないから、だろうか。



    ・ホワイトボックステストへの利用

    (中略)

    function funcA(a1, a2:integer)
     :
     :
    function funcA(b1, b2, b3:integer)
     :
     :
    function funcA(c1, c2:integer)
     :
     :

      funcA~funcCを因子へ
      a1~c2を水準へ

    なるほど。この考え方は僕にとっては新鮮でした。単体テストケースで直交表を利用するというのはやってみたいな。ただし、関数I/Fが変更された場合はおそらくゼロから単体テストケースを作り直す必要はありそうだ。


    ==

    いや~、PDF76ページの大作。読みごたえあり。すべてについて感想や意見を書く時間はなかったけれど、何かアクションしたかったので記事にしてみました。直交表って魔法に見えたり、難解なパズルに見えたり、いろんな顔を持ってるので、感じ方も千差万別かな。


    |

    « ブラックボックステストは、缶詰とビン詰か | トップページ | [雑誌]日経SYSTEMS 2006年12月号 「特集2 勝ちにいく!ソフトウエア・テスト」 »

    コメント

    ほんだです。読んで頂いてありがとうございます。

    早速ですが、「タグチメソッドを利用したソフトウェアテストという体系と、直交表を使ったソフトウェアテストという体系は別物」に関してコメントさせてください。

    まず、あの資料で、殊更タグチメソッドにこだわったのに、”タグチメソッドでのSN比などの考えは使おうよ”という点があります。そしてそのために今までバグ件数を元にしたものがあるけど、もっと発展させるといいよと書いてます。何の値にすればいいか書いてなくて”自明”と思わせぶりに書いてますが。^.^;

    ただし、SN比としてバグ件数を使ったらというのは、あそこで書いた論文にあり、時々タグチメソッドの紹介の記事で目にする事はあります。その後の事例発表を、私自身は目にしていませんが。

    で、おっしゃるように、ソフトウェアテストでの利用はタグチメソッドにこだわる必要はありません。より正確に言うと、L18などタグチメソッド特有の直交表にこだわらなくてもいいという意味です。

    All-pairとかHAYST法とか直交表生成にはいくつかの方法があります。それらにこだわる必要がないというか、組み合わせて使う方がいいよというのが、あそこでの論旨です。

    ご存知かと思いますが、All-pairとHAYST法では、2因子間の網羅度と3因子間の網羅度で、それぞれ重きを置いているものが違います。2因子の網羅度を重視する時はA、3因子でのそれを重視する時はBと使い分けてもいい訳です。(2度テストするのかとの声がありますが、バージョンアップなどを考えると、現実何度かテストしますので。)

    #ほんとは、あの資料での「その他 ブログ」で、こことかを書かせて頂きたかったんですが、ブログでのリストに置くためにブランクのままとしました。


    今後とも、よろしくお願いします。

    投稿: ほんだ | 2006年12月 4日 (月) 22:29

    >ほんださん

    大変内容の濃いコメントありがとうございます~

    僕の中でのタグチメソッドの知識レベルがまだまだだということと、直交表によるソフトウェアテスト効率化に目がいっているため、2つの体系で区別しています。
    バグ件数-SN比といったあたりの議論はまだまだついていけなそうなので、これを機会にまた勉強を進めてみます^^;
    あくまで個人的な感覚ですが、単因子テストを単体テストレベルで実施して、2因子間をカバーしておけばほとんど事足りるようなものが身の回りでは多い気がします。

    # もちろん、タグチメソッドのいいところをさらに活かした技法やAll-Trio的な技法が生まれることは期待してますが。

    投稿: softest | 2006年12月 5日 (火) 16:34

    コメントを書く



    (ウェブ上には掲載しません)




    トラックバック

    この記事のトラックバックURL:
    http://app.f.cocolog-nifty.com/t/trackback/155415/4425449

    この記事へのトラックバック一覧です: タグチメソッド for ソフトウェアテスト ≠ HAYST法 と思ってます:

    « ブラックボックステストは、缶詰とビン詰か | トップページ | [雑誌]日経SYSTEMS 2006年12月号 「特集2 勝ちにいく!ソフトウエア・テスト」 »