見出し画像

第100回: 組み合わせテスト(直交表)

≡ はじめに

ASTERセミナー標準テキスト」の128ページについてです。

前回は、組み合わせテストの基礎について書きました。今回は直交表について書きます。

記念すべきnote 100回目に直交表って偶然、すごくないですか?

実際には増刊をカウント外としているので、前回がnoteへの100投稿目で、今回は101回目なのですが、今となってはなぜカウント外としたのかすら覚えていません。
※ 細かいことはどうでもいいんだ。(笑)

ちなみに、noteやブログのこと、ちょっと分かってきたのですが、「短くて実践的ですぐに役に立つ」か「おもしろく、ひとに話したくなるような知識が得られる」記事の評判が良いようです。この連載は「長いし、すぐに役立つ話は少ない」です。(ずっとあとになって、「そういえばなんか書いてあったなあ」と読み返したくなる記事を目指しています)
また、本noteは、人の役に立つかは気にせずに、自分のノート(知りえてもどんどん忘れていく情報のメモ)を公開しているものです。

さて、テストコミュニティのみなさんに、あきやまは“直交表使い”だと思われているようです。

それは、TEFというMLで、直交表についてのやり取りを重ねたからかもしれません。

やりとりは、「実験計画法について」という件名で、ホリさんのメールがきっかけとなり、M社のS田さんと30通を超える文通のような形で続きました。(いま読み返したら2001年5月から9月くらいまで、内容は非常に多岐にわたって続いていました。そりゃあ実験計画法だけで、5カ月も続けば)
その後も、直交表やHAYST法についての話題がでるとリプライしていたと思います。

そんな私ですが今回は、「必要最小限のこれだけは知ってほしい事」について書きます。必要最小限なので、「どうでもいい話」や、「色々あるよな話」や、「厳密にいうと違う話」は書きません。そういう話をしすぎて、みんな引いちゃってると思うですよね。こんな趣味に走ったnoteを連載していてなんだけど、直交表は特にそんな気がするので。

ずっと前に塾長の智美さんから「単純な使い方を教えて、慣れさせたあとに、ちょっとずつ深い話をした方がいいのよ」とアドバイスを受けたことを思い出します。

書かない話とは、例えばこんな話です。

どうでもいい話:
 直交表の種類を表すL4の表記: Lは斜体で4は下付き
色々あるよな話:
 L4直交表の中の数字は、「1と2」(田口玄一式で水準の数が分かりやすい)以外に、「0と1」(数学で作るとこうなる)、「-1と+1」(列の総計を求めると0になって便利)など色々ある
厳密にいうと違う話:
 禁則と制約は、厳密にいうと違う


≡ 直交表

直交表についてはキャッチイメージの表について説明できるようになると概ね卒業です。スクロールするのは面倒だと思うので、再掲します。

画像1

こちらは、L4直交表(エルヨン チョッコウヒョウ)と呼びます。1から4の4行あるからL4です。8行あればL8ですし、18行あればL18です。(L18は実験計画法で非常によく使われます)

画像2

上の図は、「ASTERセミナー標準テキスト」の128ページにあるものですが、直交表に、OSの因子と水準を割り付けている様子です。

テストしたいOSという因子には、WindowsとiOSの2つの水準があるので、OSという因子を列見出に、WindowsとiOSという水準を表の中にあるセルの1と2を置き換えるかたちで入れ替えています。これを「割り付ける」と言います。

因子と水準についてはあとで書きますが、「因子は組み合わせたい要因」(ここではOS)のことで、「水準は要因の中の選択肢」(ここではWindowsとiOS)のこととわかればOKです。なんとなくの理解で大丈夫です。

あとは、この4行をテストすると組み合わせテストをしたことになります。←ブロッコリーさんに叱られそうな書き方ですが、今回は“厳密に言わない”ので。


≡ 直交表の性質

直交表に因子と水準を割り付けて、なにがうれしいかというと、組合せが多くテストされることです。直交表を再掲します。

画像3

1列目と2列目の組合せは、{1, 1}、{1, 2}、{2, 1}、{2, 2}です。1と2の組合せが全て出現しています。

次に、2列目と3列目の組合せは、{1, 1}、{2, 2}、{1, 2}、{2, 1}です。先ほどと順番は違いますが、こちらも1と2の組合せが全て出現しています。

最後に、1列目と3列目の組合せは、{1, 1}、{1, 2}、{2, 2}、{2, 1}です。こちらも、順番は違いますが、1と2の組合せが全て出現しています。

前回、「全ての要因から、任意の2つを取り出してペアを作ってテストすればよい」と書きました。「1列目と2列目の組合せ」、「2列目と3列目の組合せ」、「1列目と3列目の組合せ」の3通りが、「全ての要因から、任意の2つを取り出した」ということです。続く「ペアを作って」が、「1と2の全ての組合せ」のことです。

1列目と2列目と3列目の組合せは、8通りあるうちの4通りが現れています。L4直交表の3因子間網羅率は50%です。

つまり、直交表へ割り付けると、直交表の性質が引き継がれるので、自動的に「全ての要因から、任意の2つを取り出してペアを作ってテストすればよい」が実現されます。

あとは、色々な直交表を手にいれれば良いだけです。よく使うものについてExcelに書いたものを添付します。

「OA.xls」のOAは、直交表を英訳した、”Orthogonal Array”のOとAです。直交欠陥分類(Orthogonal Defect Classification)のOrthogonalと同じ単語です。
直交欠陥分類については、『ODC分析』という本が2020年8月に出版されましたのでお読みになった方もいらっしゃるかもしれません。

「OA.xls」のタブにある「L32(8^1×4^6×2^6)」といった表記は、「L32直交表を変形させた表で、8水準を持つ因子の列が1列、4水準を持つ因子の列が6列、2水準を持つ因子の列が6列存在する」という意味です。「^x」が列数を表します。


≡ L8直交表で伝えたいこと

前項で、

つまり直交表を使うと自動的に「全ての要因から、任意の2つを取り出してペアを作ってテストすればよい」が実現されます。

と書きました。これは、どの直交表にも当てはまる大切な性質です。でも、次回ご紹介するペアワイス(オールペア)でも成り立っている性質です。

直交表の方がペアワイスよりも、テスト件数が多いにも関わらず、直交表を使用するメリットとして「3因子間の組合せがペアワイスよりも多く出現するから」と言われます。でも、それは本当でしょうか? ペアワイズのツールで「3因子間網羅率100%」で作った項目数は直交表より多いのでしょうか?

この問いに答えるには、L8直交表の観察が役に立ちます。

画像4

こちらは、L8直交表です。「OA.xls」のなかにもL8直交表はあります。

昔はインターネットも無かったので、本に書いてある直交表を手作業で、Excelに書き写つされました。でも、セルの数が多く書き写し間違いがあると大変なので、手入力せずに、できるだけネットなどで探しましょう。海外のサイトにもあったりします。

L8直交表の1列から7列に対して、任意の2つの列を取り出してそのペアを調べるとL4と同じく、全ペアである、{1, 1}、{1, 2}、{2, 1}、{2, 2}が出現しています。

ここで、{1, 1}、{1, 2}、{2, 1}、{2, 2}の組合せの出現数を調べると、どれも2回ずつです。

実は、直交表の性質として、「水準の組合せの出現数は同数回」があります。したがって、水準の組合せが、{1, 1}、{1, 2}、{2, 1}、{2, 2}の4通りで、直交表のサイズが8行なので、8 ÷ 4 = 2回ずつ組合せが出現しているということです。

大切なことなので、直交表の性質について整理します。

直交表の性質
 1. 任意の2つの因子(列)を取り出したときに全ての水準ペアが出現する
 2. 水準の組合せの出現数は同数回

です。(この直交表の性質の1についてL4直交表で、性質の2についてL8直交表で確認したのがここまでの話の流れです)

性質2から、「多因子間の組合せがバランスよく出現する」という性質が導かれます。何故なら同数のペアに対しての組合せとなるからです。

実際、L8直交表の4,5,6,7列から任意の3列を取り出すと、その組合せは、{1, 1, 1}から、{2, 2, 2}までの全組合せパターン(8通り)出現していることが確認できます。

ここから“重要な因子は直交表の後ろの方の列に割り付けると良い”というコツが出てきます。

また、同数回なので、組合せについての統計処理が可能となります。統計処理とは、例えば、不具合解析に使うことが出来ます。複数個のペアの出現が期待できますので、同じ不具合の発現が期待できますし、分散分析を行えば、どの因子とどの因子の組合せ問題が多いといった解析も可能です。

他にも、パフォーマンスアップを目的としたテストで、CPU、メモリ、2次デバイス、ネットワーク等々を組み合わせ、"要因効果図"を描くことで、どの水準の組合せがもっともハイパフォーマンスになるかといった統計解析ができます。


≡ 因子と水準

直交表の関係で、直交表の性質のほかに知る必要があることは、因子と水準です。

当面は、単純に、パラメータ(=因子)と値(=水準)と覚えてもらえたらOKです。そのうちに因子の種類(信号因子とか誤差因子とか)を整理して、水準の種類(文字、数値、日付、選択肢、、、)についても考えてもらうことで、さらに良い組み合わせテストとなります。

なお、因子と水準の抜け漏れの有無についての正解を知りたい人が多いですが、正解はありません。少しずつ経験を積んで上手くなってください。とっかかりとしては、JaSST '18 Tohokuの資料を参考にすると良いと思います。


≡ 終わりに

今回は、直交表についてでした。

まずは、ここに書いたものだけ理解してください。実際にテストの業務で使うときには、ツールを使うことをお勧めします。

次回はペアワイズと、使っている人が多いPICTというツールの話を書きます。

この記事が気に入ったらサポートをしてみませんか?