JP7210917B2 - 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム - Google Patents

検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム Download PDF

Info

Publication number
JP7210917B2
JP7210917B2 JP2018131115A JP2018131115A JP7210917B2 JP 7210917 B2 JP7210917 B2 JP 7210917B2 JP 2018131115 A JP2018131115 A JP 2018131115A JP 2018131115 A JP2018131115 A JP 2018131115A JP 7210917 B2 JP7210917 B2 JP 7210917B2
Authority
JP
Japan
Prior art keywords
state
transition
transitions
verification information
information generation
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.)
Active
Application number
JP2018131115A
Other languages
English (en)
Other versions
JP2020009271A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2018131115A priority Critical patent/JP7210917B2/ja
Publication of JP2020009271A publication Critical patent/JP2020009271A/ja
Application granted granted Critical
Publication of JP7210917B2 publication Critical patent/JP7210917B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、システムの検証に用いる検証情報を生成する検証情報生成装置、検証情報生成方法、及び検証情報生成プログラムに関する。
近年、情報通信技術システム(ICT(Information and Communication Technology)システム)などは社会を支えるインフラの一つとなっており、その重要性は増している。一方で、ICTシステムの大規模化、複雑化が進んでおり、その構築又は変更の実施は困難である。そこで、ICTシステムの構築又は変更を効率的に行うことを目的とした、構成管理技術が注目されている。
例えば、ICTシステムの構成管理技術は、一般的に、ICTシステムのモデルを開発し、開発したモデルを用いて、ICTシステムの構築又は変更をする。モデル開発を伴うICTシステムの構成管理技術の一つに、ICTシステムが有する部品(状態要素)の構築又は変更する手順を、自動的に生成する技術が知られている。
特許文献1及び非特許文献1には、システムの構築又は変更後の状態がモデルとして宣言的に記述された情報を用いて、システムの現在の状態と、システムの構築後又は変更後の状態との差分を計算し、システムを構築又は変更する手順を自動的に算出する技術が開示されている。
なお、特許文献1及び非特許文献1で開示されている、システムの状態をモデルとして宣言的に記述する状態モデルについて説明する。なお、特許文献1では、「状態モデル」を「状態マシン群」と呼び、「状態要素」を「状態マシン」と呼んでいる。
状態モデルは、システムを変更する手順において、手順を計算するのに必要な情報を表したデータモデルで、状態要素と状態要素間の依存性とにより構成される。
状態要素は、独立して状態を持つシステム構成中の部品を表し、手順の計算において考慮される最小の構成単位となる。また、状態要素は、排他的な複数の状態と、その複数の状態間の状態遷移(遷移)により定義される。状態は、システムがとり得る状態を表す。また、状態は、複数の状態を定義でき、必ず一つの現在の状態(現在状態)と、現在の状態から要求により変化する任意の数の状態(要求状態)を含む。
遷移は、システムがどの状態からどの状態へ変化可能かを表し、同一の状態要素における任意の状態間の変化と定義できる。
次に、依存性は、ある状態要素における遷移から、他の状態要素の状態に対して定義される。すなわち、前者の状態要素がその遷移を行うためには、後者の状態要素がその状態でなければならないという条件を表す。
なお、状態要素はシステム構成中の部品に対応する。そして、状態要素が行う遷移は、システム構築又は変更の全体の手順のうち部品が行う単一の工程と同義である。
図1を用いて状態モデルについて具体的に説明をする。図1は、状態モデルを説明するための図である。図1では、状態要素TC、UV(例えば、ソフトウェアなどの部品)は長方形で表し、状態f、tは楕円形で表している。なお、状態要素TC、UVは、状態要
素それぞれを識別する識別情報である。
また、図1では、現在状態fを二重線の楕円形で表し、要求状態tを黒塗りの楕円形で表している。現在状態fは、例えば、ソフトウェアがインストールされていない状態を表し、要求状態tは、例えば、ソフトウェアがインストールされている状態を表している。
更に、状態遷移を実線の矢印線で表し、依存性を破線の矢印線で表している。なお、図1では、依存性は、状態要素TCから要求状態tへ至る矢印線で表している。これは、状態要素TCにおける状態遷移が、要求状態tに依存していることを表す。言い換えれば、ある状態要素TCが、他の状態要素UVの状態に依存する状態遷移を含む場合、状態要素TCは状態要素UVに依存する。又は、状態要素TCは状態要素UVへの依存性を持つ。
続いて、モデル開発の検証に関するテスト技術について説明する。システムの構成管理におけるモデル開発では、モデルの妥当性を確認するために、ソフトウェア開発と同様に、開発物が期待通りのものかを検証する必要がある。しかし、モデル開発の検証に関するテスト技術には、現状デファクトが存在しないため、モデル開発者がソフトウェアテスト技術を流用するなどして、独自のテストを行うにとどまる。
テストケース(検証情報)は一般的に、ソフトウェアが多様な入力内容や利用環境に対して適切に動作することを確認するため、それらの多くのパラメータの組み合わせを網羅するよう作成する。ところが、その組み合わせの数は膨大であるため、テスト工数を現実的なものに抑えるためには、組み合わせの取捨選択が必要となる。
そこで、モデル開発への適用が見込めるソフトウェアテスト技術の一つとしてペアワイズ法がある。ペアワイズ法は、テストの品質(例えば、バグを発見できる精度)を大きく損ねることなく、テストケースに採用する組み合わせを削減できる技術である。具体的には、全てのパラメータ間で全ての値の組み合わせを網羅するテストケースを作成するのではなく、任意の二つのパラメータに着目したとき、その二つのパラメータ間で全ての値の組み合わせが網羅されるテストケースを作成する。
ウェブサイトのテストケースの作成を例に説明する。図2は、ペアワイズ法を説明するための図である。具体的には、図2は、ユーザがウェブサイトにアクセスする際に利用する、オペレーティングシステム、ブラウザ、検索エンジンを組み合わせた、テストケースを示している。すなわち、ユーザが使用するパラメータの候補として、オペレーティングシステムではOS_W又はOS_Lを、ブラウザではBR_C又はBR_F、検索エンジンではSE_G又はSE_Yを想定したテストケースを示している。
この場合、パラメータそれぞれがとり得る値は二種類であるため、全てのパラメータ間での全ての値の組み合わせを網羅するテストケースを作成すると、8個(2の3乗個)のテストケースが作成される。
しかし、ペアワイズ法では、図2に示すように、4個のテストケースのみが作成される。理由は、図2のどの二つのパラメータ(列)に着目しても、それらのパラメータ間で全ての値を組み合わせた4種類(2の2乗)が網羅されている。このように、任意の二つのパラメータに着目したとき、その二つのパラメータ間で全ての値の組み合わせが網羅されるテストケースを作成するのがペアワイズ法である。
また、ペアワイズ法では、ソフトウェアの不具合は、多くの場合、少ない要素(例えば、二つか三つの要素)間の組み合わせの問題により発生するという経験則に基づいている。従って、ペアワイズ法では、上述したテストの品質を大きく損ねることなく、テストケ
ース数を削減できる。
更に、一般的なペアワイズ法は、入力や環境をパラメータとしたテスト技術であるため、状態モデルのテストには適さない。対して、状態遷移系を対象としたペアワイズ法は、状態モデルの基本的な概念は状態遷移系と同様であるため、状態モデルのテストに親和性があると考えられる。
関連する技術として、非特許文献2には、状態をパラメータとし、遷移を値として、特定の条件を満たしたパスを全て列挙し、列挙したすべてのパスをテストケースとする技術が開示されている。
また、非特許文献3には、テスト対象をモデル化した状態遷移系のパスを通るイベント列を列挙し、各イベント列に含まれるイベントの各パラメータの値をクラス分割し、イベント列ごとに、イベントをパラメータとし、クラスを値としたペアワイズ法を用いてテストケースを生成する技術が開示されている。
特開2015-215885号公報
しかしながら、非特許文献2、3に開示されている、上述したモデル開発の検証に関するテスト技術では、例えば、ICTシステムがとり得る状態の数が膨大であるにもかかわらず、それら膨大な状態を予め全て用意した上で、テスト処理を行う必要がある。また、実際のシステムは非常に大規模なため、それを現実的な時間で処理するためには、膨大な計算資源が必要になる。
例えば、ICTシステムがとり得る状態を全て記憶できるサイズの記憶部などが必要になるが、通常そのような条件を満たすことは難しい。仮に、そのような条件を満たせたとしても、構築又は変更に関する処理の処理速度は大幅に低下してしまう。
また、非特許文献2、3に開示されている、上述したモデル開発の検証に関するテスト技術では、システム全体から見た状態が異なる場合、部品をペアワイズ法における異なるパラメータとして扱う。そのため、ICTシステムを構成する殆どの部品の状態が同じだとしても、部品の一部でも状態が異なる場合、パラメータ間で全てのパラメータ値(ICTシステムに対する操作)の組み合わせを網羅する検証を行う。
ペアワイズ法における、ICTシステムの不具合は、少数の部品間における状態と、操作の組み合わせとにより発生するケースが多いという考え方からすれば、上述したテスト技術における検証は、粒度が細かすぎるため、テストケースが膨大になる。そのため、膨大な計算資源が必要になる。
本発明の目的の一例は、システムにおける計算資源を削減する検証情報生成装置、検証情報生成方法、及び検証情報生成プログラムを提供することにある。
上記目的を達成するため、本発明の一側面における検証情報生成装置は、
システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、状態遷移検出部と、
状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、状態遷移ペア管理部と、
前記状態遷移検出部で検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、遷移選択部と、
前記遷移選択部が選択した前記遷移に基づいてテストケースを生成する、テストケース生成部と、
を有することを特徴とする。
また、上記目的を達成するため、本発明の一側面における検証情報生成方法は、
(a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
(b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、(c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
(d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面における検証情報生成プログラムは、
コンピュータに
(a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
(b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、(c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
(d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
を実行させることを特徴とする。
以上のように本発明によれば、システムにおける計算資源を削減することができる。
図1は、状態モデルを説明するための図である。 図2は、ペアワイズ法を説明するための図である。 図3は、検証情報生成装置の一例を示す図である。 図4は、検証情報生成装置を有するシステムを示す図である。 図5は、状態モデルの一例を示す図である。 図6は、状態モデルの一例を示す図である。 図7は、テストケース(遷移列)の一例を示す図である。 図8は、検証情報生成装置の動作の一例を示す図である。 図9は、ステップA3の疑似コードの一例を示す図である。 図10は、ステップA3の動作の一例を示す図である。 図11は、検証情報生成装置を実現するコンピュータの一例を示す図である。
(実施の形態)
以下、本発明の実施の形態について、図3から図11を参照しながら説明する。
[装置構成]
最初に、図3を用いて、本実施の形態における検証情報生成装置の構成について説明する。図3は、検証情報生成装置の一例を示す図である。
図3に示すように、検証情報生成装置1は、システム(例えば、ICTシステムなど)における計算資源を削減するための装置である。検証情報生成装置1は、状態遷移検出部2と、状態遷移ペア管理部3と、遷移選択部4と、テストケース生成部5とを有する。
このうち、状態遷移検出部2は、システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する。状態遷移ペア管理部3は、状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する。遷移選択部4は、状態遷移検出部2で検出した遷移のうち、まだ選択していない遷移を実行した場合に検出される状態遷移ペア情報の数が最も多い遷移を選択する。テストケース生成部5は、遷移選択部4が選択した遷移に基づいてテストケースを生成する。
このように、本実施の形態では、ペアワイズ法の考えに則り、予め生成した状態遷移ペア情報を用いて、必要な範囲のテストケースを生成する。そのため、従来のようにシステムがとり得る膨大な数の状態を、予め全て用意してからシステムの構築又は変更に関する処理を行う必要がないので、処理に必要な計算資源を削減することができる。また、計算資源を削減できるため、より大規模なシステムの検証ができる。更に、テストケースの数を削減できるので、検証をする工数も削減できる。
続いて、図4を用いて、本実施の形態における検証情報生成装置1の構成をより具体的に説明する。図4は、検証情報生成装置を有するシステムを示す図である。
図4に示すように、本実施の形態における検証情報生成装置1は、状態遷移検出部2と、状態遷移ペア管理部3と、遷移選択部4と、テストケース生成部5とに加えて、入力装置6と、出力装置7、記憶部8とを有する。
状態遷移検出部2は、対象とする状態CS1が遷移できる遷移を検出する。具体的には、状態遷移検出部2は、システムに対応する、複数の状態要素を有する状態モデルを取得し、取得した状態モデルを用いて、システム全体の現在の状態CS1を検出する。続いて、状態遷移検出部2は、検出した状態CS1を、検出済みの状態として、検出済みの状態を記憶する状態集合部ES1に記憶する。状態集合部ES1は、検証情報生成装置1内部に設けられている記憶部8、又は、その外部に設けられている不図示の記憶部に設けられる。続いて、状態遷移検出部2は、状態CS1から実行可能な遷移を全て取得する。
また、状態遷移検出部2は、対象とする状態CS1が遷移することで得られる状態NS1を検出し、検出した状態NS1を次の対象とする状態CS1とする。
状態遷移ペア管理部3は、状態遷移ペア管理部3内部の記憶部、又は、上述した記憶部8などに予め設けられる状態遷移ペア記憶部MI1を管理する。状態遷移ペア記憶部MI1は、状態要素が状態を遷移した場合における、遷移の主体と異なる状態要素の状態と、遷移の主体となる状態要素の遷移とを関連付けた状態遷移ペア情報を、複数有する。
具体的には、状態遷移ペア管理部3は、状態遷移検出部2が状態CS1を遷移させる場合、状態遷移ペア記憶部MI1を参照して、遷移の主体と異なる状態要素ごとに、遷移させる前の状態要素の状態と、遷移の主体となる状態要素の遷移とに一致する、状態遷移ペア情報を検出する。なお、状態遷移ペア情報を検出した場合、状態遷移ペア管理部3は、状態遷移ペア情報に検出したことを示すチェック情報を関連付ける(チェックする)。
更に、図5、図6を用いて具体的に状態遷移ペア情報の生成方法について説明する。図5、図6は、状態モデルの一例を示す図である。図5に示すシステムは、状態要素(部品)A、Bを有している。部品A、Bそれぞれは、状態fと状態tとを有する。また、部品A、Bが有する状態f、tは、状態fから状態tへ遷移(f→t)する。また、状態tから状態fへ遷移(t→f)する。
図5、6では、状態要素A、B、C(例えば、ソフトウェアなどの部品)は長方形で表し、状態f、tは楕円形で表している。また、図5、6では、現在状態fを二重線の楕円形で表し、要求状態tを黒塗りの楕円形で表している。例えば、現在状態fは、例えば、ソフトウェアがインストールされていない状態を表し、要求状態tは、例えば、ソフトウェアがインストールされている状態を表している。なお、状態遷移を実線の矢印線で表し、依存性を破線の矢印線で表している。
例えば、部品A、Bそれぞれの初期状態が状態fである場合に、部品Aが状態fから状態tへ遷移(A:f→t)したとする。この場合、状態遷移ペア管理部3は、部品Bの状態fと、部品Aの遷移(A:f→t)とを関連付けて状態遷移ペア情報として、状態遷移ペア記憶部MI1に記憶する。
続けて、部品Aが状態tで、部品Bが状態fである場合、部品Bが状態fから状態tへ遷移(B:f→t)したとする。この場合、状態遷移ペア管理部3は、部品Aの状態fと、部品Bの遷移(B:f→t)とを関連付けて状態遷移ペア情報として、状態遷移ペア記憶部MI1に記憶する。
このように、状態遷移ペア情報の全ての組み合わせを、予め状態遷移ペア記憶部MI1に記憶する。ただし、状態遷移ペア管理部3は、依存関係により、成立しない状態遷移ペア情報は状態遷移ペア記憶部MI1に記憶しない。図5において、予め状態遷移ペア記憶部MI1に記憶する状態遷移ペア情報の組み合わせを以下に示す。
(A:f,B:f→t)
(A:f,B:t→f)
(A:t,B:f→t)
(B:f,A:f→t)
(B:f,A:t→f)
(B:t,A:f→t)
(B:t,A:t→f)
なお、状態遷移ペア情報(A:t,B:t→f)は、図5に示すように、依存関係が存在するため、部品Aが状態tのとき、部品Bは遷移t→fを実行できないからである。
また、システム全体を構成する部品の数が増えても、状態遷移ペア情報の形式には変化はない。図6に示すシステムは、状態要素(部品)A、B、Cを有する。部品A、B、Cそれぞれの初期状態が状態fである場合、部品Aが状態fから状態tへ遷移(A:f→t)したとする。この場合、部品Bの状態fと、部品Aの遷移(A:f→t)とを関連付けて状態遷移ペア情報として、状態遷移ペア記憶部MI1に記憶する。
図6のシステムの部品A、B、Cそれぞれの初期状態が状態fである場合には、いずれも初期状態状態fから部品Aが状態tへ遷移(f→tを実行)した場合、チェックされる状態遷移ペア情報は(B:f,A:f→t)と(C:f,A:f→t)である。
なお、上述した状態遷移検出部2が検出する状態及び状態集合部ES1が記憶する状態と、状態遷移ペア情報として記憶される状態とは、同じ粒度ではない。すなわち、状態遷移検出部2が検出する状態及び状態集合部ES1が記憶する状態は、システム全体の状態である。図6の例であれば、部品Aが状態tかつ部品Bが状態fかつ部品Cが状態fと表される情報である。対して、状態遷移ペアとして保持される状態は、任意の一つの部品の状態を示す。
続いて、状態遷移ペア管理部3が予め生成する状態遷移ペア情報の生成方法について説明する。システムに含まれる任意の状態要素(部品)のペアについて、一方の状態要素の状態と、他方の状態要素の遷移の組み合わせとを全て生成する。ただし、依存性の都合で実現し得ない状態遷移ペア情報は除外する。
例えば、図5における任意の部品の状態遷移ペア情報の一例として、部品Aと部品Bのペアの場合であれば、生成する状態遷移ペア情報は上述した通りである。
これは、部品Aの状態f及びtと部品Bの遷移f→t及びt→f、並びに部品Bの状態f及びtと部品Aの遷移f→t及びt→fの全てのペアを列挙している。ただし、依存性の都合で実現し得ない(A:t,B:t→f)は除く。これを、任意の部品のペア全てについて作成する。例えば、図5のシステムにおける部品のペアはAとBのみだが、図6のシステムにおける部品のペアはAとB、AとC、BとCである。
なお、パラメータの全ての組み合わせについてテストするのではなく、任意の二つのパラメータの組み合わせについてテストするのがペアワイズ法である。
遷移選択部4は、状態遷移検出部2により抽出した遷移のうちで、まだ選択していない遷移から実行することで、チェックされる状態遷移ペア情報の数が最も多い遷移T1を選択する。具体的には、遷移選択部4は、現在の対象である状態CS1から各部品(状態要素)が遷移可能な候補のうち、実行することで状態遷移ペア管理部3が管理するチェック済みの状態遷移ペアが最も多くなる遷移を選択する。
テストケース生成部5は、状態遷移検出部2が状態遷移系を探索した範囲において、システムを検証するためのテストケース(検証情報)を生成する。テストケースは、例えば、システムの初期状態からある状態まで、部品ごとに実行した遷移の列である。部品の遷移は、システム構築又は変更の全体の手順のうち、部品が行う単一の工程と同義であり、遷移の列は、システム構築又は変更の全体の手順と同義である。
図3のシステムにおいて、部品Aが遷移(A:f→t)を実行した後、部品Bが遷移(B:f→t)を実行するという遷移列は、テストケースの一つである。図7は、テストケース(遷移列)の一例を示す図である。なお、図7はイメージであり、図7の形式に限定されるものではない。
入力装置6は、検証情報生成装置1に接続され、状態モデルを検証情報生成装置1へに出力する装置である。出力装置7は、検証情報生成装置1に接続され、検証情報生成装置1から出力されるテストケースを取得する装置である。
[装置動作]
次に、本発明の実施の形態における検証情報生成装置1の動作について図8を用いて説明する。図8は、検証情報生成装置の動作の一例を示す図である。以下の説明においては、適宜図3から図7を参酌する。また、本実施の形態では、検証情報生成装置1を動作させることによって、検証情報生成方法が実施される。よって、本実施の形態における検証情報生成方法の説明は、以下の検証情報生成装置の動作説明に代える。
まず、検証情報生成装置1は、検証対象のシステムの状態モデルM1を取得する(ステップA1)。具体的には、検証情報生成装置1は、入力装置6から出力された状態モデルM1を取得する。続いて、検証情報生成装置1は、状態モデルM1からシステム全体の初期状態IS1を検出する(ステップA2)。
その後、検証情報生成装置1は、初期状態IS1を最初の探索対象とし、再帰的に深さ優先探索を行う(ステップA3)。ステップA3の処理については後述する。続いて、検証情報生成装置1は、ステップA3で記憶した全てのテストケースを出力する(ステップA4)。具体的には、検証情報生成装置1は、出力装置7へテストケースを出力する。
続いて、図9、図10を用いて、ステップA3の動作について詳細に説明する。図9は、ステップA3の疑似コードの一例を示す図である。図10は、ステップA3の動作の一例を示す図である。
最初に、状態遷移検出部2は、現在の対象である状態CS1が検出済みか、又は、状態遷移ペア情報の全てがチェック済みであるか否かを判定する(ステップA131)。
テストケース生成部5は、現在探索対象の状態CS1が状態集合部ES1に記憶されているか、又は、状態遷移ペア管理部3が管理する状態遷移ペア情報の全てがチェック済みである場合(ステップA131:Yes)、その時点における、遷移を記憶する遷移スタックTS1の内容をテストケースとして、上述した記憶部8などに記憶する(ステップA132)。
その後、状態遷移検出部2は、現在のステップA3の再帰処理を終了する。
なお、ステップA3は、ステップ全体で、上述した再帰的な深さ優先探索における再帰一段分の処理を表している。また、後述するステップA141で次の段の再帰に進む。また、ステップA132は、再帰処理全体を終了するのではなく、再帰一段分(ステップA3一つ分)を終了する。従って、次の処理は、一つ前の段の再帰のステップA141となる。なお、ステップA141において、最初の段の再帰であった場合、再帰処理全体が終了する。
続いて、状態遷移検出部2は、現在探索対象の状態CS1が状態集合部ES1に含まれているか、又は、状態遷移ペア管理部3が管理する状態遷移ペア情報の全てがチェック済みでない場合(ステップA131:No)、状態CS1を状態集合部ES1に記憶する(ステップA133)。
具体的には、対象とする状態CS1が初期状態に最初に訪れる場合、現在探索対象の状
態CS1が状態集合部ES1に含まれず、かつ状態遷移ペア情報全てがチェック済みではないので、状態遷移検出部2はステップA133の処理を実行する。一方、現在探索対象の状態CS1が初期状態に戻る(二回目以降訪れる)場合、初期状態は必ず最初に探索済みなので、状態集合部ES1に含まれており、再帰を一段終了する。
なお、状態遷移検出部2は、現在探索対象の状態CS1を探索した場合に、記憶部8に検出済み状態であることを記憶する。例えば、対象とする状態CS1を、状態集合部ES1に追加する。
続いて、状態遷移検出部2は、対象とする状態CS1から実行可能な遷移全て抽出する(ステップA134)。続いて、状態遷移検出部2は、抽出した遷移に、まだ選ばれていない遷移があるか否かを判定する(ステップA135)。状態遷移検出部2は、選ばれていない遷移がある場合(ステップA135:Yes)、ステップA136の処理を実行する。また、選ばれていない遷移がない場合(ステップA135:No)、状態遷移検出部2は、ステップA142の処理を実行する。
続いて、状態遷移検出部2は、選ばれていない遷移がある場合、残りの遷移において新たにチェックされる状態遷移ペア情報があるか否かを判定する(ステップA136)。
残りの遷移において新たにチェックされる状態遷移ペア情報がある場合(ステップA136:Yes)、状態遷移検出部2は、ステップA137の処理を実行する。また、残りの遷移で新たにチェックされる状態遷移ペア情報がない場合(ステップA136:No)、状態遷移検出部2は、ステップA142の処理を実行する。
ステップA137においては、遷移選択部4が、ステップA134において状態遷移検出部2により抽出した遷移のうち、まだ選択していない遷移から実行することで、チェックされる状態遷移ペア情報の数が最も多い遷移T1を選択する。具体的には、遷移選択部4は、現在の対象である状態CS1から各部品が遷移可能な候補のうち、実行することで状態遷移ペア管理部3が管理するチェック済みの状態遷移ペアが最も多くなる遷移を選択する。
続いて、状態遷移検出部2は、例えば、遷移スタックTS1に選択した遷移T1をプッシュする(ステップA138)。続いて、状態遷移検出部2は、対象とする状態CS1が遷移することで得られる状態NS1を検出し、検出した状態NS1を、次の対象とする状態CS1とする。
続いて、状態遷移ペア管理部3は、部品の状態と遷移T1との状態遷移ペア情報をチェック済みにする(ステップA139)。具体的には、状態遷移ペア管理部3は、遷移T1を遷移させる主体である部品と異なる部品それぞれの状態を列挙し、その中の任意の一つの状態と遷移T1と一致する状態遷移ペア情報を全て検出する。そして、状態遷移ペア管理部3は、状態遷移ペア情報に検出したことを示すチェック情報を関連付ける。
続いて、状態遷移検出部2は、現在探索対象の状態CS1が遷移T1することで得られる状態NS1を探索対象として、再帰的に深さ優先探索を行う(ステップA140)。ただし、状態遷移検出部2は、再帰的な深さ優先探索が完了した場合(再帰処理がここまで戻ってきた場合)、遷移スタックTS1から遷移T1をポップする(ステップA141)。
続いて、状態遷移検出部2は、ステップA137において一度も遷移を選んでいないか否かを判定する(ステップA142)。ステップA137において一度も遷移を選んでい
ない場合(ステップA142:Yes)、状態遷移検出部2は、ステップA132の処理を実行する。ステップA137において一度でも遷移を選んでいる場合(ステップA142:No)、状態遷移検出部2は、ステップA3の処理を終了する(再帰一段分の処理を終了する)。
そして、状態遷移検出部2は、ステップA137で選択していない遷移がなくなるまで、ステップA135からA141の処理を繰り返し実行する(ステップA135:Yes)。また、ステップA137で遷移を選択する際、新たにチェックされる状態遷移ペア情報がない遷移だけの場合、ステップA135からA141の繰り返し処理を抜ける(ステップA136:No)。
更に、ステップA135又はステップA136で繰り返し処理を抜けた際、ステップA137で一つも遷移を選択しなかった場合、テストケース生成部5は、その時点での遷移スタックTS1の内容を、テストケースとして記憶部8などに記憶する。すなわち、ステップA134で取得した遷移全てが、新たにチェックされる状態遷移ペア情報がない場合、テストケース生成部5は、その時点での遷移スタックTS1の内容を、テストケースとして記憶部8などに記憶する。そして、状態遷移検出部2は、ステップA3の処理を終了する(再帰一段分の処理を終了する)。
[本実施の形態の効果]
以上のように、本実施の形態によれば、ペアワイズ法の考えに則り、予め生成した状態遷移ペア情報を用いて、必要な範囲のテストケースを生成する。そのため、従来のようにシステムがとり得る膨大な数の状態を、予め全て用意してからシステムの構築又は変更に関する処理を行う必要がないので、処理に必要な計算資源を削減することができる。また、計算資源を削減できるため、より大規模なシステムの検証ができる。更に、テストケースの数を削減できるので、検証をする工数も削減できる。
例えば、状態遷移検出部2は、複数の部品から構成されるICTシステムの状態遷移系を探索するにあたって、遷移選択部4の出力に従い次に実行する遷移を決定しながら探索を行う。また、状態遷移ペア管理部3は、状態遷移検出部2が状態遷移系の遷移を実行する際、遷移の動作主体と異なるICTシステム部品毎に、遷移実行前のICTシステム部品の状態と、実行する遷移とのペア(状態遷移ペア)をチェックする。また、遷移選択部4は、状態遷移検出部2が探索中の状態遷移系の現在状態から実行する遷移を決定するにあたって、遷移の候補のうち、実行することで状態遷移ペア管理部3が管理するチェック済み状態遷移ペアが最も多くなる遷移を選択する。そして、テストケース生成部5は、状態遷移検出部2が状態遷移系を探索した範囲をカバーするテストケースを生成する。
そうすることで、ICTシステムがとり得る膨大な数の状態を、予め全て用意してからICTシステムの構築又は変更に関する処理を行う必要がないので、処理に必要な計算資源を削減することができる。また、計算資源を削減できるため、より大規模なシステムの検証ができる。更に、テストケースの数を削減できるので、検証をする工数も削減できる。
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、図8に示すステップA1からA4、及び、図9、10に示すステップA131からA142を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における検証情報生成装置と検証情報生成方法とを実現することができる。この場合、コンピュータのプロセッサは、状態遷移検出部2と、状態遷移ペア管理部3と、遷移選択部4と、テストケース生成部5として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、状態遷移検出部2と、状態遷移ペア管理部3と、遷移選択部4と、テストケース生成部5のいずれかとして機能してもよい。
[物理構成]
ここで、実施の形態におけるプログラムを実行することによって、検証情報生成装置を実現するコンピュータについて図11を用いて説明する。図11は、検証情報生成装置を実現するコンピュータの一例を示す図である。
図11に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
[付記]
以上の実施の形態に関し、更に以下の付記を開示する。上述した実施の形態の一部又は全部は、以下に記載する(付記1)から(付記12)により表現することができるが、以下の記載に限定されるものではない。
(付記1)
システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、状態遷移検出部と、
状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、状態遷移ペア管理部と、
検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、遷移選択部と、
前記遷移選択部が選択した前記遷移に基づいてテストケースを生成する、テストケース生成部と、
を有することを特徴とする検証情報生成装置。
(付記2)
付記1に記載の検証情報生成装置であって、
状態遷移検出部は、遷移選択部により選択された前記遷移を実行した次の状態を、新しい前記対象とする状態とする、
ことを特徴とする検証情報生成装置。
(付記3)
付記1又は2に記載の検証情報生成装置であって、
前記状態遷移ペア情報は、前記状態要素と異なる状態要素の状態と、前記遷移とが関連付けた情報である、
ことを特徴とする検証情報生成装置。
(付記4)
付記1から3のいずれか一つに記載の検証情報生成装置であって、
前記状態遷移ペア管理部は、前記遷移を実行した場合、検出される状態遷移ペア情報にチェック情報を関連付ける、
ことを特徴とする検証情報生成装置。
(付記5)
(a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
(b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、(c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
(d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
を有することを特徴とする検証情報生成方法。
(付記6)
付記5に記載の検証情報生成方法であって、
前記(a)のステップにおいて、前記(c)のステップにより選択された前記遷移を実行した次の状態を、新しい前記対象とする状態とする、
ことを特徴とする検証情報生成方法。
(付記7)
付記5又は6に記載の検証情報生成方法であって、
前記状態遷移ペア情報は、前記状態要素と異なる状態要素の状態と、前記遷移とを関連付けた情報である、
ことを特徴とする検証情報生成方法。
(付記8)
付記5から7のいずれか一つに記載の検証情報生成方法であって、
前記(b)のステップにおいて、前記遷移を実行した場合、検出される状態遷移ペア情報にチェック情報を関連付ける、
ことを特徴とする検証情報生成方法。
(付記9)
コンピュータに
(a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
(b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、(c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
(d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
を実行させることを特徴とする検証情報生成プログラム。
(付記10)
付記9に記載の検証情報生成プログラムであって、
前記(a)のステップにおいて、前記(c)のステップにより選択された前記遷移を実行した次の状態を、新しい前記対象とする状態とする、
ことを特徴とする検証情報生成プログラム。
(付記11)
付記9又は10に記載の検証情報生成プログラムであって、
前記状態遷移ペア情報は、前記状態要素と異なる状態要素の状態と、前記遷移とを関連付けた情報である、
ことを特徴とする検証情報生成プログラム。
(付記12)
付記9から11のいずれか一つに記載の検証情報生成プログラムであって、
前記(b)のステップにおいて、前記遷移を実行した場合、検出される状態遷移ペア情報にチェック情報を関連付ける、
ことを特徴とする検証情報生成プログラム。
以上のように本発明によれば、システムにおける計算資源を削減することができる。本発明は、状態モデルを検証する分野において有用である。
1 検証情報生成装置
2 状態遷移検出部
3 状態遷移ペア管理部
4 遷移選択部
5 テストケース生成部
6 入力装置
7 出力装置
8 記憶部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

Claims (6)

  1. システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、状態遷移検出手段と、
    状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、状態遷移ペア管理手段と、
    前記状態遷移検出手段で検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、遷移選択手段と、
    前記遷移選択手段が選択した前記遷移に基づいてテストケースを生成する、テストケース生成手段と、
    を有することを特徴とする検証情報生成装置。
  2. 請求項1に記載の検証情報生成装置であって、
    状態遷移検出手段は、遷移選択手段により選択された前記遷移を実行した次の状態を、新しい前記対象とする状態とする、
    ことを特徴とする検証情報生成装置。
  3. 請求項1又は2に記載の検証情報生成装置であって、
    前記状態遷移ペア情報は、前記状態要素と異なる状態要素の状態と、前記遷移とを関連付けた情報である
    ことを特徴とする検証情報生成装置。
  4. 請求項1から3のいずれか一つに記載の検証情報生成装置であって、
    前記状態遷移ペア管理手段は、前記遷移を実行した場合、検出される状態遷移ペア情報にチェック情報を関連付ける、
    ことを特徴とする検証情報生成装置。
  5. コンピュータが、
    (a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
    (b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、
    (c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
    (d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
    を実行する検証情報生成方法。
  6. コンピュータに
    (a)システムに対応する状態モデルの状態要素から抽出した、対象とする状態から実行できる一つ以上の遷移を検出する、ステップと、
    (b)状態と遷移とが関連付けられた複数の状態遷移ペア情報を管理する、ステップと、
    (c)前記(a)のステップにおいて検出した前記遷移のうち、まだ選択していない遷移を実行した場合に検出される前記状態遷移ペア情報の数が最も多い遷移を選択する、ステップと、
    (d)前記(c)のステップにおいて選択した前記遷移に基づいてテストケースを生成する、ステップと、
    を実行させることを特徴とする検証情報生成プログラム。
JP2018131115A 2018-07-10 2018-07-10 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム Active JP7210917B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018131115A JP7210917B2 (ja) 2018-07-10 2018-07-10 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018131115A JP7210917B2 (ja) 2018-07-10 2018-07-10 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム

Publications (2)

Publication Number Publication Date
JP2020009271A JP2020009271A (ja) 2020-01-16
JP7210917B2 true JP7210917B2 (ja) 2023-01-24

Family

ID=69151894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018131115A Active JP7210917B2 (ja) 2018-07-10 2018-07-10 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム

Country Status (1)

Country Link
JP (1) JP7210917B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151925A (ja) 2015-02-18 2016-08-22 日本電信電話株式会社 優先度付与装置、優先度付与方法および優先度付与プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040316A (ja) * 1996-07-18 1998-02-13 Toshiba Corp 図式のテスト支援装置及びテスト支援方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151925A (ja) 2015-02-18 2016-08-22 日本電信電話株式会社 優先度付与装置、優先度付与方法および優先度付与プログラム

Also Published As

Publication number Publication date
JP2020009271A (ja) 2020-01-16

Similar Documents

Publication Publication Date Title
US10747652B2 (en) Automatic risk analysis of software
Sambasivan et al. Principled workflow-centric tracing of distributed systems
CN101473301B (zh) 迭代静态和动态软件分析
US20170068676A1 (en) Layer Identification and Dependency Analysis for Management of Images
US11650905B2 (en) Testing source code changes
US8418093B2 (en) Method and system for design simplification through implication-based analysis
US8732676B1 (en) System and method for generating unit test based on recorded execution paths
KR102013582B1 (ko) 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
JP3822044B2 (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
US20150143342A1 (en) Functional validation of software
Sun et al. {KSG}: Augmenting kernel fuzzing with system call specification generation
JP2017174418A (ja) モデルチェックのためのデータ構造抽象化
US10380313B1 (en) Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration
US8245166B2 (en) Optimal correlated array abstraction
JP5233355B2 (ja) プロパティ生成システムおよびプロパティ検証システム
US11334349B2 (en) Removing feature flag-related codebase from applications
JP7210917B2 (ja) 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム
US20080295058A1 (en) Representing binary code as a circuit
CN114174983B (zh) 用于高级构造的优化的自动验证的方法和***
US8352234B2 (en) Model generation based on a constraint and an initial model
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
JP6818568B2 (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP2017041196A (ja) スタブ化対象判定装置、方法、及びプログラム
Azimi et al. Adaptv: A model-based test adaptation approach for end-to-end user interface testing of smart tvs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221226

R151 Written notification of patent or utility model registration

Ref document number: 7210917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151