SlideShare uma empresa Scribd logo
1 de 81
Baixar para ler offline
VDM++仕様を対象としたテストケース⾃動⽣成ツール BWDMにおける
ペアワイズ法とドメイン分析テストの適⽤のための機能拡張
宮崎⼤学⼤学院 ⼯学研究科 ⼯学専攻
⽚⼭徹郎研究室
平⽊場 ⾵太
2020/02/04(Tue), A116, 13:30-, 機械・情報系コース 情報システム⼯学分野 令和元年度修⼠論⽂発表会
1. 背景と⽬的
2. ⼿段
3. 拡張(ⅰ) - ペアワイズ法の適⽤
背景と⽬的、⼿段、適⽤例、考察
4. 拡張(ⅱ) - ドメイン分析テストの適⽤
背景と⽬的、⼿段、適⽤例、考察
5. 拡張(ⅲ) - 複数定義の対応(概要のみ)
6. まとめ
アジェンダ
1.背景と⽬的
1
2
ソフトウェアの品質
背景と⽬的
ソフトウェアの⾼品質化が求められている。
従来のソフトウェアの仕様作成プロセスでは、⾃然⾔語の持つ曖昧さに
より、仕様書に曖昧な箇所が含まれてしまう。
厳密な仕様を作成するには
→ 形式⼿法(VDM++, B-Methodなど)
3
形式⼿法
VDM(Vienna Development Method)
背景と⽬的
• 1960~70年代にIBMウィーン研究所で考案
• 1996年に形式仕様記述⾔語VDM-SLがISO標準化
• Overture、VDMTools、VDMPad、VDMJ等の⽀援
ツールが充実
↓
本研究では、VDM-SLを
オブジェクト指向拡張した
VDM++で記述した仕様書を
対象とする。
4
ソフトウェアテスト
背景と⽬的
ソフトウェアの品質向上のために必須の作業。
VDMで記述した仕様もテストを⾏う必要がある。
しかし
テストケース設計・テストの実施には
⼿間と時間が掛かる。
5
Boundary Value/Vienna Development Method
背景と⽬的
テストケース⾃動⽣成ツールBWDM
2018年に⽴⼭⽒が開発したVDM++仕様を対象とし、テストケース⾃動⽣
成を⾏うCLIツール
• Java、Kotlinで記述されている。
• 境界値分析を⾏い、境界値テストケースを⽣成する。
• 記号実⾏を⾏い、if-then-else式の構造認識に基づいたテストを実施す
るためのテストケースを⽣成する。
背景と⽬的
6
テスト
ケース番号
⼊⼒
データ
期待出⼒
データ
No.1 intMin-1 “Undefined Action”
No.2 intMin “aは5未満です”
No.3 intMax “aは12以上です”
No.4 intMax+1 “Undefined Action”
No.5 4 “aは5未満です”
No.6 5 “aは5以上かつ12未満です”
No.7 11 “aは5以上かつ12未満です”
No.8 12 “aは12以上です”
境界値テストケース
境界値分析
型境界値
if条件式
境界値
VDM++仕様
型の範囲外に対する
期待出⼒データ
境界値テストケースの例
7
既存のBWDMの問題点
背景と⽬的
本研究で解決する5つの問題点
(a) 境界値分析時にすべての組合せを⽤いてテストケースを⽣成
するため、組合せ爆発を起こす可能性がある
(b) 複数の変数を含む条件式を持つ関数のテストケースを⽣成で
きない
(c) 1つの関数しかテストケースを⽣成できない
(d) 定数定義ブロック内の定義を含む関数を含む仕様のテスト
ケースを⽣成できない
(e) 操作のテストケースを⽣成できない
8
本研究のテーマ
背景と⽬的
BWDMの有⽤性の向上
を⽬的として
BWDMの拡張
を⾏う
具体的には5つの問題点を解決する
また、BWDMの正式名称を
BWDM: Verification tool for Vienna Development Method)に変更する。
2. ⼿段
9
10
5つの問題点を解決するための3つの拡張
⼿段
3つの拡張
(ⅰ) ペアワイズ法の適⽤によるテストケース数削減
→ 問題点(a)を解決
(ⅱ) ドメイン分析テストの適⽤による複数変数を含む
条件式を含む関数のテストケース⽣成
→ 問題点(b)を解決
(ⅲ) 複数の定義への対応
→ 問題点(c)(d)(e)を解決
11
5つの問題点を解決するための3つの拡張
⼿段
3つの拡張
(ⅰ) ペアワイズ法の適⽤によるテストケース数削減
→ 問題点(a)を解決
(ⅱ) ドメイン分析テストの適⽤による複数変数を含む
条件式を含む関数のテストケース⽣成
→ 問題点(b)を解決
(ⅲ) 複数の定義への対応
→ 問題点(c)(d)(e)を解決 👈 今回の発表では省略
12
既存のBWDMの構造
⼿段
13
拡張した
BWDM
の構造
⼿段
14
拡張した
BWDM
の構造
⼿段
3. 拡張(ⅰ)
ペアワイズ法の適⽤
① 背景と⽬的
② ⼿段
③ 適⽤例
④ 考察
15
16
問題点(a)
拡張(ⅰ): 背景と⽬的
境界値分析で⽣成するテストケースは、全ての組み合わせによる
境界値テストの実⾏を前提としている。
組合せ爆発を起こし、テストケース数が膨⼤になる可能性がある。
17
ペアワイズ法(All-pair法)
拡張(ⅰ): 背景と⽬的
2つの因⼦の組合せを最低限テストする⽅法
• 全ての組合せでテストする⽅法に⽐べて、膨⼤な数のテ
ストケースを削減することができる。
• 例えば、因⼦6、⽔準(4,4,2,2,2,2)の組合せの場合、256
個のテストケースを48個に削減できる。
• 因⼦ - 条件分岐における⼊⼒条件
• ⽔準 - 因⼦が取り得る値
組合せテストの総数
を減らせる!
18
問題点(a)の解決法
拡張(ⅰ): 背景と⽬的
(a) BWDMが組合せ爆発を起こす可能性
を排除するために
ペアワイズ法の適⽤による
テストケース数削減の拡張を⾏う
19
拡張(ⅰ): ⼿段
因⼦と⽔準を⼊⼒しペアワイズ法を適⽤した組
合せを出⼒するツール
• Microsoft社が開発している。
• C++から利⽤できるAPIを提供している。
• BWDMはJavaで記述しているため、PICTを利⽤で
きない。→pict4javaを作成した。
PICT(Pairwise Independent Combinatorial Testing tool)
20
pict4javaの開発
拡張(ⅰ): ⼿段
Javaから呼び出すことのできるPICTライブラリ
• JNA(Java Native Access)を利⽤することにより、
JavaからC++の実⾏ファイルにアクセスする。
• BWDMの拡張を⾏う前段階として作成した。
• 拡張するBWDMで主に使うPICTのAPI
• PictAddParameter ‒ PICTへの因⼦と⽔準の登録
• PictGenerate ‒ 組合せデータの⽣成
• PictGetNextResultRow ‒ ⽣成データの取得
pict4java
JNA
PICT
21
拡張したBWDMの構造
拡張(ⅰ): ⼿段
拡張箇所
22
ペアワイズ法を適⽤した⼊⼒データ⽣成の処理の流れ
拡張(ⅰ): ⼿段
pict4java
1. 境界値分析結果をpict4javaに渡す
2. PictGenerateする
3. 組合せを出⼒する
4. 出⼒した組合せからテストケースの⼊⼒を出⼒する。
23
適⽤例
拡張(ⅰ): 適⽤例
因⼦が3、⽔準が(6,6,6)の関数 ⽣成したテストケース
拡張後の
24
適⽤例
拡張(ⅰ): 適⽤例
• ⽣成したテストケースの数を削減できることを確認した
• ⽣成したテストケースが2つの因⼦のすべての組合せを網羅できること
を確認した
したがって
拡張後のBWDMが、VDM++仕様から、ペアワイズ法を適⽤した
境界値テストケースを正しく出⼒できていることが確認できた。
216
既存のBWDM
40
拡張したBWDM
25
評価⽅法
拡張(ⅰ): 考察
拡張後の
既存の テストケース
テストケース
因⼦: 7
⽔準:(6,8,6,8,8,6,6,)
の関数
拡張したBWDMが、既存のBWDMに⽐べて、テストケース総数を削減できることを確認する。
複雑な関数を持つVDM++仕様を既存のBWDMと拡張後のBWDMにそれぞれ適⽤し、
⽣成テストケース数を⽐較する。
26
評価結果
拡張(ⅰ): 考察
OS: macOS 10.13.6
CPU: Intel Core i5 2.3GHz
RAM: 16GB
⽣成結果の⽐較
拡張後のBWDMは既存のBWDMに⽐べて、⽣成テストケース数を99.98%削減することが
確認できた。
よって、拡張後のBWDMは、
• 境界値分析結果から⽣成するテストケース数が組合せ爆発を起こす可能性を排除できたと⾔える。
• テストケース⽣成時間の短縮ができた。
以上から、拡張後のBWDMは実⽤性が⾼いと⾔える。
実⾏環境
4. 拡張(ⅱ)
ドメイン分析テストの適⽤
① 背景と⽬的
② ⼿段
③ 適⽤例
④ 考察
27
28
問題点(b)
拡張(ⅱ): 背景と⽬的
左辺または右辺に複数の変数を含む条件式を持つ
仕様に対してテストケース⽣成ができない
変数1 変数2
境界値は50, 51であるが、
夫の年齢、妻の年齢をそれぞれ⼀意に
定めることができない。
29
ドメイン分析テスト
拡張(ⅱ): 背景と⽬的
関係性がある複数の変数を同時にテストする⽅法。
条件式を分析し、ドメイン(定義域)を抽出し、ドメインの
境界値分析を⾏いテストケースを⽣成する。
30
問題点(b)の解決法
拡張(ⅱ): 背景と⽬的
BWDMが
複数の変数を含む条件式を持つ仕様の
テストケースを⽣成できない
問題を解決するために
ドメイン分析テストのための
テストケース⽣成⼿法を適⽤する
拡張を⾏う
31
TB(True Boundary)
拡張(ⅱ): ⼿段
境界値 - 同値分割した領域の端、あるいは端のどちらか側で
最⼩の増加的距離にある⼊⼒値または出⼒値。
TB - 境界値の中でも、条件式を満たす境界値。
• condition - 条件式
• exp - 左辺
• int - 右辺
condition TB
exp = int int
exp < int int - 1
exp > int int + 1
exp <= int int
exp >= int int
例) condition: a + b < 5ならば、
TB: 4
543 6
32
ドメイン分析テストのためのテストケース⽣成
拡張(ⅱ): ⼿段
4種のポイントを求め、求めたポイントを⼊⼒とするテストケース
を⽣成する。
• onポイント
• offポイント
• inポイント
• outポイント
⼊⼒
条件式に対する⼊⼒値のセット
正常系判定値
正常系であるかどうかを保持する値。正常系と ⾮正常系の2つ
の状態を保持する。
着⽬条件式
どの条件式に着⽬してポイントを⽣成したかの情報(on, off, outポイント
のみ保持)
着⽬変数
どの変数に着⽬して、on ポイントに隣接するポイントを⽣成したかの情
報(offポイントのみ保持)
正常系 -ポイントの期待出⼒がドメインの期待出⼒と⼀致する状態
⾮正常系 -ポイントの期待出⼒がドメインの期待出⼒と⼀致しない状態
各ポイントが保持する情報
33
4種のポイントの定義(on, off)
拡張(ⅱ): ⼿段
着⽬条件式のTB
onポイント
着⽬するonポイントに隣接し、TBでない値
offポイント
34
4種のポイントの定義(in, out)
拡張(ⅱ): ⼿段
ドメインを決定づける全ての条件式を満たす値
inポイント
着⽬条件式のみを満たさない値
outポイント
35
拡張したBWDMの構造
拡張(ⅱ): ⼿段
拡張箇所拡張箇所
36
拡張(ⅱ): ⼿段
• ドメインごとに、onポイント、offポイント、inポイント、outポイ
ントを⽣成する。
• 各ドメインでは、⼊⼒に対する解を求めるのにSMTソルバZ3を利⽤
する。
ドメイン分析部
ドメイン
ポイント
引数
ドメイン分析部
37
SMTソルバ(Z3)
拡張(ⅱ): ⼿段
• 制約を⼊⼒し、充⾜可能性および解の例を出⼒可能
• Z3はC、C++、Java、PythonなどのAPIを提供
• Microsoftが開発
充⾜可能性問題を解くために、
Z3を利⽤する
38
拡張(ⅱ): ⼿段
ドメインに関わる条件式の数だけ⽣成する。
例) 着⽬条件式: 夫の年齢+妻の年齢 <= 50
1. 変換表にしたがい着⽬条件式を変換
夫の年齢+妻の年齢 <= 50 → 夫の年齢+妻の年齢 = 50
2. SMTソルバへ制約を⼊⼒
(夫の年齢+妻の年齢 = 50) and (夫の年齢 >= 18) and (妻の年齢 >= 16)
→ onポイントは(夫の年齢: 18, 妻の年齢: 32)
もし他のonポイントと重なった場合、制約を追加
(夫の年齢+妻の年齢 = 50) and (夫の年齢 >= 18) and (妻の年齢 >= 16) and
!(夫の年齢=18) and !(妻の年齢=32)
→ onポイントは(夫の年齢: 21, 妻の年齢: 29)
変換前 変換後
exp = int exp = int
exp < int exp = int -1
exp > int exp = int + 1
exp <= int exp = int
exp >= int exp = int
ポイントの⽣成⽅法 - onポイント
39
拡張(ⅱ): 適⽤例
拡張後のBWDMでは、以下のことを確認できた
• 各ポイントが定義どおりに⽣成できている。
• 正常系判定値が正しい。
• 着⽬条件式が正しい。
• 着⽬変数が正しい。
• ⼊⼒と期待出⼒が正しい。
ドメイン分析テストが必要な関数のVDM++仕様
⽣成したテストケース
拡張後の
したがって、
拡張後のBWDMが、
• 条件式内に複数の変数があるVDM++
仕様を解析できる
• ドメイン分析テストによるテスト
ケース⽣成が適切にできる
ことを確認できた。
適⽤例
40
拡張(ⅱ): 考察
拡張後の
テストケース
テストケース
ドメイン分析を必要
とするVDM++仕様
VDM++仕様を⼈⼿による作成と拡張後のBWDMにそれぞれ適⽤し、
テストケースを⽣成(作成)するまでの時間を⽐較する。
⼈⼿による作成
(学部⽣2名、修⼠課程2名)
評価⽅法
41
拡張(ⅱ): 考察
実験で⽤いた仕様
42
拡張(ⅱ): 考察
⽣成(作成)結果の⽐較
拡張後のBWDMは⼈⼿による作成に⽐べて、平均で18分程の時間短縮が可能であることが確
認できた。また、⼈⼿による作成の場合、ヒューマンエラーも⾒られた。
仕様の規模が拡⼤すると、⼈⼿とコンピュータとの処理速度の差に加えて、ヒューマンエラーの有無な
どにより、テストケース⽣成に要する時間の差は更に拡⼤していくと思われる。
したがって、ドメイン分析テストのためのテストケースを作成する際の、テストケース⽣成効率が向上
したと⾔える。
※制限時間を30分とし、制限
時間を超えた場合、その場で
時間計測終了とした。
OS: macOS 10.14.5
CPU: Intel Core i5 2.3GHz
RAM: 16GB
実⾏環境
評価結果
43
関連研究
拡張(ⅱ): 考察
ドメイン分析に基づいたテストケースを⾃動⽣成する⼿法として、
丹野らの研究 [11] がある。
仕様書 → 設計モデルの記述 → ⾃動⽣成⼿法 → テストケース
[11]は、仕様書から設計モデルを記述する必要があるが、
BWDMは仕様書からそのままテストケース⽣成が可能
[11] 丹野治⾨,張暁晶: ドメインテスト技法に基づく網羅的なテストデータ⾃動⽣成⼿法の
提案, 情報処理学会研究報告, Vol.2014-SE-186, No.6 pp.1-8 (2014).
5. 拡張(ⅲ)
複数定義の対応(概要のみ)
44
45
拡張(ⅲ): まとめ
⽬的
以下の問題の解決
• 1つの関数しかテストケースを⽣成できない(c)
• 定数定義ブロック内の定義を含む関数を含む仕様のテストケースを⽣成できない(d)
• 操作のテストケースを⽣成できない(e)
⼿段
複数の定義に対応するための適⽤をして、BWDMの拡張を⾏う。
結果
複数の関数のテストケース⽣成、定数定義ブロックで定義した定数の参照、
インスタンス変数を含む操作定義のテストケース⽣成ができるようになった。
これにより、BWDMの対応範囲が広がり、より多くのVDM++仕様のテストケース⽣成が可能
となった。
したがって、拡張したBWDMの有⽤性が向上したと考えられる。
拡張(ⅲ)の概要
5. まとめ
46
47
まとめ
⽬的
BWDMの有⽤性の向上
⼿段
BWDMの拡張
(ⅰ) ペアワイズ法の適⽤によるテストケース数削減
(ⅱ) ドメイン分析テストの適⽤による複数変数を含む条件式を含む関数
のテストケース⽣成
(ⅲ) 複数の定義への対応
結果
拡張したBWDMは
• ⽣成するテストケース数が組合せ爆発を起こす可能性を排除できた
• ドメイン分析テストのためのテストケース⽣成ができた
• テストケースを⾃動⽣成できるVDM++仕様の構⽂が増えた
したがって、
拡張後のBWDMは有⽤性が向上し、テスト⼯程 の作業効率が向上した。
本研究のまとめ
48
今後の課題
今後の課題
• 整数型以外の型への対応
• 型定義の対応
• 関数定義と操作定義内で利⽤できる構⽂の対応範囲拡⼤
• インスタンス変数を操作する操作定義のテストケースの⽣
成への対応
• 他の関数または操作を呼び出す関数定義と操作定義のテス
トケース⽣成への対応
ご静聴ありがとうございました。
49
ここから隠しスライド
おわおわり
• 拡張(ⅰ) ペアワイズ法関連
• 拡張(ⅱ) ドメイン分析テスト関連
• 拡張(ⅲ) 複数定義の対応関連
• その他
拡張(ⅰ)
ペアワイズ法関連
隠しスライド
50
51
組合せ爆発
拡張(ⅰ): 背景と⽬的
解が指数関数的に増加してしまうこと。
例) ⽔準が1ずつ増えていく場合
因⼦数 ⽔準 テストケース数 テストケース数/因⼦
3 2, 3, 4 12 4
4 2, 3, 4, 5 60 15
5 2, 3, 4, 5, 6 360 72
6 2, 3, 4, 5, 6, 7 2,520 420
7 2, 3, 4, 5, 6, 7, 8 20,160 2,880
8 2, 3, 4, 5, 6, 7, 8, 9 181,440 22,680
52
因⼦と⽔準
拡張(ⅰ): ⼿段
• 因⼦: テスト対称に影響を与える要因。
(本研究では、関数または操作内の変数のこと)
• ⽔準: 因⼦の取り得る値の数。
(本研究では、関数または 操作内の変数が取り
得る値の数)
(例)
• 性別 {“男性”, “⼥性”, “その他”}
• 年齢 {“20 歳未満”, “20 歳以上”}
• 国籍 {“⽇本”, “ア メリカ”, “その他”}
53
ペアワイズ法の具体例
拡張(ⅰ): ⼿段
54
pict4javaの構造
拡張(ⅰ): ⼿段
PICT本体
JNAを使ったインターフェース
55
ペアワイズ法を適⽤した⼊⼒データ⽣成の処理の流れ
(詳細)
拡張(ⅰ): ⼿段
PictAddParameter
を⽤いて、因⼦と
⽔準をPICTに登録
する。
PictGenerateを⽤いて、
ペアワイズ法を適⽤した
組合せデータを⽣成する。
3. で取得したデータのインデックスに
該当するパラメータを⽤いて、
pict4javaの出⼒データを⽣成する。
pict4java
PictGetNextResultRowを⽤いて、 2. で⽣
成した組合せデータを1件づつ取得する。
取得したデータは、因⼦が取り得るパラ
メータ群のインデックスとなる。
56
ペアワイズ法は有効なのか
拡張(ⅰ): ⼿段
FTFI(Failure-Triggering Fault Interaction: フォールトに関係しているパラメータ数)
(「Software Fault Interactions and Implication for Software Testing」 D.Richard Kuhn, IEEE Transactions on software engineering, Vol.30, 2004より)
3因⼦以上で発⽣する問題は⼤量のテストケースを⽤いて網羅的に
⾏うよりも、別の技法で狙ったほうが効果的だ、という考え⽅。
すべての組合せを網羅できるわけではない
数字はバグの割合
57
適⽤例において
ペアを網羅
できているか
拡張(ⅰ): 適⽤例
58
拡張(ⅰ)のまとめ
まとめ
⽬的
組合せ爆発を起こす可能性(a)の排除
⼿段
テストケース⽣成にペアワイズ法を適⽤し、BWDMの拡張を⾏う
結果
BWDMが組合せ爆発を起こす可能性を排除でき、テストケース⽣成時間の短縮
ができたことから、拡張後のBWDMは実⽤性が⾼いと⾔える。
したがって、拡張後のBWDMは、テスト⼯程の作業効率化を⾒込めると考えら
れる。
拡張(ⅱ)
ドメイン分析テスト関連
隠しスライド
59
60
4種のポイントの定義
拡張(ⅱ): ⼿段
• onポイント
着⽬条件式のTB
• offポイント
着⽬するonポイントに隣接し。TBでない値
• inポイント
ドメインを決定づける全ての条件式を満たす値
• outポイント
着⽬条件式のみを満たさない値
61
onポイント
拡張(ⅱ): ⼿段
• 着⽬条件式のTB
• ドメインを決定づける条件式に付き
1つ⽣成する。
• 他のonポイントと重複してはならな
い。
62
offポイント
拡張(ⅱ): ⼿段
• 着⽬するonポイントに隣接し。TBで
ない値
• onポイントに付き複数(着⽬条件式
に含まれる変数 ∗ 2)個
63
inポイント
拡張(ⅱ): ⼿段
• ドメインを決定づける全ての条件式
を満たす値
• ドメインに付き1つ⽣成
• onポイント、offポイントと重複して
はならない。
64
outポイント
拡張(ⅱ): ⼿段
• 着⽬条件式のみを満たさない値
• ドメインを決定づける条件式に付き
1つ⽣成
• offポイントと重複してはならない。
65
ポイントの⽣成⽅法 - offポイント
拡張(ⅱ): ⼿段
onポイントの数だけ⽣成する。
例) 着⽬するonポイント:
(夫の年齢: 24、妻の年齢: 26, 着⽬条件式: 夫の年齢+妻の年齢 <= 50)
1. onポイントの着⽬条件式に関わる引数を抽出
(夫の年齢, 妻の年齢)
2. それぞれの引数に着⽬し(着⽬変数)、隣接する値を導出
着⽬変数: 夫の年齢
→ offポイント1は(夫の年齢: 23, 妻の年齢: 26)
→ offポイント2は(夫の年齢: 25, 妻の年齢: 26)
着⽬変数: 妻の年齢
→ offポイント1は(夫の年齢: 24, 妻の年齢: 25)
→ offポイント2は(夫の年齢: 24, 妻の年齢: 27)
66
ポイントの⽣成⽅法 - inポイント
拡張(ⅱ): ⼿段
ドメインにつき1つだけ⽣成する。
1. 変換表にしたがい関わる式をすべて変換
夫の年齢+妻の年齢 <= 50 → 夫の年齢+妻の年齢 < 50
夫の年齢 >= 18 → 夫の年齢 > 18
妻の年齢 >= 16 → 妻の年齢 > 16
2. SMTソルバへ制約を⼊⼒
(夫の年齢+妻の年齢 < 50) and (夫の年齢 > 18) and (妻の年齢 > 16)
→ inポイントは(夫の年齢: 23, 妻の年齢: 26)
もし他のoffポイントと重なった場合、制約を追加
(夫の年齢+妻の年齢 < 50) and (夫の年齢 > 18) and (妻の年齢 > 16)
and !(夫の年齢=23) and !(妻の年齢=26)
→ inポイントは(夫の年齢: 20, 妻の年齢: 23)
変換前 変換後
exp = int exp = int
exp < int exp < int
exp > int exp > int
exp <= int exp < int
exp >= int exp > int
67
ポイントの⽣成⽅法 - outポイント
拡張(ⅱ): ⼿段
ドメインに関わる条件式の数だけ⽣成する。
例) 着⽬条件式: 夫の年齢+妻の年齢 <= 50
1. 変換表にしたがい着⽬条件式を変換
夫の年齢+妻の年齢 <= 50 → !(夫の年齢+妻の年齢 <= 50)
2. SMTソルバへ制約を⼊⼒
!(夫の年齢+妻の年齢 <= 50) and (夫の年齢 >= 18) and (妻の年齢 >= 16)
→ outポイントは(夫の年齢: 25, 妻の年齢: 26)
もし他のoffポイントと重なった場合、制約を追加
!(夫の年齢+妻の年齢 <= 50) and (夫の年齢 >= 18) and (妻の年齢 >= 16) and
!(夫の年齢=25) and !(妻の年齢=26)
→ outポイントは(夫の年齢: 29, 妻の年齢: 30)
変換前 変換後
exp = int !(exp = int)
exp < int !(exp < int)
exp > int !(exp > int)
exp <= int !(exp <= int)
exp >= int !(exp >= int)
68
テストケース⽣成の流れ
拡張(ⅱ): ⼿段
ドメイン分析部で⽣成した各ポイントを元に、期待出⼒⽣成部
で期待出⼒を求めて、テストケース⽣成部で各ポイントと期待
出⼒をファイルに出⼒する。
⽣成した各ポイントは、期待出⼒⽣成部に⼊⼒することで、期
待出⼒を求めることができる。
69
拡張したBWDMの構造(b)
拡張(ⅱ): ⼿段
拡張箇所
B
70
期待出⼒データ⽣成(既存機能)
拡張(ⅱ): ⼿段
関数への⼊⼒に対する期待出⼒を導出する機能
期待出⼒
データ⽣成
引数
期待出⼒
71
⽣成したテストケースのフォーマット
拡張(ⅱ): ⼿段
ドメイン分析テストケースを⽣成する際に、テストケースに正
常系判定値、着⽬条件式、着⽬変数の情報を追加する。
72
被験者の流れ
拡張(ⅱ): 考察
被験者が理解するまで学習
ドメイン分析の説明 VDM++仕様の読み⽅と解答例の説明 実験
※学習で使ったテキストは実験中も閲覧可能とした。
73
拡張(ⅱ)のまとめ
まとめ
⽬的
複数の変数を含む条件式を持つ仕様に対してテストケース⽣成ができない(b)と
いう問題点の解決
⼿段
ドメイン分析テストのためのテストケース⽣成を適⽤し、BWDMを拡張する。
結果
BWDMの複数の変数を含む条件式を持つ仕様に対してテストケース⽣成ができ
ないという問題点を解決でき、⼈⼿によるテストケース⽣成と⽐べて⽣成時間
が短縮できた。
したがって、拡張後のBWDMは、テスト⼯程の作業効率化を⾒込めると考えら
れる。
拡張(ⅲ)
複数定義の対応関連
隠しスライド
74
75
VDM++における定義⼀覧
拡張(ⅲ): ⼿段
76
定義クラス群のクラス図
拡張(ⅲ): ⼿段
テストケース⽣成
を⾏う定義を表す
抽象クラス。
TCDefinition型の
オブジェクトを元
に、if-then-else
式から⽊構造を⽣
成する。
テストケース⽣成
を⾏う関数を表す
クラス。
TCExplicitFuncti
onDefinition型
のオブジェクトを
元に、if-then-
else式から⽊構造
を⽣成する。
テストケース⽣成を⾏う操作を表すクラス。
TCExplicitOperationDefinition型のオブ
ジェクトを元に、if-then-else式から⽊構造
を⽣成する
抽象構⽂⽊解析処理を⾏うクラス。構⽂解析
処理から受け取った、定義を表す抽象構⽂⽊
の集合から、定義クラスの集合を⽣成する。
定数定義とインスタンス変数定義を持つ。
77
定義クラスの分類
拡張(ⅲ): ⼿段
VDM++定義を表す抽象クラス
(VDMJ::TCDefinition)のインスタンス
テストケース⽣成を⾏う
関数定義を表すクラス
(FunctionDefinition)
のインスタンス
テストケース⽣成を⾏う
操作定義を表すクラス
(OperationDefinition)
のインスタンス
定数定義を表すクラス
(VDMJ::TCValueDefinition)
インスタンス変数定義を表すクラス
(VDMJ::TCInstanceVariableDefinition)
関数定義を表すクラス
(VDMJ::TCExplicitFunctionDefinition)
操作定義を表すクラス
(VDMJ::TCExplicitOperationDefinition)
連想配列
explicitFunctions
連想配列
explicitOperations
連想配列
constantValues
連想配列
instanceVariables
なら
なら
なら
なら
が
に格納
に格納
に格納
に格納
を⽣成し
を⽣成し
1. 定義の種類を確認する。
2. 定数かインスタンス変数であった場合、定義のインスタンス
を連想配列に格納する。
3. 関数か操作であった場合、テストケース⽣成を⾏うクラスの
インスタンスを⽣成し、定義をメンバに持たせる。そして、
⽣成したインスタンスを連想配列に格納する。
その他
隠しスライド
78
79
詳細1
今後の課題
• 整数型以外の型への対応
現状、実数を表すreal 型や、有理数を表すrat 型、複数の型から構成する合
成型などの、 VDM++ の多くの型に未対応である。この問題は、VDM++ 仕様
を静的解析する際に型情 報を読み込み、境界値分析時に、読み込んだ型情報
から境界値の⽣成処理をBWDMに追加 することによって、解決可能であると
考えられる。
• 型定義の対応
拡張したBWDMは、型定義ブロックに記述した型定義を⽤いた関数や操作の
テストケース を⽣成できない。この問題は、型定義部で定義した型について
静的解析を⾏い、境界値分析 を⾏う処理の際に、それらの情報を⽤いて境界
値を⽣成することで、解決可能と考える。
• 関数定義と操作定義内で利⽤できる構⽂の対応範囲拡⼤
拡張したBWDMは、if 条件式境界値の⽣成を VDM++ 仕様の関数定義内のif-
then-else式のみから⾏っており、それ以外の構⽂には対応していない。この
問題は、対応していない構⽂の情報抽出⽅法と、境界値分析⼿法の提案を⾏
うことで解決可能と考える。
80
詳細2
今後の課題
• インスタンス変数を操作する操作定義のテストケースの⽣
成への対応
拡張したBWDMは、インスタンス変数を操作する操作定義のテストケース⽣
成ができない。この問題は、インスタンス変数定義ブロック内で定義した不
変条件に対応することで解決可能と考える。
• 他の関数または操作を呼び出す関数定義と操作定義のテス
トケース⽣成への対応
拡張したBWDMでは、他の関数または操作を利⽤する関数定義と操作定義の
テストケー ス⽣成ができない。この問題は、抽象構⽂⽊解析処理において解
析した関数、および、操作 を Java コードに変換し、スタックを構築して関
数呼び出しの仕組みを作ることで解決可能 と考える。

Mais conteúdo relacionado

Mais procurados

チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまでチーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
toshihiro ichitani
 

Mais procurados (20)

ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
 
チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまでチーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
チーム・ジャーニー 逆境を越える、変化に強いチームをつくりあげるまで
 
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
 
プロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワークプロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワーク
 
アジャイル開発におけるクラフトマンシップの重要性
アジャイル開発におけるクラフトマンシップの重要性アジャイル開発におけるクラフトマンシップの重要性
アジャイル開発におけるクラフトマンシップの重要性
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題などReladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
 
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
 
Product ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについてProduct ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについて
 
J-3:アジャイルな経営(組織運営)のために 必要な3つのこと(ともう少し深いところの話)
J-3:アジャイルな経営(組織運営)のために 必要な3つのこと(ともう少し深いところの話)J-3:アジャイルな経営(組織運営)のために 必要な3つのこと(ともう少し深いところの話)
J-3:アジャイルな経営(組織運営)のために 必要な3つのこと(ともう少し深いところの話)
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
ゼロからはじめるプロダクトマネージャー生活
ゼロからはじめるプロダクトマネージャー生活ゼロからはじめるプロダクトマネージャー生活
ゼロからはじめるプロダクトマネージャー生活
 
テストエンジニア版RPG風スキルマップ JaSST'17東北
テストエンジニア版RPG風スキルマップ JaSST'17東北テストエンジニア版RPG風スキルマップ JaSST'17東北
テストエンジニア版RPG風スキルマップ JaSST'17東北
 
JavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメJavaユーザのためのVSCodeのススメ
JavaユーザのためのVSCodeのススメ
 

Semelhante a VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張

Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
 
20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)
Masaki Kase
 
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Mao Yamaguchi
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
 

Semelhante a VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張 (20)

Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
ゆもつよ博士論文説明資料公開
ゆもつよ博士論文説明資料公開ゆもつよ博士論文説明資料公開
ゆもつよ博士論文説明資料公開
 
Nttr study 20130206_share
Nttr study 20130206_shareNttr study 20130206_share
Nttr study 20130206_share
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
 
みどりぼん読書会 第4章
みどりぼん読書会 第4章みどりぼん読書会 第4章
みどりぼん読書会 第4章
 
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
 
ma99992011id513
ma99992011id513ma99992011id513
ma99992011id513
 
2015-1003 英語コーパス学会ワークショップ使用スライド
2015-1003 英語コーパス学会ワークショップ使用スライド2015-1003 英語コーパス学会ワークショップ使用スライド
2015-1003 英語コーパス学会ワークショップ使用スライド
 
Ibisml vhmm
Ibisml vhmmIbisml vhmm
Ibisml vhmm
 
おしゃスタat銀座
おしゃスタat銀座おしゃスタat銀座
おしゃスタat銀座
 
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
CIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用したCIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用した
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
 
Connecting embedding for knowledge graph entity typing
Connecting embedding for knowledge graph entity typingConnecting embedding for knowledge graph entity typing
Connecting embedding for knowledge graph entity typing
 
Spock's world
Spock's worldSpock's world
Spock's world
 
20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_test
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
 
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
 
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 

Mais de Futa HIRAKOBA

Mais de Futa HIRAKOBA (20)

逆求人自己紹介プレゼン(平木場)
逆求人自己紹介プレゼン(平木場)逆求人自己紹介プレゼン(平木場)
逆求人自己紹介プレゼン(平木場)
 
サイボウズの生産性を高める生産性向上チームと開発文化
サイボウズの生産性を高める生産性向上チームと開発文化サイボウズの生産性を高める生産性向上チームと開発文化
サイボウズの生産性を高める生産性向上チームと開発文化
 
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
 
What will your future college life look like? 〜今後の大学生活をどのようにしますか?〜
What will your future college life look like?〜今後の大学生活をどのようにしますか?〜What will your future college life look like?〜今後の大学生活をどのようにしますか?〜
What will your future college life look like? 〜今後の大学生活をどのようにしますか?〜
 
「人月の神話」紹介プレゼン
「人月の神話」紹介プレゼン「人月の神話」紹介プレゼン
「人月の神話」紹介プレゼン
 
CI/CDのすすめ
CI/CDのすすめCI/CDのすすめ
CI/CDのすすめ
 
院進学して思うこと
院進学して思うこと院進学して思うこと
院進学して思うこと
 
Agri Hack Day 2019 in 宮崎大学 〜マンゴーチーム〜
Agri Hack Day 2019 in 宮崎大学 〜マンゴーチーム〜Agri Hack Day 2019 in 宮崎大学 〜マンゴーチーム〜
Agri Hack Day 2019 in 宮崎大学 〜マンゴーチーム〜
 
これからどう学生時代を過ごせば良いか
これからどう学生時代を過ごせば良いかこれからどう学生時代を過ごせば良いか
これからどう学生時代を過ごせば良いか
 
量子コンピュータを触ってみる
量子コンピュータを触ってみる量子コンピュータを触ってみる
量子コンピュータを触ってみる
 
レーダーってなあに
レーダーってなあにレーダーってなあに
レーダーってなあに
 
Web API The Good Partsの紹介 ~美しいWebAPIの作り方~
Web API The Good Partsの紹介 ~美しいWebAPIの作り方~Web API The Good Partsの紹介 ~美しいWebAPIの作り方~
Web API The Good Partsの紹介 ~美しいWebAPIの作り方~
 
VDM++仕様を対象としたテストケース自動生成ツール BWDM における境界値分析結果へのペアワイズ法の適用
VDM++仕様を対象としたテストケース自動生成ツール BWDM における境界値分析結果へのペアワイズ法の適用VDM++仕様を対象としたテストケース自動生成ツール BWDM における境界値分析結果へのペアワイズ法の適用
VDM++仕様を対象としたテストケース自動生成ツール BWDM における境界値分析結果へのペアワイズ法の適用
 
機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作
機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作
機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作
 
デジタル一眼レフカメラとSNSを利用したインドア派から脱却する方法
デジタル一眼レフカメラとSNSを利用したインドア派から脱却する方法デジタル一眼レフカメラとSNSを利用したインドア派から脱却する方法
デジタル一眼レフカメラとSNSを利用したインドア派から脱却する方法
 
近年の仮面ライダーに感じる不満を解消するトゲのある仮面ライダー、アマゾンズの紹介
近年の仮面ライダーに感じる不満を解消するトゲのある仮面ライダー、アマゾンズの紹介近年の仮面ライダーに感じる不満を解消するトゲのある仮面ライダー、アマゾンズの紹介
近年の仮面ライダーに感じる不満を解消するトゲのある仮面ライダー、アマゾンズの紹介
 
自己紹介 平木場風太
自己紹介 平木場風太自己紹介 平木場風太
自己紹介 平木場風太
 
ETロボについて
ETロボについてETロボについて
ETロボについて
 
渦電流とその利用
渦電流とその利用渦電流とその利用
渦電流とその利用
 
僕たちがいつまでも​プログラマでいるには?​
僕たちがいつまでも​プログラマでいるには?​僕たちがいつまでも​プログラマでいるには?​
僕たちがいつまでも​プログラマでいるには?​
 

Último

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Último (8)

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張