JP5244750B2 - テストケース生成装置およびその方法 - Google Patents
テストケース生成装置およびその方法 Download PDFInfo
- Publication number
- JP5244750B2 JP5244750B2 JP2009217769A JP2009217769A JP5244750B2 JP 5244750 B2 JP5244750 B2 JP 5244750B2 JP 2009217769 A JP2009217769 A JP 2009217769A JP 2009217769 A JP2009217769 A JP 2009217769A JP 5244750 B2 JP5244750 B2 JP 5244750B2
- Authority
- JP
- Japan
- Prior art keywords
- automaton
- transition
- transitions
- partial
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
互いに結合された複数の部品を含むシステムに対する入力アクションの発生順序の制約を記述したプロパティ記述を、複数の状態と、前記入力アクションと、前記入力アクションの発生に起因して生じる状態遷移とを含むオートマトンに変換するオートマトン変換部と、
前記複数の部品のそれぞれに対する入力アクションを個別に示した部品構成情報毎に、前記システムに対する入力アクションのうち、対応する部品に対する入力アクション以外のすべての他入力アクションに対する射影演算を前記オートマトンに行うことにより部分オートマトンを得る分割部と、
各前記部分オートマトンを並行結合することにより、各前記部分オートマトンの状態を組み合わせた合成状態と、各前記部分オートマトンに含まれる入力アクションの和集合と、前記入力アクションの発生に起因する前記合成状態間の状態遷移とを含む合成オートマトンを生成する並行合成部と、
前記合成オートマトンおよび前記オートマトン間で同じアクションをもつ状態遷移を1つずつ選択して組み合わせることにより合成された遷移関係を取得し、前記合成された遷移関係において初期状態から到達不能な遷移と到達可能な遷移とを特定し、前記到達不能な遷移のうち前記到達可能遷移のうちの1つと遷移元に含まれる合成状態が一致する遷移を特定し、前記合成オートマトンにおいて前記特定した遷移と遷移元および遷移先に含まれる合成状態が一致する状態遷移である禁止遷移を特定する禁止遷移計算部と、
前記合成オートマトンにおける初期状態から到達不能な遷移のうち前記禁止遷移以外のすべての到達不能遷移を除去し、前記禁止遷移の入力アクション以外のすべての他入力アクションのそれぞれ毎に前記他入力アクションに対する射影演算を行ったときに同一状態から少なくとも前記禁止遷移を含む複数の遷移が生じる場合は当該射影演算を無効化し生じない場合は有効化することを繰り返すことにより差分オートマトンを得る、差分計算部と、
前記部分オートマトンおよび前記差分オートマトンと、前記複数の部品のそれぞれ毎に、複数の状態と、入力アクションの発生に起因する状態間の遷移と、前記遷移の際に発生する出力アクションとを表す部品モデルに基づき、前記システムに対するテストケースを生成するテストケース生成部と、
を備える。
図2は、図1の装置が対象とするシステムのモデルを表している。
図3はオートマトン変換部11の動作例を示している。
"P=T(P1,P2,..)"
形式の再帰方程式で表現したものである。
o---------------------------------------o
X = EngineOn.Y
Y = Cruise.Z + EngineOff.X
Z = Brake.Y
o---------------------------------------o
o-------------------------------------------------o
S={X,Y,Z},
S0=X,
Act = { EngineOn,EngineOff,Cruise,Brake}
δ= {(X,EngineOn,Y),(Y,Cruise,Z),(Y,EngineOff,X),
(Z,Brake,Y)}
o-------------------------------------------------o
図4は分割部12の動作を説明する図である。
部品構成情報U={{EngineOn,EngineOff},{Cruise,Brake}}
[2]オートマトンTに含まれるイベント遷移(アクション遷移)のうち、選択した組合せに含まれないイベント遷移をすべてε遷移に書き換える(S12)。
[3]以下の手順でε遷移を削除する。
[3-1]全てのε遷移(a,ε,b)に対して以下を行う(S13)。aは遷移元状態、bは遷移先状態を示す。
[3-2]ε遷移から次の遷移を辿り、ε遷移でない遷移(x,y,z)に遭遇するまでこれを続ける(S14)。
[3-3]連続して辿われた全てのε遷移(a,ε,b)を遷移関数δから削除する(S15)。
[3-4]新たな遷移(a,y,z)を作成し、遷移関数δに登録する(S16)。
[3-5]遷移関数δにε遷移が無くなるまで、S14〜S16を繰り返す。
o---------------------------------------o
S={X,Y,Z},
S0=X,
Act = {Cruise,Brake}
δ= {(X,ε,Y),(Y,Cruise,Z),(Y,ε,X),
(Z,Brake,Y)}
o---------------------------------------o
(X,ε,Y)→(Y,Cruise,Z)
により、ε遷移でない遷移(Y,Cruise,Z)に遭遇する(S14)。よって (X,ε,Y)をδから削除するとともに(S15)、新たな遷移
(X,Cruise,Z)
を作成して、δに登録する(S16)。
(Y,ε,X)→(X,Cruise,Z)
により、ε遷移でない遷移(Y,Cruise,Z)に遭遇する(S14)。よって (Y,ε,X)をδから削除するとともに(S15)、新たな遷移
(X,Cruise,Z)
を作成して、δに登録する(S16)(ただし(X,Cruise,Z)は既に存在するため登録を省略することとする)。
o---------------------------------------o
S={X,Y,Z},
S0=X,
Act = {Cruise,Brake}
δ= {(Y,Cruise,Z),(X,Cruise,Z),
(Z,Brake,Y)}
o---------------------------------------o
o---------------------------------------o
S={P0,P1},
S0=P0,
Act = {Cruise,Brake}
δ= {(P0,Cruise,P1),(P1,Brake,P0)}
o---------------------------------------o
クルーズ制御部に対する部分オートマトンP0
o---------------------------------------o
S={Q0,Q1},
S0=Q0,
Act = {EngineOn,EngineOff}
δ= {(Q0,EngineOn,Q1),(Q1,EngineOff,Q0)}
o---------------------------------------o
エンジン制御部に対する部分オートマトンQ0
連係制約計算部13は、並行合成部21、判定部22、禁止遷移計算部23、差分計算部24、更新部25を連動させて、元々のオートマトンTと、分割部12で得た部分オートマトンとの差分を表す差分オートマトンを取得するための制御を行う。差分オートマトンは、各部分オートマトンと並行結合すると元々のオートマトンTと(双模倣関係という意味で)等価となる。
[2]判定部22によりオートマトンTと合成オートマトンとを比較する(S22)。
[3] オートマトンTと合成オートマトンとが双模倣の関係にあれば(S23のYES)、一時記憶部26内のデータをプロパティ変換部14に送出して(S24)、本フローの処理を終了する。
[4]双模倣の関係にない場合は(NO)、禁止遷移計算部23により、オートマトンTに対する合成オートマトンの禁止遷移(M_NG)を計算し、禁止遷移(M_NG)にNGラベルを付した禁止遷移付きオートマトンを得る(S25)。
[5]差分計算部24により、禁止遷移付きオートマトンM_NGに基づき、ある禁止遷移に着目して差分オートマトンを計算する(S26)。
[6]更新部25により差分オートマトンを一時記憶部26に追加する(S27)。
[7]並行合成部21により合成オートマトンと差分オートマトンの並行結合を計算することにより合成オートマトンを得る(S28)。
[8] オートマトンTと合成オートマトンとが双模倣の関係にあれば(S29のYES)、一時記憶部26内のデータをプロパティ変換部14に送出して(S24)、本フローの処理を終了する。
[9]双模倣の関係にないときは(S29のNO)、差分計算部24により、まだ着目(選択)していない禁止遷移に対する差分オートマトンを計算し(S30)、ステップS27へ戻る。
図7は並行合成部21の動作を説明する図である。
A=<S_A,S0_A,Act_A,δ_A>, B=<S_B,S0_B,Act_B,δ_B>
[2]2つの部分オートマトンの並行結合(A||B)を計算する。並行結合は以下の[2-1]〜[2-3]に従う。
[2-1]部分オートマトンA,Bの状態を組み合わせて状態対を生成することにより並行結合結果(合成オートマトン)における状態(合成状態)を得る(S42)。すなわち並行結合結果の状態S_(A||B)はS_A×S_Bである。また並行結合結果のおける初期状態は(S0_A,S0_B)である。
[2-2]部分オートマトンA,Bのアクションの和集合をとることにより並行結合結果におけるアクションを得る(S43)。すなわち並行結合結果のアクションAct_(A||B)はAct_A∪Act_Bである。
[2-3]以下のルール1〜3に従って並行結合結果における状態遷移を得る(S44)。
ここでShared(A,B)はA,Bに共通するアクションの集合を指す。なおルール1およびルール2のifは2つの条件を∧(AND)で結合しており、ルール3のifは3つの条件を2つの∧(AND)で結合している。
ルール1:δ((x,y),a,(x',y)), if (x,a,x')∈δA∧¬(a∈Shared(A,B))
ルール2:δ((x,y),a,(x,y')), if (y,a,y')∈δB∧¬(a∈Shared(A,B))
ルール3:δ((x,y),a,(x',y')), if (y,a,y')∈δB∧(x,a,x')∈δA
∧(a∈Shared(A,B))
[3] S42〜S44で得られた結果は合成オートマトンに相当する(S45)。3つ以上の部分オートマトンが存在する場合は(S46のYES)、S45で得た合成オートマトンと、まだ選択されていない部分オートマトンCとを対象として[1]、[2]と同様の手順を繰り返し行う(S47)。たとえば部分オートマトンAおよび部分オートマトンBをそれぞれ、合成オートマトン、部分オートマトンCと読み替えて同様の処理を行えばよい。このようにして最終的に1つの合成オートマトンを得る(S48)。なおステップS46ですべての部分オートマトンが選択されたと判定された場合は(NO)、このときの合成オートマトンを最終的なものとして得る(S48)。
o---------------------------------------o
SP={0,1},
SP0=0,
ActP = {Cruise,Brake}
δ= {(0,Cruise,1),(1,Brake,0)}
o---------------------------------------o
クルーズ制御部31に対する部分オートマトン
o---------------------------------------o
SQ={0,1},
SQ0=0,
ActQ = {EngineOn,EngineOff}
δ= {(0,EngineOn,1),(1,EngineOff,0)}
o---------------------------------------o
エンジン制御部41に対する部分オートマトン
SP×SQ={(0,0),(1,0),(0,1),(1,1)}
を得る。初期状態はS0 = (0,0)である。
Act = {Cruise,Brake,EngineOn,EngineOff}
を得る。
o---------------------------------------o
S={(0,0),(1,0),(0,1),(1,1)}
S0 = (0,0)
Act = {Cruise,Brake,EngineOn,EngineOff}
δ={((0,0), EngineOn,(0,1)),
((0,0), Cruise,(1,0)),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,0), EngineOn,(1,1)),
((1,0), Brake,(0,0)),
((1,1), Brake,(0,1)),
((1,1), EngineOff,(1,0))}
o---------------------------------------o
並行結合演算により得られた合成オートマトン
図9は禁止遷移計算部23の動作を説明する図である。
[2]初期状態から辿ることのできる到達可能遷移の部分集合GOODを遷移関数δから得る(S52)。
[3] 初期状態から辿ることのできない到達不能遷移の部分集合NOGOODを遷移関数δから得る(S53)。
[4]オートマトンBの状態を無視したときに、部分集合GOODの到達可能遷移と遷移元がパターンマッチする到達不能遷移を部分集合NOGOODにおいて特定する(S54)。
[5]パターンマッチした到達不能遷移の遷移元からオートマトンBの状態を削除するとともに、遷移先の状態をNGに置き換えることにより、禁止遷移(NG遷移)を得る(S55)。
[6]オートマトンAに対してNG遷移の情報を付与することによりNG遷移付きオートマトンを得る(S56)。
遷移関数δA={((0,0), EngineOn,(0,1)),
((0,0), Cruise,(1,0)),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,0), EngineOn,(1,1)),
((1,0), Brake,(0,0)),
((1,1), Brake,(0,1)),
((1,1), EngineOff,(1,0))}
遷移関数δB= {(X,EngineOn,Y),(Y,Cruise,Z),(Y,EngineOff,X),
(Z,Brake,Y)}
であるため、
これらを合成し、合成された遷移関数δとして、以下が得られる。
δ={((0,0,X), EngineOn,(0,1,Y)),
((0,0,Y), Cruise,(1,0,Z)),
((0,1,Y), EngineOff,(0,0,X)),
((0,1,Y), Cruise,(1,1,Z)),
((1,0,X), EngineOn,(1,1,Y)),
((1,0,Z), Brake,(0,0,Y)),
((1,1,Z), Brake,(0,1,Y)),
((1,1,Y), EngineOff,(1,0,X))}
GOOD={
((0,0,X), EngineOn,(0,1,Y)),
((0,1,Y), EngineOff,(0,0,X)),
((0,1,Y), Cruise,(1,1,Z)),
((1,1,Z), Brake,(0,1,Y))}
NOGOOD={
((0,0,Y), Cruise,(1,0,Z)),
((1,0,X), EngineOn,(1,1,Y)),
((1,0,Z), Brake,(0,0,Y)),
((1,1,Y), EngineOff,(1,0,X))}
((0,0,Y), Cruise,(1,0,Z))
((1,1,Y), EngineOff,(1,0,X))
{((0,0), Cruise, NG)、((1,1), EngineOff, NG)}
δA_NG={((0,0), EngineOn,(0,1)),
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,0), EngineOn,(1,1)),
((1,0), Brake,(0,0)),
((1,1), Brake,(0,1)),
((1,1), EngineOff,NG)}
図11は、差分計算部24の動作例を示す。
[2]選択されたNG遷移t以外の到達不能遷移(選択されていない他のNG遷移も含む)を削除する(S62)。
[3]選択されたNG遷移tのアクションa以外のアクションbを任意に選択して捨象する(S63)。すなわち、アクションbをεに書き換え、分割部12の手順[3](S13〜S16)を用いてε遷移を削除する。
[4]同一の状態からアクションaのNG遷移と、到達可能遷移との両方生じる場合(捨象した結果が矛盾を含む場合)(S64のYES)は、S63で行った捨象は失敗と判断する。この場合当該捨象を無効化する(ステップS63の直前の状態に戻り)(S65)。この後、アクションa以外のすべてのアクションのうちまだ選択していないアクションがあるときは(S67のNO)、別のアクションを選択する(S63)。
[5]矛盾が含まれない場合(S64のNO)、成功と判断して当該捨象を維持(有効化)し(S66)、上記ε遷移が削除されたオートマトンに対して、まだ選択されていない別のアクションcを選択および捨象し(S63)、以降、アクションa以外のすべてのアクションについて処理が完了するまでS63〜S66を繰り返す。アクションa以外のすべてのアクションについて処理が終わったら(S67のYES)、このときのオートマトンを差分オートマトンA_aとして得る(S68)。または、構成の簡素化のため、NG遷移tを当該オートマトンから削除してもよい。
((0,0), Cruise,NG),
((1,1), EngineOff,NG)
[2]選択されたNG遷移t以外の到達不能遷移を削除する(S62)。
選択されたNG遷移t以外の到達不能遷移を削除すると以下が得られる。
{((0,0), EngineOn,(0,1)),
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,1), Brake,(0,1))}
[3]Cruise以外のアクションであるEngineOnを捨象する(S63)。
{((0,0), ε,(0,1)),
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,1), Brake,(0,1))}
{((0,0), EngineOff,(0,0)),
((0,0), Cruise,(1,1))
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,1), Brake,(0,1)),
{((0,0), EngineOn,(0,1)),
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,1), ε,(0,1))}
{((0,0), EngineOn,(0,1)),
((0,0), Cruise,NG),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,1), EngineOff,(0,0)),
((1,1), Cruise,(1,1))}
o---------------------------------------o
S={0,1}
S0 = 0
Act = {Cruise,EngineOn,EngineOff}
δ={(0, EngineOn,1),
(1, EngineOff,0),
(1, Cruise,1)}
o---------------------------------------o
差分オートマトンA_Brake
o---------------------------------------o
S={0,1}
S0 = 0
Act = {Cruise,Brake,EngineOff}
δ={(0, EngineOff,0),
(0, Cruise,1),
(1, Brake,0)}
o---------------------------------------o
差分オートマトンA_EngineOn
更新部25は、差分計算部24により得られた差分オートマトンを一時記憶部26に追加することにより一時記憶部26を更新する。また更新部25は、一時記憶部26の更新の旨を判定部22に通知する。
図15は判定部22の動作例を示す。
o--------------------------------------------------------------o
2つのオートマトンの状態集合をS,Tとするとき、この2つのオートマトン
が双模倣であるとは、以下の双模倣関係が成り立つことである。
s, s'∈S, t, t'∈T、双模倣を与える関係をR⊆S×T、
遷移(1ステップ)を矢印で表す。また xRx' を x〜x' で示す。
1) s〜t, t→t' ならば、s'〜t', s→s' となるs'がS内にある。
2) s〜t, s→s' ならば、s'〜t', s→s' となるt'がT内にある。
o--------------------------------------------------------------o
双模倣性の定義
M= P0||Q0||A_Brake||A_EngineOn
P0||Q0は図7に示した合成オートマトンに相当し、これを“A”として表すと、
M=A||A_Brake||A_EngineOn
となる。
SA×SA_Brake×SA_EngineOn=
{(s0,s1,s2,s3)|(s0,s1)∈SA, s2∈SA_Brake, s3=SA_EngineOn}
状態の初期値は、(0,0,0,0)である。
δA={((0,0), EngineOn,(0,1)),
((0,0), Cruise,(1,0)),
((0,1), EngineOff,(0,0)),
((0,1), Cruise,(1,1)),
((1,0), EngineOn,(1,1)),
((1,0), Brake,(0,0)),
((1,1), Brake,(0,1)),
((1,1), EngineOff,(1,0))}
δA_Brake={(0, EngineOn,1),
(1, EngineOff,0),
(1, Cruise,1)}
δA_EngineOn={(0, EngineOff,0),
(0, Cruise,1),
(1, Brake,0)}
δM={
((0,0,0,0), EngineOn,(0,1,1,0)),
((0,1,1,0), EngineOff,(0,0,0,0)),
((0,1,1,0), Cruise,(1,1,1,1)),
((1,1,1,1), Brake,(0,1,1,0)),
}
δ= {(X,EngineOn,Y),(Y,Cruise,Z),(Y,EngineOff,X),(Z,Brake,Y)}
であったから、(0,0,0,0)=X, (0,1,1,0)=Y, (1,1,1,1)=Zと置き換えると、合成オートマトンと元々のオートマトンTの遷移集合はそれぞれ同一になる。よって、合成オートマトンと元々のオートマトンTとの間には双模倣関係が成り立ち、判定結果はOKになる。
これまでの説明において、差分計算部24では一回の処理で1つのNG遷移に対する1つの差分オートマトンのみを生成したが、すべてのNG遷移に対して図12の処理を繰り返し行うことにより、すべてのNG遷移に対する個々の差分オートマトンを一度に生成してもよい。この場合、判定部22の処理を省略し(判定結果は上記したように必ずOKであるため)、差分計算部24の処理が終わり次第、生成した差分オートマトンと、部分オートマトンをプロパティ変換部14に出力してもよい。なおNG遷移が複数存在するときは、NG遷移毎の処理のため各NG遷移に対応してNG遷移付きオートマトンM_NGのコピーを生成しておいてもよい。
図16はプロパティ変換部14の例を示す。
(1)P0=Cruise.Brake.P0
(2)Q0=EngineOn.EngineOff.Q0
(3)Ra=EngineOn.Ra1、Ra1=Cruise.Ra1+EngineOff.Ra
(4)Rb=EngineOff.Rb + Cruise.Rb1、Rb1=Brake.Rb
テストケース生成部16は、プロパティ(部分プロパティ、差分プロパティ)と、各部品のモデルとを読み込み、個々の部品、または複数の部品の組、またはシステム全体をテストするためのテストケースの生成を行う。各部品のモデルデータはたとえばハードディスク、メモリ装置、光ディスク等の外部の記憶装置から読み込んでもよいし、ユーザから入力手段を介して読み込んでも良い。図2のシステムモデルには2つの部品モデル(クルーズ制御部31、エンジン制御部41)が含まれている。
ソフトウエアのテスト技術におけるモデル駆動テスト(Model driven test)では、対象となるシステムのモデル(M)が遷移系(例:オートマトン)として与えられたとき、モデルMの全ての遷移パスを網羅する最小のテストケースを生成し、生成したテストケースに基づきシステムの動作を検証する。具体的にはシステムに対しテストケースに従ってアクションを実際に与えたときに仕様通りの動作をするか否かを確認する。
プロパティA,モデルM → (テスト生成)→ テストケースT
プロパティOA,モデルOM -> (テスト生成) -> テストケースOT
ただしOMはM1とM2の直積である( OM = M1×M2 )。
プロパティA1、モデルM1 → (テスト生成) → テストケースT1
プロパティA2、モデルM2 → (テスト生成) → テストケースT2
プロパティOA'、プロパティOM' → (テスト生成) → テストケースOT'
テストケースのサイズは、|T1'|=|T1|*(1/2)N, |T2'|=|T2|*(1/2)N と表すことができる。
モデルOM'の状態数は、モデルOMの1/4となるから、テストケースOT'の総遷移数は、|OT'|=|OT|*(1/4)Nと表すことができる。
|T1|+|T2| < |OT|、またN>1であることを考慮すると、
Total' = |OT'|+|T1'|+|T2'|
= (|T1|+|T2|)*(1/2)N+|OT|*(1/4)N
< |OT|((1/2)N + (1/4)N)
< |OT|*(3/4)N
本実施形態の応用例として、オートマトンAと、Aの部分オートマトンBが与えられたとき、部分オートマトンAから部分オートマトンBを引いた差分オートマトンEを計算することができる。
B||E〜A
(B||C||D〜A)
E=C||D=A-B (AからBを減算したオートマトンがE)
B||E〜A (BとEを並行結合するとAを再構成できる)
となるオートマトンEを計算できる。
X ←→ Y ←→ Z
12:分割部
13:連係制約計算部
14:プロパティ変換部
15:記憶装置
16:テストケース生成部
21:並行合成部
22:判定部
23:禁止遷移計算部
24:差分計算部
25:更新部
26:一時記憶部
J:プロパティ
U:部品構成情報
T:元々のオートマトン
Claims (5)
- 互いに結合された複数の部品を含むシステムに対する入力アクションの発生順序の制約を記述したプロパティ記述を、複数の状態と、前記入力アクションと、前記入力アクションの発生に起因して生じる状態遷移とを含むオートマトンに変換するオートマトン変換部と、
前記複数の部品のそれぞれに対する入力アクションを個別に示した部品構成情報毎に、前記システムに対する入力アクションのうち、対応する部品に対する入力アクション以外のすべての他入力アクションに対する射影演算を前記オートマトンに行うことにより部分オートマトンを得る分割部と、
各前記部分オートマトンを並行結合することにより、各前記部分オートマトンの状態を組み合わせた合成状態と、各前記部分オートマトンに含まれる入力アクションの和集合と、前記入力アクションの発生に起因する前記合成状態間の状態遷移とを含む合成オートマトンを生成する並行合成部と、
前記合成オートマトンおよび前記オートマトン間で同じアクションをもつ状態遷移を1つずつ選択して組み合わせることにより合成された遷移関係を取得し、前記合成された遷移関係において初期状態から到達不能な遷移と到達可能な遷移とを特定し、前記到達不能な遷移のうち前記到達可能遷移のうちの1つと遷移元に含まれる合成状態が一致する遷移を特定し、前記合成オートマトンにおいて前記特定した遷移と遷移元および遷移先に含まれる合成状態が一致する状態遷移である禁止遷移を特定する禁止遷移計算部と、
前記合成オートマトンにおける初期状態から到達不能な遷移のうち前記禁止遷移以外のすべての到達不能遷移を除去し、前記禁止遷移の入力アクション以外のすべての他入力アクションのそれぞれ毎に前記他入力アクションに対する射影演算を行ったときに同一状態から少なくとも前記禁止遷移を含む複数の遷移が生じる場合は当該射影演算を無効化し生じない場合は有効化することを繰り返すことにより差分オートマトンを得る、差分計算部と、
前記部分オートマトンおよび前記差分オートマトンと、前記複数の部品のそれぞれ毎に、複数の状態と、入力アクションの発生に起因する状態間の遷移と、前記遷移の際に発生する出力アクションとを表す部品モデルとに基づき、前記システムに対するテストケースを生成するテストケース生成部と、
を備えたテストケース生成装置。 - 任意に与えられた2つのオートマトンが双模倣の関係にあるか否かを判定する判定部と、
(A)前記禁止遷移計算部で前記禁止遷移が複数特定されたとき、前記禁止遷移のうちまだ選択されていない1つの禁止遷移を選択し、
(B)選択した禁止遷移に対して前記差分計算部による処理を行って前記差分オートマトンを取得し、
(C)前記差分計算部により得られたすべての差分オートマトンと、前記合成オートマトンまたは複数の前記部分オートマトンとを並行結合し、並行結合により得られたオートマトンと前記オートマトンとが双模倣の関係にあるかを前記判定部により判定し、双模倣の関係にあるときは前記部分オートマトンとこれまでに取得された前記差分オートマトンとを前記プロパティ変換部に送出し、
(D)双模倣の関係にないと判断されたときは(A)〜(C)を再度行う
連係制約計算部と、
をさらに備えたことを特徴とする請求項1に記載のテストケース生成装置。 - 前記テストケース生成部は、
各前記部品に対応する各前記部品モデルの遷移を、各前記部品に対応する前記部分オートマトンにより制限し、各制限された部品モデルの遷移をすべて網羅するように順次辿ることにより各前記部品毎に複数の入力アクションを含むテストケースを生成し、
各前記制限された部品モデルを並行結合し、並行結合されたモデルの遷移を前記差分オートマトンにより制限し、制限された部品モデルの遷移をすべて網羅するように順次辿ることにより各前記部品の組合せテスト用の複数の入力アクションを含むテストケースを生成する
ことを特徴とする請求項1または2に記載のテストケース生成装置。 - 前記部分オートマトンと前記差分オートマトンをプロパティ記述に変換するプロパティ変換部をさらに備え、
前記テストケース生成部は、前記部分オートマトンと前記差分オートマトンが変換されたプロパティ記述を用いて処理を行う
ことを特徴とする請求項1ないし3のいずれか一項に記載のテストケース生成装置。 - コンピュータにおいて実行するテストケース生成方法であって、
コンピュータが、
互いに結合された複数の部品を含むシステムに対する入力アクションの発生順序の制約を記述したプロパティ記述を、複数の状態と、前記入力アクションと、前記入力アクションの発生に起因して生じる状態遷移とを含むオートマトンに変換するオートマトン変換ステップと、
前記複数の部品のそれぞれに対する入力アクションを個別に示した部品構成情報毎に、前記システムに対する入力アクションのうち、対応する部品に対する入力アクション以外のすべての他入力アクションに対する射影演算を前記オートマトンに行うことにより部分オートマトンを得る分割ステップと、
各前記部分オートマトンを並行結合することにより、各前記部分オートマトンの状態を組み合わせた合成状態と、各前記部分オートマトンに含まれる入力アクションの和集合と、前記入力アクションの発生に起因する前記合成状態間の状態遷移とを含む合成オートマトンを生成する並行合成ステップと、
前記合成オートマトンおよび前記オートマトン間で同じアクションをもつ状態遷移を1つずつ選択して組み合わせることにより合成された遷移関係を取得し、前記合成された遷移関係において初期状態から到達不能な遷移と到達可能な遷移とを特定し、前記到達不能な遷移のうち前記到達可能遷移のうちの1つと遷移元に含まれる合成状態が一致する遷移を特定し、前記合成オートマトンにおいて前記特定した遷移と遷移元および遷移先に含まれる合成状態が一致する状態遷移である禁止遷移を特定する禁止遷移計算ステップと、
前記合成オートマトンにおける初期状態から到達不能な遷移のうち前記禁止遷移以外のすべての到達不能遷移を除去し、前記禁止遷移の入力アクション以外のすべての他入力アクションのそれぞれ毎に前記他入力アクションに対する射影演算を行ったときに同一状態から少なくとも前記禁止遷移を含む複数の遷移が生じる場合は当該射影演算を無効化し生じない場合は有効化することを繰り返すことにより差分オートマトンを得る、差分計算ステップと、
前記部分オートマトンおよび前記差分オートマトンと、前記複数の部品のそれぞれ毎に、複数の状態と、入力アクションの発生に起因する状態間の遷移と、前記遷移の際に発生する出力アクションとを表す部品モデルに基づき、前記システムに対するテストケースを生成するテストケース生成ステップと、
を実行することを特徴とするテストケース生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009217769A JP5244750B2 (ja) | 2009-09-18 | 2009-09-18 | テストケース生成装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009217769A JP5244750B2 (ja) | 2009-09-18 | 2009-09-18 | テストケース生成装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011065576A JP2011065576A (ja) | 2011-03-31 |
JP5244750B2 true JP5244750B2 (ja) | 2013-07-24 |
Family
ID=43951721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009217769A Expired - Fee Related JP5244750B2 (ja) | 2009-09-18 | 2009-09-18 | テストケース生成装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5244750B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014189013A (ja) * | 2013-03-28 | 2014-10-06 | Du Pont-Toray Co Ltd | 複合シート及びその製造方法 |
JP5963316B2 (ja) | 2014-02-20 | 2016-08-03 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 生成装置、生成方法、及び、プログラム |
US20150323916A1 (en) * | 2014-05-09 | 2015-11-12 | Vanderbilt University | Fast change planning system, fast change planning method, and fast change planning program |
JP6278836B2 (ja) * | 2014-05-27 | 2018-02-14 | 三菱電機株式会社 | テストケース生成装置、テストケース生成方法及びプログラム |
US9892027B2 (en) * | 2014-07-09 | 2018-02-13 | Fujitsu Limited | Event-driven software testing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3415310B2 (ja) * | 1994-01-26 | 2003-06-09 | 株式会社東芝 | テストケース作成装置 |
JP2003099285A (ja) * | 2001-09-25 | 2003-04-04 | Toshiba Corp | 機能競合に関するテストケース生成方法とその装置、そのためのプログラム |
JP4705060B2 (ja) * | 2007-02-27 | 2011-06-22 | 三菱電機株式会社 | 試験仕様生成装置及び試験システム及び試験仕様生成方法及びプログラム |
-
2009
- 2009-09-18 JP JP2009217769A patent/JP5244750B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011065576A (ja) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abdeen et al. | Multi-objective optimization in rule-based design space exploration | |
Zhang et al. | Machine learning and software engineering | |
Miles et al. | Prime: A methodology for developing provenance-aware applications | |
US7711674B2 (en) | System and method for automatic design of components in libraries | |
US20050204333A1 (en) | Integrated system-of-systems modeling environment and related methods | |
JP5244750B2 (ja) | テストケース生成装置およびその方法 | |
Anjorin et al. | 20 years of triple graph grammars: A roadmap for future research | |
US20230111236A1 (en) | Compiling quantum programs | |
WO2022153290A1 (en) | Quantum circuit modeling | |
Taromirad et al. | Agile requirements traceability using domain-specific modelling languages | |
Bergenthum et al. | Synthesis of Petri nets from scenarios with VipTool | |
Abbas et al. | A model-driven framework for security labs using blockchain methodology | |
US20080319815A1 (en) | Computer-implemented method, system, and program product for conducting a trade-off study | |
Askarunisa et al. | A test case reduction method for semantic based web services | |
Rajabi et al. | Change management framework to support UML diagrams changes. | |
Herrmannsdörfer et al. | Library concepts for model reuse | |
Qayum et al. | Search-based refactoring using unfolding of graph transformation systems | |
CN114791865A (zh) | 一种基于关系图的配置项自洽性检测方法、系统和介质 | |
Oh et al. | WSBen: A Web services discovery and composition benchmark toolkit1 | |
Barjis et al. | Modeling and simulation driven software development | |
Miranda et al. | Test-case optimization using genetic and tabu search algorithm in structural testing | |
Al Dallal et al. | Generating class based test cases for interface classes of object-oriented black box frameworks | |
Xu et al. | A cooperative coevolution approach to automate pattern-based software architectural synthesis | |
Yan et al. | Towards a Multi-Level Explainability Framework for Engineering and Understanding BDI Agent Systems | |
Høgnason et al. | DCR event-reachability via genetic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110916 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130123 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130408 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |