JP5106447B2 - テストケース生成装置およびその生成方法、ならびにコンピュータプログラム - Google Patents

テストケース生成装置およびその生成方法、ならびにコンピュータプログラム Download PDF

Info

Publication number
JP5106447B2
JP5106447B2 JP2009056514A JP2009056514A JP5106447B2 JP 5106447 B2 JP5106447 B2 JP 5106447B2 JP 2009056514 A JP2009056514 A JP 2009056514A JP 2009056514 A JP2009056514 A JP 2009056514A JP 5106447 B2 JP5106447 B2 JP 5106447B2
Authority
JP
Japan
Prior art keywords
state
transition
event
scenario
test case
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
Application number
JP2009056514A
Other languages
English (en)
Other versions
JP2010211481A (ja
Inventor
博 正 進
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009056514A priority Critical patent/JP5106447B2/ja
Priority to US12/719,945 priority patent/US20100235685A1/en
Publication of JP2010211481A publication Critical patent/JP2010211481A/ja
Application granted granted Critical
Publication of JP5106447B2 publication Critical patent/JP5106447B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/045Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23027Database with information on how to control or test different appliances
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23289State logic control, finite state, tasks, machine, fsm

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、テストケース生成装置およびその生成方法、ならびにテストケース生成のためのコンピュータプログラムに関する。
システムの動作仕様を状態探索してシステム状態遷移系を生成し、システム状態遷移系で起き得る遷移を網羅するようにテストケースを作成する方法が知られている。この方法は、システムの状態間で起き得る遷移関係を網羅するテストケースを列挙できる利点がある。
ISBN-4781910262, J. ホップクロフト他, "オートマトン言語理論 計算論", サイエンス社(2003).
しかしながら、上記の方法はシステムの動作仕様が複雑になるとシステム状態遷移系の規模とテストケースの規模が指数関数的に増える問題がある。また大規模なシステム状態遷移系の遷移関係を網羅するテストケースは、一定のテスト制約の下で重複したテストケースを多く含む問題もある。
テストケースの生成方法は、一定のテスト制約の下で起こり得るテストケースを網羅的に列挙する方法と見なせる。テスト制約は多様な形が考えられ、たとえば公知の方法として、遷移事象の種類を制限する方法などがある。しかし、この方法の場合、現実のシステムを反映した複雑な動作をシステム状態遷移系で再現できなくなり、テストの実施可能性が損なわれる。
本発明は、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱いつつ、規模を抑えたシステム状態遷移系ならびにテストケースを生成できるテストケース生成装置、テストケース生成方法、テストケース生成のためのコンピュータプログラムを提供する。
本発明の一態様に係るテストケース生成装置は、
対象システムのテストケースを生成するテストケース生成装置であって、
それぞれの値の組により第1状態を表す複数の第1変数と、複数の遷移事象と、前記複数の遷移事象のそれぞれが発生するために前記複数の第1変数により満たされる必要のある事前条件と、前記複数の遷移事象のそれぞれが発生したときに実行する前記第1変数の更新式とを記述したシステム動作仕様記述を記憶する第1の記憶部と、
前記複数の遷移事象の発生に応じて、第2変数の値により表される複数の第2状態間の遷移を記述したシナリオ状態遷移系を記憶する第2の記憶部と、
前記システム動作仕様記述と前記シナリオ状態遷移系とを元に前記複数の遷移事象の発生に応じた前記第1状態間の遷移を記述したシステム状態遷移系を生成するシステム状態遷移系生成部と、
前記システム状態遷移系の各遷移を順次辿ることにより前記システム状態遷移系のすべての遷移を網羅する遷移事象系列であるテストケースを生成するテストケース生成部と、
前記テストケースを出力するテストケース出力部と、を備え、
前記システム状態遷移系生成部は、
データを一時的に格納するための第1および第2の一時記憶手段を有し、
前記複数の第1変数の初期値を定めた第1初期状態を生成し、
前記シナリオ状態遷移系における初期状態である第2初期状態を特定し、
前記第1初期状態と前記第2初期状態とにおいて発生可能な共通の遷移事象を検出し、
前記第1初期状態および前記第2初期状態をそれぞれ検出遷移事象により遷移させて遷移先の第1状態および遷移先の第2状態を求め、前記第1初期状態、前記検出遷移事象、遷移先の前記第1状態を一組として前記第1の一時記憶手段に格納し、
前記遷移先の第1および第2状態のペアである複合状態を前記第2の一時記憶手段に格納し、
(A)前記第2の一時記憶手段においてまだ選択されていない前記複合状態を選択し、
(B)選択した複合状態に含まれる第1および第2状態のそれぞれにおいて発生可能な共通の遷移事象を検出し、前記第1および第2状態をそれぞれ検出遷移事象により遷移させて遷移先の第1および第2状態を求め、前記選択した複合状態における遷移元の第1状態、前記検出遷移事象、求めた遷移先の第1の状態を一組として前記第1の一時記憶手段に格納し、
(C)(B)で求められた前記遷移先の第1および第2状態のペアである複合状態が前記第2の一時記憶手段に存在ないときは前記複合状態を前記第2の一時記憶手段に格納し、
(A)〜(C)を前記第2の一時記憶手段に含まれるすべての前記複合状態が選択済みになるまで繰り返し行い、繰り返し処理が終了した後、前記1の一時記憶手段における各前記組の集合である前記システム状態遷移系を取得する
ことを特徴とする。
本発明の一態様によるテストケース生成方法は、
コンピュータにおいて実行する、対象システムのテストケースを生成するテストケース生成方法であって、
それぞれの値の組により第1状態を表す複数の第1変数と、複数の遷移事象と、前記複数の遷移事象のそれぞれが発生するために前記複数の第1変数により満たされる必要のある事前条件と、前記複数の遷移事象のそれぞれが発生したときに実行する前記第1変数の更新式とを記述したシステム動作仕様記述を記憶する第1の記憶部と、
前記複数の遷移事象の発生に応じて、第2変数の値によって表される複数の第2状態間の遷移を記述したシナリオ状態遷移系を記憶する第2の記憶部と、にアクセスするステップと、
前記システム動作仕様記述と前記シナリオ状態遷移系とを元に前記複数の遷移事象の発生に応じた前記第1状態間の遷移を記述したシステム状態遷移系を生成するシステム状態遷移系生成ステップと、
前記システム状態遷移系の各遷移を順次辿ることにより前記システム状態遷移系のすべての遷移を網羅する遷移事象系列であるテストケースを生成するテストケース生成ステップと、
前記テストケースを出力するテストケース出力ステップと、を備え、
前記システム状態遷移系生成ステップは、
前記複数の第1変数の初期値を定めた第1初期状態を生成し、
前記シナリオ状態遷移系における初期状態である第2初期状態を特定し、
前記第1初期状態と前記第2初期状態とにおいて発生可能な共通の遷移事象を検出し、
前記第1初期状態および前記第2初期状態をそれぞれ検出遷移事象により遷移させて遷移先の第1状態および遷移先の第2状態を求め、前記第1初期状態、前記検出遷移事象、遷移先の前記第1状態を一組として第1の一時記憶手段に格納し、
前記遷移先の第1および第2状態のペアである複合状態を第2の一時記憶手段に格納し、
(A)前記第2の一時記憶手段においてまだ選択されていない前記複合状態を選択し、
(B)選択した複合状態に含まれる第1および第2状態のそれぞれにおいて発生可能な共通の遷移事象を検出し、前記第1および第2状態をそれぞれ検出遷移事象により遷移させて遷移先の第1および第2状態を求め、前記選択した複合状態における遷移元の第1状態、前記検出遷移事象、求めた遷移先の第1の状態を一組として前記第1の一時記憶手段に格納し、
(C)(B)で求められた前記遷移先の第1および第2状態のペアである複合状態が前記第2の一時記憶手段に存在しないときは前記複合状態を前記第2の一時記憶手段に格納し、
(A)〜(C)を前記第2の一時記憶手段に含まれるすべての前記複合状態が選択済みになるまで繰り返し行い、繰り返し処理が終了した後、前記1の一時記憶手段における各前記組の集合である前記システム状態遷移系を取得する
ことを特徴とする。
本発明の一態様によるコンピュータプログラムは、上記方法に記載の各ステップをコンピュータに実行させることを特徴とする。
本発明により、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱いつつ、規模を抑えたシステム状態遷移系ならびにテストケースを生成できる。
本発明の一実施形態としてのテストケース生成装置のブロック図。 図1のシステム状態遷移系生成部の動作の流れを示すフローチャート。 自動販売機のシステム動作仕様例を示す図。 システム状態遷移表(従来)を示す図。 システム状態遷移系(従来)を示す図。 シナリオ状態遷移表(例1)を示す図。 シナリオ状態遷移系(例1)を示す図。 シナリオ状態遷移表(例2)を示す図。 シナリオ状態遷移系(例2)を示す図。 複合状態の状態遷移系を示す図。 図10の表をシステム系の状態に射影した図。 システム状態遷移系(例1)。 システム状態遷移系(例2)。 テストケース(遷移パス)の例1を示す図。 テストケース(遷移パス)の例2を示す図。 テストケース(遷移パス)の例(従来)を示す図。
図1は本発明の一実施の形態としてのテストケース生成装置の構成を示すブロック図である。
以下ではまずこの装置の概要について説明し、その後、具体例を用いて本装置の詳細を説明する。
システム動作仕様記述11(以下では単に動作仕様と称することもある)は、それぞれの値が対象システムの状態(第1状態)を表す複数の第1変数と、複数の遷移事象と、当該複数の遷移事象のそれぞれが発生するために当該複数の第1変数が満たす必要のある事前条件と、当該複数の遷移事象のそれぞれが発生したときに実行する当該第1変数の値の更新式とを記述する。動作仕様11は本装置に接続された記憶装置から読み出され、本装置の内部バッファに一時的に記憶される。本発明の動作仕様を記憶する第1の記憶部は、この記憶装置であってもよいし、内部バッファであってもよい。
シナリオ情報12は、複数の遷移事象の発生の順序のシナリオを記述した遷移事象順序記述(シナリオ記述)を含む。またシナリオ情報12は、第2状態(前状態)と、遷移事象と、当該第2状態において当該遷移事象が発生したときの遷移先の第2状態(次状態)との対応表(対応情報)を含む。第2状態は第2変数の値として表される。たとえば対応表において、状態q0と、ある遷移事象と、状態q1とが対応付けられているとき、これは、状態q0のときに当該ある遷移事象が起こったとき状態q1に遷移することを意味する。q0,q1は第2変数の値の一例である。シナリオ情報12は、本装置に接続された記憶装置から読み出され、本装置に入力される。
シナリオ状態遷移系生成部14は、シナリオ情報12における上記対応表に基づき上記遷移事象順序(シナリオ)の制約に従って遷移事象を発生させることにより、複数の遷移事象の発生による複数の第2状態間の遷移を記述したシナリオ状態遷移系15を生成する(非特許文献1参照)。シナリオ状態遷移系15は、事象制限DFA(Deterministic Finite Automaton:決定性有限オートマトン)とも称される。本実施形態ではシナリオ情報12を入力してシナリオ状態遷移系15を生成しているが、あらかじめシナリオ状態遷移系15をユーザ等が生成して記憶装置に格納しておき、この記憶装置からシナリオ状態遷移系15を読み出すようにしてもよい。読み出したシナリオ状態遷移系15は本装置の内部バッファに格納される。この場合、シナリオ状態遷移系生成部14は省略可能である。本発明のシナリオ状態遷移系を記憶する第2の記憶部は、この記憶装置であってもよいし、内部バッファであってもよい。
システム状態遷移系生成部13は、対象システムの初期状態(第1初期状態)から動作仕様11で発生可能な遷移事象を順次発生させることにより、複数の遷移事象の発生による第1状態間の遷移を記述したシステム状態遷移系16を生成する。この際、シナリオ状態遷移系15により発生可能な事象に制限を加える。つまり、システム動作仕様記述に基づいて遷移事象を順次生起させてシステム状態遷移系を生成する際に、シナリオ状態遷移系も同時に遷移させ、順次生起させる遷移事象を、当該シナリオ状態遷移系で遷移可能なものに制限する。システム状態遷移系生成部13の詳細は図2のフローチャートを用いて後に説明する。
遷移パス生成部(テストケース生成部)17は、システム状態遷移系12の各遷移を順次に辿ることによりすべての遷移を網羅する遷移事象系列である遷移パス(テストケース)を生成する。遷移パス生成部17は、生成した遷移パス(テストケース)を外部に出力する出力部を含む。
システム状態遷移系生成部13、シナリオ状態遷移系生成部14および遷移パス生成部17はハードウェアによって実現してもよいしソフトウェア(プログラム)によって実現してもよいしこれらの組によって実現してもよい。プログラムによって実現する場合、プログラムをハードディスク装置、メモリデバイス、CD−ROM等の記憶媒体に格納し、CPU等の演算装置がこの記録媒体からプログラムを読み出して実行することにより各要素13〜15の動作が実現されてもよい。
以下、自動販売機の動作仕様を題材に、図1の装置について詳細に説明する。
図3の表は、自動販売機を簡素化したシステムの動作仕様の例を示す。この動作仕様は、自動販売機の操作に応じた自動販売機の内部状態(第1状態)の変化を記述している。この動作仕様は、(1)システムの状態変数(第1変数)、(2)状態変数を変化させる遷移事象、(3)遷移事象の発生可能性を判定する事前条件、(4)遷移事象が発生した際に行う状態更新式を含む。状態変数(第1変数)の値によりシステムの内部状態(第1状態)が表される。
図3の例では、システムの状態変数(第1変数)として、商品の価格を表現する“price”、商品の在庫を表現する“stock”、コインの投入金額を表現する“amount”が存在する。
自動販売機の状態が遷移(変化)する事象(遷移事象)としては、状態を初期化するVendingMachine()、商品gを登録するregisterGoods(g)、商品gの価格pを設定するsetupPrice(g,p)、商品gの在庫nを設定するsetupStock(g,n)、金額cのコインを投入するinsertCoin(c)、商品gを購入するpurchaseGoods(g)、コインを返却するreturnCoin()が存在する。
各々の遷移事象には、事象の発生可能性(事象の発生前に成立しているべき制約)を記述する事前条件と、事象が発生したときの状態変数の変化を記述する状態更新とが対応づけられる。各々の遷移事象は、それぞれ対応する事前条件が満たされている状態で起こることが可能である。各遷移事象が起こったとき、各々対応する状態更新が行われる。
たとえば商品gを購入する事象purchaseGoods(g)の事前条件は、商品gの在庫stock(g)が正(stock(g)>0)、かつ、コインの投入金額amountが商品gの金額price(g)以上であること(amount≧price(g))である。この事前条件が満たされるとき事象purchaseGoods(g)は生起可能である。事象purchaseGoods(g)が起こったとき、商品gの在庫stock(g)を1だけ減らし(stock(g):=stock(g)-1)、コインの投入金額を商品gの金額price(g)だけ減らし(amount:=amount-price(g))、商品を排出する(return g)という状態更新が行われる。
図3の表と同様の動作仕様は、プログラミング言語Java(登録商標)を用いて表現することも可能であり、これを本明細書の末尾に掲載しておく。図3の表およびJavaプログラム表記のいずれの表現にせよ、動作仕様は、上述の(1)〜(4)の項目の記述を含むものとする。
前述の図3の表のような動作仕様が与えられると、システムの状態と遷移事象とによる遷移関係をあらわすシステム状態遷移系を構成できる。本実施の形態では上述のようにシナリオ状態遷移系(事象制限DFA)15による制限を加味してシステム状態遷移系16を生成することを大きな特徴とするが、ここでは理解の簡単のため、まずは、動作仕様のみからシステム状態遷移系を生成する様子を示す。
図4の表は、前述の自動販売機の動作仕様を元に生成したシステム状態遷移系の例を示す(ここではシナリオ状態遷移系の制限を考慮していない)。図4の表では、遷移事象の記述のため下記の略称を用いている。たとえば、略称 “rg”は商品“Tea”を登録“registerGoods”する意味である。
Figure 0005106447
図4の表の生成手順を説明すると以下の通りである。
Step1:まずシステムの初期状態を初期化処理VendingMachine()後の状態(s0とラベリングする)であるとし、図4の表の1行目に状態s0を登録する。状態s0は商品の登録がなく(stock=())、商品の価格の登録がなく(price=())、投入金額が0(amount=0)の状態である。
Step2:状態s0で各遷移事象の事前条件を検査して発生可能な遷移事象を調べる。図3の表から、状態s0では、商品を登録する事象rgのみ発生可能であることが分かる。
Step3:状態s0で商品gを登録すると、商品gの価格表と在庫表の値が共に0(stock=((Tea 0)), price=((Tea 0)))で、投入金額が0(amount=0)の新たな状態(s1とラベリングする)が生ずる。ここでは商品gとして紅茶(Tea)を登録している。
Step4:新しい状態s1を図4の表の2行目に登録し、同様に発生可能な事象を調べる。図3の表から、商品の価格を登録する事象spのみ発生可能となることが分かる。
Step5:以降同様にして、現在の状態から発生可能な遷移事象を発生させ、新たな状態が生成された場合は、図4の表に新たな状態を登録し、新たな状態から同様の手順を繰り返し、新たな状態が現れなくなるまで、処理を継続する。こうして、各状態と、状態間の遷移関係とをまとめた図4の表が得られる。
ただし、図4の表の状態遷移系(状態遷移表)の生成にあたっては、コインの投入額や商品の在庫数に制限を加えなければ原理的に無限の状態(自動販売機の状態)がありえるため、コインの投入額が150円以内に、商品の在庫数が1個となるよう制限している。具体的には新たな状態が生じた場合に、この制限を満たす状態のみを、表に追加するようにしている。
上記の手順で生成したシステムの状態と、状態間の遷移関係(すなわち図4の表の状態遷移系)は図5のようなグラフ構造で表すことができる。このグラフ構造は、22個の状態(ノード)と44個の遷移(アーク)を持つ。各状態から出る矢印付きの線(アーク)は、各状態で発生可能な事象(遷移事象)と対応しており、事象が発生した後の状態(ノード)へ入る。
図5のシステム状態遷移系に起き得る遷移の系列は、システムで実行可能な状態変化に対応する。たとえば、初期状態s0で事象がrg,sp,ss,c1の順に発生すると、システムの状態はs1,s2,s3,s5と変化する。現実の自動販売機に対して対応する事象を発生させて、動作仕様と同等の動作を確認することで、自動販売機の実機が動作仕様を満たすことを確認できる。テストケースは、このように動作確認したい遷移を並べた遷移系列(遷移パス)であり、上記例では「rg,sp,ss,c1」がテストケースに相当する。上述の遷移パス生成部17は、シナリオ状態遷移系15の制限を加味して生成したシステム状態遷移系16を元にテストケース(遷移パス)を生成するが、ここでは理解の簡単のため、シナリオ状態遷移系15を加味せずに生成した図5のシステム状態遷移系に基づいて説明している。なお遷移パス生成部17の動作は、シナリオ状態遷移系15を加味して生成したシステム状態遷移系であっても、シナリオ状態遷移系15を加味せずに生成したシステム状態遷移系であっても変わることはない。
ここで効率の良いテストケースとは、システム状態遷移系の遷移を網羅し、かつなるべく短い遷移系列である。状態遷移系の状態を頂点、遷移を辺とする有向グラフ(directed graph)を考えると、効率の良いテストケースは、遷移を網羅する最小の遷移系列に対応する。このような最小の遷移系列のテストケースは遷移を全て実行するように初期状態から一筆書きの遷移パスを計算することにより得られる。このような最小の遷移系列の生成は、中国人郵便配達夫問題(CPP: Chinese Postman Problem)としてグラフアルゴリズムの分野で公知である。この方法により、たとえば、図5の状態遷移系に対しては、長さ104の遷移系列(104の遷移事象を並べた遷移系列)が求められ、この遷移系列(テストケース)を用いると、幾つかの遷移は重複するものの、すべての遷移を網羅できる。このようにして網羅性の高い系統的なテストケースを生成することができる。
ここまで述べたようなシナリオ状態遷移系15を加味しないで生成されたテストケース(従来方法のテストケース)は、システムの状態間の遷移を網羅できるものの、動作仕様の複雑化や、事象の種類の増加にともない、テストの実施可能性が損なわれる問題がある。すなわち、事象の種類の増加に伴い状態空間が指数関数的に増加すると、対応するテストケースの規模も指数関数的に増えるため、テストの実施が困難となる問題がある。テストを実施可能な範囲に規模を抑えるため、動作仕様を簡素化したり、事象の種類を制限したりする方法が知られている。
しかし、動作仕様を簡素化したり、事象の種類を制限したりすると所望のテストケースを生成できない場合がある。たとえば、動作仕様を簡素化する例としてコインの種類ごとの残高管理を省略すると、商品が存在するが釣銭切れで販売不能となる動作をモデルで再現できない。また事象の種類を制限する例として商品Teaのみ扱えば、商品Teaは品切れだが商品Coffeeは販売可能な場合の動作をモデルで再現できない。現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱うことができ、かつ状態遷移系の規模の増加を抑えることができる方法が求められる。
そこで、本実施の形態では“シナリオ状態遷移系”を導入し、“シナリオ状態遷移系(事象制限DFA)”により動作仕様で発生可能な遷移事象に制限を加えながらシステム状態遷移系を生成することによりこのような方法を実現している。以下これについて詳細に説明する。
システムの状態空間(図3参照)を探索するときの遷移事象の順番を制限すると、システムの状態遷移系の規模を抑えられる。たとえば、図5のシステム状態遷移系は投入したコインの残高amountに応じた多数の状態と状態間の遷移関係を有するが、テストのときに残高の異なる状態に関心がなければ、コインの投入順番を制限するとよい。コインの投入順序の制限する例として、金額の大きなコインから投入する等の制限を設けると状態の数が制限されて、後述する図12または図13のようにシステム状態遷移系の規模を抑えられる。
本実施形態では、遷移事象の順序を制限する方法として。有限な内部状態を持ち遷移事象により状態を変える“シナリオ状態遷移系”を用意し、シナリオ状態遷移系の現在の状態により、システムの状態空間において次に発生可能な遷移事象を制限する。
図6の表は、遷移が決定的でかつ有限な内部状態(第2状態)を有する(すなわち有限な内部状態を持ち、かつ記号をひとつ読む度に次の状態が決まる)シナリオ状態遷移系の例(例1)を示す。また図6の表をグラフ構造で示したものを図7に示す。
図8の表は、シナリオ状態遷移系の別の例(例2)を示す。図8の表をグラフ構造で表現したものを図9に示す。
図6の表または図8の表において、各行には内部状態(第2状態)q0,q1,q3…q6が対応づけられ、各列には遷移事象rg,sp.ss.c10,c100,pg,rcが対応づけられている。内部状態(第2状態)は第2変数の値に相当する。行と列との交差部のマスは、対応する内部状態(第2状態)から対応する遷移事象が発生した際の内部状態の遷移先を記述している。空欄のマスは、対応する内部状態から、対応する遷移事象の発生が抑制されることを意味する。
たとえば図6の表において、現在の状態がq0のときは遷移事象rgのみが発生可能であり、状態q0で遷移事象rgが発生すると、状態が状態q1に遷移する。状態q0において他の遷移事象sp,ss,c1,c2,pg,rcの発生は抑制される。また状態がq6のときは遷移事象ss,pg,rcが発生可能であり、状態q6で遷移事象ssが発生すると状態がq3に遷移し、遷移事象pgが発生するとq6に遷移し、遷移事象rcが発生するとq6に遷移する。状態q0のときは遷移事象rgのみが発生可能であるため、これは決定的な遷移である。また図8の表の例では、状態q3では発生可能な遷移事象が存在しないため、これも決定的な遷移であるといえる。すなわち、決定的な遷移は、行に記入される状態の数が0または1個であることに対応する。
このようなシナリオ状態遷移系は、正規言語でシナリオのパターンを記述したシナリオ記述(遷移事象順序記述)と、上述の対応表(対応情報)とを含むシナリオ情報12に基づき、シナリオ状態遷移系生成部13により生成される。
ここで、シナリオのパターンはシナリオ状態遷移系が許容する遷移系列のパターンのことである。また、正規言語(Regular Language)は、有限な種類の記号と、三種類の特別な記号(順次"."、選択"|"、繰り返し"*")とを組み合わせてできるパターンの記述方法である。上記有限な種類の記号を、上記特別な記号(順次"."、選択"|"、繰り返し"*")で結合した式のことを正規表現(Regular Expression)といい、上記正規言語は、正規表現に合致する記号列全体ということもできる。
正規言語(Regular Language)でシナリオのパターンを表現すると、図6の表(または図7)のシナリオ状態遷移系は、パターン"(rg . sp . (ss . c100 . (c10)* . (pg|rc)*)*)"のシナリオに対応する。図6および図7と、正規言語のシナリオ"(rg . sp . (ss . c100 . (c10)* . (pg|rc)*)*)"との対応は次の通りである。図7の初期状態0から始まる遷移系列を考えると、状態0から状態4までは遷移系列rg,sp,ss,c100に限られるが、状態4から先は遷移ss,c10,rc,pgの何れも可能であり、それぞれの遷移先は状態3,5,6,6となる。たとえば遷移c10により状態4から5へ移ると、状態5では遷移c10が何回発生しても良いが、一度、遷移pgまたはrcが発生して状態5から6へ移ると、遷移c10の発生は禁止される。このように図6および図7の初期状態0から始まる遷移系列が正規言語のシナリオを表現する。
また、図8の表(または図9)のシナリオ状態遷移系は、パターン"(rg . sp . (ss . c100 . c10 . pg . rc)*)"のシナリオに対応する。
図6の表(または図7)の場合、コイン投入順序に関しては1回の100円投入後、任意回数の10円投入が許されるが、図8の表(または図9)の場合は、1回の100円投入後、丁度2回の10円投入しか許されないことが分かる。なお、図4または図5のシステム状態遷移系で許される遷移系列のパターンを正規言語で表現すると(rg.sp.(ss|c100|c10|pg|rc)*))となる。
このような正規言語で記述されたシナリオのパターン記述(遷移事象順序記述)と上述の対応表(遷移前の状態、遷移事象、遷移後の状態を対応付けたもの)とを含むシナリオ情報12をシナリオ状態遷移系生成部14に入力し、シナリオ状態遷移系生成部14ではこのシナリオ情報12からシナリオ状態遷移系15を生成する。たとえば初期状態q0から開始して、シナリオのすべての遷移パターンを網羅するように遷移を順次発生させ、遷移の発生に応じて新たな状態を表すノードを生成し、また遷移に対応するアークを追加することでシナリオ状態遷移系15を生成できる。非特許文献1の方法を用いてシナリオ状態遷移系15を生成することも可能である。
このようにシナリオ状態遷移系15が生成されたら、システム状態遷移系生成部13ではシナリオ状態遷移系15の制限に基づき、動作仕様11から、簡素化されたシステム状態遷移系16を生成する。これにより、正規言語で記述したシナリオのパターンの範囲内に動作を限定して、元の動作仕様から、簡素化されたシステム状態遷移系を生成できる。このようにして、本実施の形態では、動作仕様を簡素化したり事象の種類を制限したりすることなく、テスト目的に応じて状態数を抑えたシステム状態遷移系を生成できる。このように簡素化されたシステム状態遷移系を生成すれば、この後は、上述のテストケース生成方法でテストケースを生成して、実際のテストを実施すればよい。
図1のシステム状態遷移系生成部13は、シナリオ状態遷移系生成部14により生成されたシナリオ状態遷移系15の意味する事象制約を考慮しながら、動作仕様11に示されるシステムの状態空間を探索して、簡素化されたシステム状態遷移系16を生成する。以下では、システム状態遷移系生成部13の動作内容を簡単に理解するため、まず具体例に基づく動作を説明し、その後、本装置の詳細な動作アルゴリズムを、図2を参照して説明する。
図10は、図6の表のシナリオ状態遷移系の制限を考慮しながら、図3の動作仕様に示される状態空間を探索する様子を示す。この探索は、システム状態遷移系の状態sとシナリオ状態遷移系の状態qの組である複合状態(s,q)をベースに行う。以下探索手順の詳細を示す。
システム状態遷移系およびシナリオ状態遷移系の双方の初期状態の組である複合状態(s0,q0)を、図10の表のように1行目に登録する。図10の表の各列にはあらかじめ遷移象rg,sp,ss,c10,c100,pg,rcが登録されている。ここでシステムの初期状態s0は初期化処理VendingMachine()後の状態である。すなわち、状態s0は商品の登録がなく(stock=())、商品の価格の登録がなく(price=())、投入金額が0(amount=0)の状態である。
この初期複合状態(s0,q0)で発生可能な遷移事象をすべて列挙する。具体的には、動作仕様に示されるシステムの事前条件が満たされ、かつシナリオ状態遷移系で遷移可能な事象を列挙する。初期状態(s0,q0)で、システム状態遷移系とシナリオ状態遷移系の双方で遷移可能な遷移事象が、当該複合状態(s0,q0)で発生可能な遷移事象である。
当該複合状態(s0,q0)でこの条件を満たす遷移事象を列挙すると、図6の表および図3の表に基づき、rgのみであることが分かる。すなわち図3の表から、状態s0(stock=()、price=()、amount=0)では、商品を登録する事象rgのみ発生可能であり、また図6の表から、状態q0に対応する事象はrgのみしか記載されていないことからrgのみ発生可能であることが分かる。よってrgのみが列挙される。
発生可能な遷移事象を列挙したら、列挙した遷移事象にしたがって、システム状態遷移系の状態(第1状態)とシナリオ状態遷移系の状態(第2状態)をそれぞれ遷移させる。複合状態(s0,q0)を遷移事象rgに従って遷移させると遷移先の複合状態は(s1,q1)となる。すなわち、状態s0で商品gを登録すると、商品gの価格表と在庫表の値が共に0(stock=((Tea 0)), price=((Tea 0)))で、投入金額が0(amount=0)の新たな状態(s1とラベリングする)が生ずる。なおここでは商品gとして紅茶(Tea)を登録している。また図6の表から、状態q0と事象rgの交差部はq1である。よって遷移先の複合状態は(s1,q1)となる。この複合状態を、図10の表の複合状態(s0,q0)の行と、rgの列との交差部に書き込む。
遷移の結果、新しい複合状態が生じた場合は、前述した通常の状態探索と同様に、新しい複合状態の行を追加する。状態(s1,q1)は新しい複合状態であるため、状態(s1,q1)の行を図10の表の2行目に追加する。
この新しい複合状態(s1,q1)から遷移可能な遷移事象を列挙して、システム状態遷移系の状態およびシナリオ状態遷移系の状態を遷移させる。状態s1から発生可能な事象を調べると、図3の表から、商品の価格を登録する事象spのみであることが分かり、またq1から発生可能な事象を調べると図6の表から事象spのみであることが分かる。よってこれらのANDを取ると事象spとなり、複合状態(s1,q1)において発生可能な遷移事象は事象spのみとなる。よって、複合状態(s1,q1)を遷移事象spによって遷移させ、遷移先の複合状態は(s2,q2)となる。つまり複合状態遷移((s1,q1),sp,(s2,q2))が得られる。なお状態s2は(stock=((Tea 0)), price=((Tea 120))、(amount=0))である。
複合状態(s2,q2)は新しく得られたものであるため、これを図10の表の3行目に追加する。以降上記と同様の処理を、新しい複合状態が発生しなくなるまで、繰り返し行う。
なお図10の表では同じシステム状態を含む複合状態については同一の行にまとめて記載している。たとえば複合状態(s2,q2)と(s2,q6)はそれぞれ同一のシステム状態s2を含むため、同一の行に記載している。
また、図10の表の (ok,ng)は、システム状態遷移系では許可されているがシナリオ状態遷移系では制限されているため遷移ができなかったことを意味する。たとえば4行4列の(ok,ng)は、4行目に対応する状態s3での10円コイン投入c1は可能だが、状態q3またはq6ではこの遷移事象(10円コイン投入c1)の発生が許可されていないため、状態s3で10円コインを投入することが制限されている。
上述のように新たな複合状態が発生しなくなるまで繰り返し処理を行い、探索が終了したら、探索により得られた複合状態遷移系(すなわち図10の表)を、システム状態遷移系へ射影する。すなわち、複合状態遷移系においてシナリオ状態の違いを無視し、同じシステム状態をもつ複数の複合状態を一つのシステム状態へ纏める。具体的には、図10の表で、たとえば2行目の(s2,q2),(s2,q6)を1つに纏めてs2とし、(s3,q3)をs3とするようにして射影を行。図10の表をシステム系に射影すると、図11の表が得られる。なお(ok,ng)は射影時に消去している。この図11の表が、簡素化されたシステム状態遷移系に相当する。
図2は、システム状態遷移系生成部13の動作アルゴリズムを示すフローチャートである。
まずリストX、リストS、リストTを初期化する(S11)。初期化によりリストXおよびリストSには、初期の複合状態(s0,q0)が格納され、リストTは空状態とされる。リストSは、本フローでの状態探索により到達した複合状態を格納するものであり、初期の複合状態(s0,q0)はすでに到達したものとしてリストSに格納される。リストXは探索候補となる複合状態を格納するものであり、ここでは初期の複合状態(s0,q0)が探索候補として格納されている。リストTは状態探索で得られた複合状態遷移((s,q),e,(s’,q’))を格納するものであり、現時点ではまだ複合状態遷移は得られていないためリストTは空である。なおeは遷移事象を表す。
ここでs0は、システムの複数の状態変数の初期値を定めた第1初期状態に相当する。q0はシナリオ状態遷移系における初期状態である第2初期状態に相当する。リストTはたとえば本発明の第1の一時記憶手段、リストXはたとえば本発明の第2の一時記憶手段に相当する。第1および第2の一時記憶手段は演算装置の内部バッファであってもよいし、DRAMやSRAMなどのメモリ装置の記憶領域であってもよい。
ステップS12では、リストXが空かどうかを確認し、ここでは空でないため、リストXから1つの要素(複合状態)を“x”として取り出す。ここでは複合状態(s0,q0)がxとして取り出される。
全事象の集合E(rg,sp,ss,c10,c100,pg,rc)の各事象eについて、ステップS13で選択した複合状態において発生可能か否かの検査を行い検査結果に応じた処理を行う(EXPAND(x,e))(S14)。具体的には、個々の事象e毎に、ステップS21〜S25の処理を行う。
まず複合状態xにおいて事象eが発生可能か否かを動作仕様11およびシナリオ状態遷移系15に基づき判断する(S21)。すなわち事象eが、複合状態xにおける状態s(第1初期状態あるいは第1状態)において発生可能であるか、および複合状態における状態q(第2初期状態あるいは第2状態)において発生可能であるか否かを判断する。事象eが状態sおよび状態qの両方において発生可能であるとき、事象eは状態sおよび状態qにおいて発生可能な共通の遷移事象である。本ステップS21ではこのように両状態において発生可能な共通の遷移事象を検出する。
複合状態xにおいて事象eが発生可能でないときは処理を終了する(S21のNO)。発生可能であるときは(S21のYES)、複合状態xを事象eにより遷移させ、遷移先の複合状態x’を得る(S22)。すなわち状態s(第1初期状態あるいは第1状態)およびq(第2初期状態あるいは第2状態)をそれぞれ事象eにより遷移させて、遷移先の状態s’および遷移先の状態q’(すなわち遷移先の第1状態および遷移先の第2状態)を求める。遷移先の状態s’および遷移先の状態q’のペア(s’,q’)が複合状態x’に相当する。
複合状態x’は、初めて到達した複合状態か否かを判断し(S23)、初めて到達した複合状態であるときは(YES)、リストXへ複合状態x’を格納する(S24)。
リストXへ複合状態x’を格納した後、または複合状態x’が初めて到達した複合状態でないと判断された場合(S23のNO)、リストSへ複合状態x’を追加し(リストSにすでに同じ複合状態が存在するときは追加しなくてよい)、また、リストTへ、複合状態遷移(x,e,x’)を追加する(S25)。
個々の事象eについてステップS21〜S25の処理を行ったら、ステップS12に戻り、リストXが空でないかどうか判断し、空でないときは(NO)、ステップS13に進み、上述の処理を繰り返し行う。
リストXが空のときは(ステップS13のYES)、ステップS15に進み、リストS内の各要素(各複合状態)と、リストT内の各要素(各複合状態遷移)に含まれる複合状態を、システム状態に射影する(S15)。たとえばリストS内の(s0,q0)をs0に射影し、(s2,q2)と(s2,q6)を纏めてs2へ射影し、また、((s0,q0),rg,(s1,q1))を(s0,rg,s1)へ射影する等である(図10および図11参照)。そして射影後のリストSおよび射影後のリストTの少なくとも後者を出力する。射影後のリストT内の各要素の集合はたとえばシステム状態遷移系16に相当する。
上記フローのステップS12ではリストXから要素(複合状態)を取り出して(抜き出して)いるが、取り出すのではなく、リストXから未選択の要素を選択するようにしてもよい。この場合、リストXから要素を選択する際、当該要素には選択済みの印を付与し、リストX内のすべての要素が選択済みになるまで繰り返し処理を行い、すべての要素が選択済みになったら、ステップS15に進むようにしてもよい。リストXから要素を取り出すことは、要素を選択することの一例に過ぎず、要素を選択することは要素を取り出すことを包含する。
また、上記フローでは、ステップS25でリストTへ複合状態遷移(x,e,x’)を追加し、ステップS15でシステム状態への射影を行ったが、リストTへの格納時に、射影を行ってもよい。すなわち、リストTへの格納時に、複合状態遷移(x,e,x’)を(s,e,s’)に射影し、(s,e,s’)を格納するようにしてもよい。すなわち、遷移元状態s、遷移事象e、遷移先状態s’を一組としてリストTにステップS25において格納するようにしてもよい。このことはリストSについても同様に当てはまる。このように射影を行うタイミングはステップS15の出力時であっても、ステップS25でのリストTまたはリストSへの格納時であってもよい。
以下、シナリオ状態遷移系15の制限を加味して生成したシステム状態遷移系の例を示す。
図12は、図6のシナリオ状態遷移系の制限を考慮して生成された、簡素化されたシステム状態遷移系(例1)を示す(図11の表に対応)。状態数は13、遷移数は22存在する。
図13は、図8の表のシナリオ状態遷移系(事象制限DFA)の制限を考慮して生成された、簡素化されたシステム状態遷移系(例2)を示す。状態数は7、遷移数も7存在する。
これらに対し、図3の動作仕様からシナリオ状態遷移系を考慮しないで生成したシステム状態遷移系(従来方法によるシステム状態遷移系)を、すでに説明した図5に示す。状態数は22、遷移数は46存在する。
このように簡素化されたシステム状態遷移系が得られると、上述したように、遷移パス生成部17によりこのシステム状態遷移系からテストケースを生成することができる。生成されたテストケースの例を以下に示す。
図14の表は、図12のシステム状態遷移系から生成したテストケースの事例を示す。事例の一部のみ表示しているがテスト長(遷移系列の長さ)は35である。すなわち、35回の連続的な遷移により、上記22個の遷移を網羅できる。なおテストケース(遷移パス)は必ず初期状態s0から開始するものとする(以下同様)。
図15の表は、図12のシステム状態遷移系から生成したテストケースの事例を示す。テスト長(遷移系列の長さ)は7である。すなわち7回の連続的な遷移で、上記7個の遷移を網羅している。
これらに対し、シナリオ状態遷移系の制限を考慮しないシステム状態遷移系(従来方法によるシステム状態遷移系)から生成したテストケースの事例を図16に示す。事例の一部のみ表示しているがテスト長(遷移系列の長さ)は104である。すなわち104回の連続的な遷移で46個の遷移を網羅している。
以下の比較表は、従来方法と、上記例1および例2間の比較を示す。
Figure 0005106447
この比較表から理解されるように、シナリオ(事象制限の記述)の選び方によりシステム状態遷移系の規模を制御して、システム状態遷移系から得られるテストケースの規模を制御できることが分かる。
以上のように、本実施形態によれば、遷移事象の順序関係の制約を定めたシナリオ状態遷移系を導入し、このシナリオ状態遷移系に基づき動作仕様からシステム状態遷移系を生成するようにしたため、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱うことができると同時にシステム状態遷移系の規模およびテストケースの規模を抑えることができる。
Figure 0005106447
Figure 0005106447
Figure 0005106447
11:システム動作仕様記述
12:シナリオ情報(遷移事象順序記述および対応情報)
13:システム状態遷移系生成部
14:シナリオ状態遷移系生成部
15:シナリオ状態遷移系(事象制限DFA)
16:システム状態遷移系
17:遷移パス生成部
18:テストケース(遷移パス)

Claims (4)

  1. 対象システムのテストケースを生成するテストケース生成装置であって、
    それぞれの値の組により第1状態を表す複数の第1変数と、複数の遷移事象と、前記複数の遷移事象のそれぞれが発生するために前記複数の第1変数により満たされる必要のある事前条件と、前記複数の遷移事象のそれぞれが発生したときに実行する前記第1変数の更新式とを記述したシステム動作仕様記述を記憶する第1の記憶部と、
    前記複数の遷移事象の発生に応じて、第2変数の値により表される複数の第2状態間の遷移を記述したシナリオ状態遷移系を記憶する第2の記憶部と、
    前記システム動作仕様記述と前記シナリオ状態遷移系とを元に前記複数の遷移事象の発生に応じた前記第1状態間の遷移を記述したシステム状態遷移系を生成するシステム状態遷移系生成部と、
    前記システム状態遷移系の各遷移を順次辿ることにより前記システム状態遷移系のすべての遷移を網羅する遷移事象系列であるテストケースを生成するテストケース生成部と、
    前記テストケースを出力するテストケース出力部と、を備え、
    前記システム状態遷移系生成部は、
    データを一時的に格納するための第1および第2の一時記憶手段を有し、
    前記複数の第1変数の初期値を定めた第1初期状態を生成し、
    前記シナリオ状態遷移系における初期状態である第2初期状態を特定し、
    前記第1初期状態と前記第2初期状態とにおいて発生可能な共通の遷移事象を検出し、
    前記第1初期状態および前記第2初期状態をそれぞれ検出遷移事象により遷移させて遷移先の第1状態および遷移先の第2状態を求め、前記第1初期状態、前記検出遷移事象、遷移先の前記第1状態を一組として前記第1の一時記憶手段に格納し、
    前記遷移先の第1および第2状態のペアである複合状態を前記第2の一時記憶手段に格納し、
    (A)前記第2の一時記憶手段においてまだ選択されていない前記複合状態を選択し、
    (B)選択した複合状態に含まれる第1および第2状態のそれぞれにおいて発生可能な共通の遷移事象を検出し、前記第1および第2状態をそれぞれ検出遷移事象により遷移させて遷移先の第1および第2状態を求め、前記選択した複合状態における遷移元の第1状態、前記検出遷移事象、求めた遷移先の第1の状態を一組として前記第1の一時記憶手段に格納し、
    (C)(B)で求められた前記遷移先の第1および第2状態のペアである複合状態が前記第2の一時記憶手段に存在ないときは前記複合状態を前記第2の一時記憶手段に格納し、
    (A)〜(C)を前記第2の一時記憶手段に含まれるすべての前記複合状態が選択済みになるまで繰り返し行い、繰り返し処理が終了した後、前記1の一時記憶手段における各前記組の集合である前記システム状態遷移系を取得する
    ことを特徴とするテストケース生成装置。
  2. 前記複数の遷移事象が生起する順序のシナリオを記述したシナリオ記述と、
    前記遷移事象毎に前記遷移事象が生起可能な遷移元第2状態と、前記第2状態で前記遷移事象が生起したときの遷移先第2状態との対応を記述した対応情報と、を記憶する第3の記憶部と、
    前記対応情報に基づき初期状態から前記シナリオ記述に従って遷移事象を発生させることにより前記シナリオ状態遷移系を生成するシナリオ状態遷移系生成部と
    をさらに備えた請求項1に記載のテストケース生成装置。
  3. コンピュータにおいて、対象システムのテストケースを生成するテストケース生成方法であって、
    それぞれの値の組により第1状態を表す複数の第1変数と、複数の遷移事象と、前記複数の遷移事象のそれぞれが発生するために前記複数の第1変数により満たされる必要のある事前条件と、前記複数の遷移事象のそれぞれが発生したときに実行する前記第1変数の更新式とを記述したシステム動作仕様記述を記憶する第1の記憶部と、
    前記複数の遷移事象の発生に応じて、第2変数の値によって表される複数の第2状態間の遷移を記述したシナリオ状態遷移系を記憶する第2の記憶部と、にアクセスするステップと、
    前記システム動作仕様記述と前記シナリオ状態遷移系とを元に前記複数の遷移事象の発生に応じた前記第1状態間の遷移を記述したシステム状態遷移系を生成するシステム状態遷移系生成ステップと、
    前記システム状態遷移系の各遷移を順次辿ることにより前記システム状態遷移系のすべての遷移を網羅する遷移事象系列であるテストケースを生成するテストケース生成ステップと、
    前記テストケースを出力するテストケース出力ステップと、を備え、
    前記システム状態遷移系生成ステップは、
    前記複数の第1変数の初期値を定めた第1初期状態を生成し、
    前記シナリオ状態遷移系における初期状態である第2初期状態を特定し、
    前記第1初期状態と前記第2初期状態とにおいて発生可能な共通の遷移事象を検出し、
    前記第1初期状態および前記第2初期状態をそれぞれ検出遷移事象により遷移させて遷移先の第1状態および遷移先の第2状態を求め、前記第1初期状態、前記検出遷移事象、遷移先の前記第1状態を一組として第1の一時記憶手段に格納し、
    前記遷移先の第1および第2状態のペアである複合状態を第2の一時記憶手段に格納し、
    (A)前記第2の一時記憶手段においてまだ選択されていない前記複合状態を選択し、
    (B)選択した複合状態に含まれる第1および第2状態のそれぞれにおいて発生可能な共通の遷移事象を検出し、前記第1および第2状態をそれぞれ検出遷移事象により遷移させて遷移先の第1および第2状態を求め、前記選択した複合状態における遷移元の第1状態、前記検出遷移事象、求めた遷移先の第1の状態を一組として前記第1の一時記憶手段に格納し、
    (C)(B)で求められた前記遷移先の第1および第2状態のペアである複合状態が前記第2の一時記憶手段に存在しないときは前記複合状態を前記第2の一時記憶手段に格納し、
    (A)〜(C)を前記第2の一時記憶手段に含まれるすべての前記複合状態が選択済みになるまで繰り返し行い、繰り返し処理が終了した後、前記1の一時記憶手段における各前記組の集合である前記システム状態遷移系を取得する
    ことを特徴とするテストケース生成方法。
  4. 請求項3に記載の各ステップをコンピュータに実行させるためのコンピュータプログラム。
JP2009056514A 2009-03-10 2009-03-10 テストケース生成装置およびその生成方法、ならびにコンピュータプログラム Expired - Fee Related JP5106447B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009056514A JP5106447B2 (ja) 2009-03-10 2009-03-10 テストケース生成装置およびその生成方法、ならびにコンピュータプログラム
US12/719,945 US20100235685A1 (en) 2009-03-10 2010-03-09 Device and method for generating test case and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009056514A JP5106447B2 (ja) 2009-03-10 2009-03-10 テストケース生成装置およびその生成方法、ならびにコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2010211481A JP2010211481A (ja) 2010-09-24
JP5106447B2 true JP5106447B2 (ja) 2012-12-26

Family

ID=42731673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009056514A Expired - Fee Related JP5106447B2 (ja) 2009-03-10 2009-03-10 テストケース生成装置およびその生成方法、ならびにコンピュータプログラム

Country Status (2)

Country Link
US (1) US20100235685A1 (ja)
JP (1) JP5106447B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5149225B2 (ja) * 2009-03-16 2013-02-20 株式会社東芝 テストケース生成装置およびテストケース生成方法
EP2574997B1 (de) * 2011-09-29 2016-06-15 Siemens Aktiengesellschaft Verfahren zur Einstellung eines Betriebszustandes
KR20140097927A (ko) * 2013-01-30 2014-08-07 삼성전자주식회사 소프트웨어의 보안을 높이는 방법
US9892027B2 (en) * 2014-07-09 2018-02-13 Fujitsu Limited Event-driven software testing
US9619362B2 (en) * 2014-11-18 2017-04-11 Fujitsu Limited Event sequence construction of event-driven software by combinational computations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744228A (ja) * 1993-07-26 1995-02-14 Toshiba Corp シーケンス制御システムのシミュレーション装置
US5394347A (en) * 1993-07-29 1995-02-28 Digital Equipment Corporation Method and apparatus for generating tests for structures expressed as extended finite state machines
JP3415310B2 (ja) * 1994-01-26 2003-06-09 株式会社東芝 テストケース作成装置
JPH10207727A (ja) * 1997-01-23 1998-08-07 Hitachi Ltd テストプログラム自動生成システム
US6647513B1 (en) * 2000-05-25 2003-11-11 International Business Machines Corporation Coverage-based test generation for microprocessor verification
US6505342B1 (en) * 2000-05-31 2003-01-07 Siemens Corporate Research, Inc. System and method for functional testing of distributed, component-based software
CA2355974C (en) * 2001-08-24 2004-07-13 Wayne Biao Liu Space reduction in compositional state systems
EP1503310A1 (en) * 2003-08-01 2005-02-02 Sap Ag Computer-implemented method and system to support in developing a process specification for a collaborative process
EP1548581A3 (en) * 2003-12-19 2007-08-08 Klockwork Corp. Methods, apparatus and programs for system development
JP2008071135A (ja) * 2006-09-14 2008-03-27 Nec Corp 検証処理装置
JP5107131B2 (ja) * 2008-04-28 2012-12-26 株式会社東芝 テストケース生成装置およびその生成方法、ならびにテストケース生成のためのプログラム

Also Published As

Publication number Publication date
JP2010211481A (ja) 2010-09-24
US20100235685A1 (en) 2010-09-16

Similar Documents

Publication Publication Date Title
JP4047053B2 (ja) 繰り返しを含む順序パターンを用いた検索装置および方法
JP5106447B2 (ja) テストケース生成装置およびその生成方法、ならびにコンピュータプログラム
Kessentini et al. Automated metamodel/model co-evolution using a multi-objective optimization approach
JP5561135B2 (ja) データ生成方法,プログラムおよび装置
JP2006139427A (ja) データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
JP5164920B2 (ja) テストデータ生成方法及び装置及びプログラム
JP5164919B2 (ja) テストデータ生成方法及び装置及びプログラム
US20180196738A1 (en) Test input information search device and method
Lustig et al. Synthesis from recursive-components libraries
JP5523526B2 (ja) テストパス中に複数の参照アクセスをもつテスト用のデータ生成装置及び方法及びプログラム
JP5321286B2 (ja) プログラムモデル検査方法、プログラムモデル検査プログラム
JP4804880B2 (ja) ビジネスプロセステスト設計支援装置、ビジネスプロセス試験方法、及びコンピュータプログラム
JP2007172223A (ja) リポジトリシステム、リポジトリシステムの管理方法、及びそのプログラム
JP5900197B2 (ja) 経路条件選択装置、該プログラム、及び該方法
JP2016115287A (ja) テストケース生成プログラム、テストケース生成方法及びテストケース生成装置
Seker Component-based software modeling based on Shannon's information channels
JP2013161182A (ja) テスト項目生成装置、テスト項目生成方法
JP2013012082A (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
JP2010244439A (ja) チェックリスト生成装置、チェックリスト生成方法及びチェックリスト生成プログラム
JP5417359B2 (ja) 文書評価支援システム、及び文書評価支援方法
JP5009243B2 (ja) 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法
Vasilache DePAT: a framework for specification-based automatic test generation
Dechsupa et al. Compositional formal verification for business process models with heterogeneous notations using colored Petri Net
JP5523525B2 (ja) テストパス中に更新アクセスを持つテスト用のデータ生成装置及び方法及びプログラム
JP2014056306A (ja) Dbデータデバッグ支援装置及び方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120822

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: 20120904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121002

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees