Android の調べ Lisp の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
直交表とは2次元の表で、任意の行を n個選択して、選択した行の列毎の組を取り出したとき、
その要素の組み合わせが同数個出現している表です。このとき n を直交表の強さと言います。
実際の例として、以下の表を見てください。
例. 大きさ8(実験回数8回)、4因子、2水準、強さ3の直交表 OA(8, 4, 2, 3) 1 2 3 4 5 6 7 8 --------------- 1|0 1 1 0 1 0 0 1 2|0 0 0 0 1 1 1 1 3|0 0 1 1 0 0 1 1 4|0 1 0 1 0 1 0 1
これはどの3行を取っても、その列の要素の組み合わせは、(0 0 0), (0 0 1), ..., (1 1 0), (1 1 1)になり、 各組み合わせが同数個(この表では1個)出現しています。確認してみてください。
直交表はどこに使うのでしょうか。
本来は実験計画法で使います。
ここではソフトウェアテストでの使い方を紹介します。
ソフトウェアテストに直交表を使います。
それでは、ソフトウェアテストにどのように、この直交表を使うのでしょうか?
直交表を使う目的は、テストの効率化、テストコストの削減です。
もちろん、闇雲に効率化するのではなく、数学的な網羅性を保証してコストを低減することを目的としています。
この直交表では、どのような網羅性をソフトウェアテストで保証するのでしょうか?
これは「テストケースの入力として、テスト対象(この個数が因数)の値(この種類数が水準数)で関係(この関係する種類数が強さ)する組み合わせが均衡に出現する」という網羅性です。
この網羅性がソフトウェアテストにおいて、ちょうどいいのか、それとも弱すぎるのか、または強すぎるのかは、分かりません。
直交表はこのソフトウェアテストの網羅性を保証する低コストな方法を与えることができます。
ソフトウェアテストと直交表の関係は、上記の括弧書きで書いたように、直交表で言う「強さ」は上記の関係数であり、「水準数」は値の種類数であり、「因子」はテスト対象の種類数です。
そして「サイズ」または「実験回数」が試験項目数になります。
例えば、テストケースの入力として、相性診断システムを考えます。
性別、年齢、身長、体重、年収、趣味、家族構成、夢、希望、特技・・・などの各種の入力があります。この種類数が因子になります。
年齢で年上、年下、同年代といった値の種類数が水準数となります。
趣味と夢、希望、特技そして年収が同時にテストに関係していると思えば、これらの個数が強さになります。
1 サイズ256の混合形直交表(強さ2)
(1) 16水準7個 + 8水準12個 + 4水準20個 + 2水準6個
(2) 16水準7個 + 8水準13個 + 4水準2個 + 2水準53個
2 サイズ128の混合形直交表(強さ2)
(1) 16水準1個 + 8水準12個 + 4水準8個 + 2水準4個
3 サイズ1024の混合形直交表(強さ2)
(1) 16水準6個 + 8水準12個 + 4水準280個 + 2水準9個
実際の直交表データ 16x6-8x12-4x280-2x9-1024.txt (600KB)
多くの教科書やサイトで紹介されている直交表は強さを2に限定している直交表が多く、網羅性を制限しています。
例えば、L4, L8, L18, L128, L256などと書かれている直交表は強さ2に限定した制限された直交表です。
これらの直交表が、制限されている直交表と考えず、直交表のすべてであるかのような誤解された記載が多いので、注意してください。
但しこの制限が直ちに悪いということではなく、あるソフトウェアシステムのテストでは十分かもしれません。
この直交表作成ツールでは強さを2に限定せずに、任意の強さが設定できるようにしています。
またオールペア法も、制限された網羅性の保証になります。
原始既約多項式から直交表を生成する方法を紹介します。
ここで原始既約多項式(*)の係数行列は以下の性質を持っています。
(性質)任意の行の組み合わせは、それぞれ1次独立になっています。
(制限)但し水準数は素数か素数のべき乗に制限されます。
(*) 原始既約多項式とは、多項式 f(x) が既約であり(因数分解できない)、解の n-1次以下のすべての多項式が含まれるものを言います。
G = 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 # 強さ2で同一水準であるので、原始既約多項式の係数行列がそのままG行列になります θ = 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 OA = G・θ = 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0
Android の調べ Lisp の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Copyright © 2011-2015 GOMI Hiroshi All Rights Reserved