なぜやるのか
パラメータとパラメータが取りうる値の組み合わせが膨大で、人力でテストしきれない場合にテストケースを減らす必要があった
直交表とペアワイズがメジャーな様なので両方お試し
直交表やペアワイズが何なのかや文中に出てくる強さについては各自調べてください
どうやったのか
まぁLLMに聞くよね
結果、直交表はNICTのACTS、ペアワイズはMicrosoftのpictを使うことにした
直交表
LLMでは実装に辿り着けなかったのでググった
結果、論文関連のページに辿り着く
NISTのACTSというツールを使用
上記リンクの「Guideline/Tool」の先のページのFREELY AVAILABLE SOFTWAREのJava .jar file.リンクからDL
ダウンロードページのACTS User Guideを参考に動作させた
バージョンが古い気がするけどこれより新しいのパッと手に入らない。(GUI版や最新のは作者にメールすればもらえそうではある)
まぁ組み合わせ生成するだけだし、このアプリのメインの機能だから古くても理論が間違ってなければ大きく間違いは無いでしょう。
jarファイルをDLしたらそれに食わせる組み合わせ表(モデルファイルとかいうみたい)を作る
詳細は上記マニュアルみてくれ
Systemの部分は必須。
はっきり言って要らない情報だと思うが必須なので適当に入れてください。
$ cat orthogonal_model.csv
[System]
Name: TCAS
[Parameter]
parameter1(int):1,2,3,4,5
parameter2(int):1,2,3,4,5
parameter3(int):1,2,3,4,5
parameter4(int):1,2,3,4,5
parameter5(int):1,2,3,4,5
つくったモデルを強さ3で食わせる
$ java -Ddoi=3 -Doutput=csv -jar ./acts_basic_1.0\ 3.jar orthogonal_model.csv ~/Desktop/orthogonal_test_pattern.csv
System Name: TCAS
Strength: 3
Mode: scratch
Algorithm: ipog
Constraint Handling: Ignored
Verify Coverage: off
Parameters : 7
Constraints : 0
Covered Tuples : 4375 (3-way: 4375)
Number of Tests : 239
Time (seconds) : 0.032
Output file: orthogonal_test_pattern.csv
orthogonal_test_pattern.csvが生成される(毎回同じ組み合わせみたいね)
ペアワイズ
Microsoftがツールを公開している
git clone https://github.com/microsoft/pict.git
cd pict
make
pictバイナリが生成されたら組み合わせのファイルを作って食わせる
下記はパラメータが5つあって、それぞれ1〜5の値を取る場合
$ cat pict_model.txt
parameter1: 1, 2, 3, 4, 5
parameter2: 1, 2, 3, 4, 5
parameter3: 1, 2, 3, 4, 5
parameter4: 1, 2, 3, 4, 5
parameter5: 1, 2, 3, 4, 5
強さ3で食わせる
$ ./pict pict_model.txt /o:3 > pattern.csv
pattern.csvが生成される(毎回同じ組み合わせみたいね)
まとめ
直交表はNICTのACTS、ペアワイズはMicrosoftのpictで組み合わせを減らすことができた。
大体1/100以下には出来るみたい。
めっちゃ助かる
機械的にチェックできるならそれ用のプログラム作ってチェックすれば良いけど、事前に見るべき組み合わせがわからないとか出力結果が妥当かどうか結果を人が見る必要がある場合は有効な手段だと思う。
出力形式がそれぞれ違うのでパースは各自やってくださいね。