0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

組み合わせが膨大なテストケースを減らす方法

Last updated at Posted at 2024-10-25

なぜやるのか

パラメータとパラメータが取りうる値の組み合わせが膨大で、人力でテストしきれない場合にテストケースを減らす必要があった
直交表とペアワイズがメジャーな様なので両方お試し

直交表やペアワイズが何なのかや文中に出てくる強さについては各自調べてください

どうやったのか

まぁLLMに聞くよね
結果、直交表はNICTのACTS、ペアワイズはMicrosoftのpictを使うことにした

直交表

LLMでは実装に辿り着けなかったのでググった
結果、論文関連のページに辿り着く

NISTのACTSというツールを使用
上記リンクの「Guideline/Tool」の先のページのFREELY AVAILABLE SOFTWAREJava .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以下には出来るみたい。
めっちゃ助かる
機械的にチェックできるならそれ用のプログラム作ってチェックすれば良いけど、事前に見るべき組み合わせがわからないとか出力結果が妥当かどうか結果を人が見る必要がある場合は有効な手段だと思う。

出力形式がそれぞれ違うのでパースは各自やってくださいね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?