&pgid();
#contents
[[直交表を利用した組み合わせテスト]]で課題としていた件に関して調査結果をまとめる。
** そもそも直交表をつかったテストのポリシーとは? [#a89d4395]
[[ソフトウェア・テスト PRESS Vol.2 (>http://www.amazon.co.jp/%30bd%30d5%30c8%30a6%30a7%30a2%30fb%30c6%30b9%30c8-PRESS-Vol-2/dp/4774125733/sr=8-1/qid=1158284230/ref=sr_1_1?ie=UTF8&s=gateway]]
[[ソフトウェア・テスト PRESS Vol.2 >http://www.amazon.co.jp/%30bd%30d5%30c8%30a6%30a7%30a2%30fb%30c6%30b9%30c8-PRESS-Vol-2/dp/4774125733/sr=8-1/qid=1158284230/ref=sr_1_1?ie=UTF8&s=gateway]]
ソフトウェアテストは、簡単にいうと「お客様の要求が実現されているかを確認するプロセス」のことです。お客様の要求というと漠然としたものと思われがちですが、現実世界では、システムへのインプットに表れます。ここで、インプットに着目し、操作はいくつあり、その実施順番は何通りあり・・・・・・・と考え出すと、とたんにテスト項目は無限大になり発散してしまいます。そうではなく、お客様の要求、平易な言葉で言い直せば「したいこと=結果」に着目して、そこからテスト項目を作成していくようにするのです。(...)このようにして「結果」に着目してそこからテスト設計を行うとテスト項目数を大幅に減らすことができるのですが、その一方で、まったく予期していない使われ方をした場合の問題に対しては「結果」の想定ができていないためにテスト漏れが発生することになります。そこで、これらのテスト手法に加えて、全体を網羅的にカバーする組み合わせテストが必要になってきます。(文中の省略は筆者による)
つまり、直交表による組み合わせテストは
- 結果に注目したテスト手法(ブラックボックステストの原因結果グラフ法やCFD(Case Flow Diagram)法)によってテスト項目数を減らしているという状況の上で
- 想定していない「結果」に対する漏れを防ぐための組み合わせテストに利用する手法
という位置づけのようです。
** 直交表の作り方 [#m1c9360a]
直交表そのものはあらかじめ幾つかのパターンがあり、この中から適当なものを選択することになるらしい。
直交表には2水準系、3水準系、混合系などがあり、それぞれに代表的なものがあります。
水準とは要素に許可される値の数のことで、例えば、性別であれば男、女の2種の値なので2水準。じゃんけんであればグー、チョキ、パーの3種の値なので3水準となります。2水準系とは全要素(直交表上の全列)の水準が2水準であるもので、3水準系とは全要素が3水準であるもの、混合系は異なる水準の要素からなっているものになります。
*** 直交表の種類 [#ie9575aa]
Ln(n=自然数)はn行からなる直交表を意味します。
代表的な直交表の種類は
- 2水準系
L4、L8、L16、L32、L64、L128
- 3水準系
L9、L27
- 混合系
L18
参考:[[統計に関するミニ知識所初級編>http://www.fiberbit.net/user/masa-2ogawa/crmin020.html#tiyotsukou]]
*** 直交表の選択 [#vfba9caa]
[[直交表を活用したソフトウェアテストの効率化 - HAYST法の活用->http://www.swtest.jp/jasst05w/S4-1.pdf]]によると、
「1因子ずつの場合のバグの発見率がpなら(直交表を利用して2因子の組合せの評価をすれば)それに比較してほぼpの2乗に期待される」(田口玄一氏)。
というタグチメソッド(という品質工学分野で有名なメソッドがあるらしい)考案者の田口玄一氏による【経験則】が紹介されており、実データでもほぼあっていることが確認されていることが言及されています。&color(red){もちろん、各組織毎に実データをとってみてこれを満たすかどうかの検証は必要と思います};ここでの因子はイコール要素(直交表の列に相当)です。
また、この経験則から、
2因子間のバグはきちんと検出しなければならない
多因子の組合せバグは非常に件数が少ない
ということが言われています。つまり、&color(red){多因子の組み合わせテストはROIが悪い};
よって、直交表サイズは
組み合わせたい因子の中で、最も大きい水準数を持つもの同士を掛け算した値が最小の直交表サイズ(水準数は2nに切上げる)
例:
用紙サイズ(6種類)、用紙方向(2)、両面(2)、拡大縮小(4)、カラーモード(3)なら
8(6)×4=32 となり、 L32を選択する。
とするのがよいらしいです。
** 課題 [#u728fc12]
以下、まだまだわからない点、課題多数。
- 混合系(多水準系)直交表
現実のテストにおいては&color(red){各要素(因子)の水準が全て同じというのはあり得ません};。したがって、混合系(多水準系)直交表を使える必要がありますが、具体的にどうしていいのかわからない
- Webサービスの構築時の具体的な利用シーン
ブラウザ実行環境の組み合わせテストに一番使えそうではある
** 参考 [#a65798e3]
- [[統計に関するミニ知識所初級編>http://www.fiberbit.net/user/masa-2ogawa/crmin020.html#tiyotsukou]]
- [[直交表を活用したソフトウェアテストの効率化 - HAYST法の活用->http://www.swtest.jp/jasst05w/S4-1.pdf]]
#blikifooter(進地)