JP4947427B2 - 検査時間制御装置、方法、およびプログラム - Google Patents

検査時間制御装置、方法、およびプログラム Download PDF

Info

Publication number
JP4947427B2
JP4947427B2 JP2007289334A JP2007289334A JP4947427B2 JP 4947427 B2 JP4947427 B2 JP 4947427B2 JP 2007289334 A JP2007289334 A JP 2007289334A JP 2007289334 A JP2007289334 A JP 2007289334A JP 4947427 B2 JP4947427 B2 JP 4947427B2
Authority
JP
Japan
Prior art keywords
inspection
time
depth
search
search depth
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
JP2007289334A
Other languages
English (en)
Other versions
JP2009116643A (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 JP2007289334A priority Critical patent/JP4947427B2/ja
Publication of JP2009116643A publication Critical patent/JP2009116643A/ja
Application granted granted Critical
Publication of JP4947427B2 publication Critical patent/JP4947427B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、プログラム検証に関し、特にモデル検査手法のプログラム検証に関する。
ソフトウェアの検証方法として、形式的手法を応用したモデル検査手法が用いられている。モデル検査手法とは、Kripke構造の状態遷移において、計算木論理(CTL:Computation Tree Logic)で表された仕様を証明する状態集合が存在するか否かを検査する手法である。
従来のモデル検査方法について説明する。図1の従来のモデル検査装置は、検査対象プログラム1が検査仕様2を満たすことを証明するためのモデル検査(以下、検査)を、検査制限時間3の範囲内で行う。図2は、検査対象プログラム1の例を示している。図3は、検査仕様2の例を示している。
図2の検査対象プログラム1および、図3の検査仕様2を参照すると、検査仕様2は、検証プログラム1において、main関数が、INT範囲として取り得る任意の値からなるxを引数として受け取るとき、「L9のassert関数が実行されることがある。」ことを表す。なお、検査対象プログラム1と、検査仕様2と、検査制限時間3とは、従来の方法により外部から入力される。
[従来装置の構成の説明]
従来のモデル検査装置の構成を説明する。図1は従来のモデル検査装置の構成を示している。図1のモデル検査装置は、検査処理部10と記憶装置20を備える。
検査処理部10及び記憶装置20は、図4に示すようなコンピュータにより実現される。図4を参照すると、検査処理部10と記憶装置20は、処理部100、記憶部200、入力部300、出力部400、通信部500をそれぞれ備える。それぞれの部位間は電気的に接続されている。処理部100はMPU(Micro Processing Unit)等で、記憶部200はRAM(Random Access Memory)やROM(Read Only Memory)等で、入力部300はキーボードやマウス等で、出力部400は液晶ディスプレイ等で、通信部500はLAN(Local Area Network)ポート等で、それぞれ実現される。検査処理部10と記憶装置20は、通信部500を介して接続されている。あるいは、検査処理部10と記憶装置20は、一つのコンピュータの中で実現される。従来のモデル検査装置の各機能は、検査対象プログラム1、検査仕様2、検査制限時間3に基づいて、記憶部200のRAMやROMに保存された処理用プログラムを、処理部100のMPU等が実行することによって実現される。
(検査処理部の説明)
まず、検査処理部10について説明する。検査処理部10は、記号モデル作成部11と、検査制御部12と、到達可能性検査部13と、検査結果出力部14を備える。
まず、記号モデル作成部11について説明する。記号モデル作成部11は、検査対象プログラム1と検査仕様2からKripke構造で構成する記号モデルを作成する。記号モデル作成部11は、非特許文献1に記載されているような従来の技術で、記号モデルの作成を行う。記号モデル作成部11は、作成した記号モデルを記憶装置20の記号モデル記憶部22へ保存する。
図5は、記号モデル作成部11が、図2の検査対象プログラム1と図3の検査仕様2に基づいて作成したKripke構造で構成する記号モデルの例を示している。Kripke構造で構成する記号モデルは、状態の有限集合V、状態間の遷移関係R、初期状態の集合V0、検査仕様2の仕様を充足する仕様充足状態(以下、到達状態)の集合である到達状態集合Iとして、図5の式1のように定義できる。図3の検査対象プログラム1を記号モデルに変換した時の状態集合Vは、図5の式2のように表すことができる。式2において、右辺の前項は、プログラム1におけるラベルの集合をあらわしている。式2において、次項は、プログラム中の引数xを表している。状態間の遷移関係Rは、遷移前のラベル位置を表すpc、遷移前の引数xの値を表すd、プログラム実行文の実行による遷移後のラベル位置を表すpc’と、プログラム実行文の実行による遷移後の引数xの値を表すdとして、図5の式3で表すことができる。初期状態の集合Iは、図5の式4で表すことができる。検査仕様2の到達状態の集合Iは、図5の式5で表すことができる。
次に、検査制御部12について説明する。検査制御部12は、記号モデル作成部11が記号モデル記憶部22に保存した記号モデルを読み込み、検査制限時間3内で検査対象プログラム1の検査の実行するよう到達可能性検査部13へ命令する。検査制御部12は、検査制限時間3を外部から入力する。
次に、到達可能性検査部13について説明する。到達可能性検査部13は、検査制御部12からの命令に従って、検査対象プログラム1が検査仕様2を満たすか否かの検査を検査制限時間3内で実行する。
図6は、図5の式1から式5で表すKripke構造の記号モデルを状態遷移図で表したものである。図6について説明する。四角は、検査対象プログラム1における各状態を表す。矢印は、各状態間の遷移を表す。四角内には、各状態における検査対象プログラム1のプログラム実行文のラベルと引数xとの組が示されている。矢印が表す遷移は、検査対象プログラム1のプログラム実行文の実行によって発生する。遷移は、プログラム実行文の実行前のラベルと引数xの値の組を表す状態から、プログラム実行文の実行後に変化したラベルと引数xの値の組を表す状態への移行を表す。
図6を参照して、検査における状態間の遷移について説明する。例として、初期状態群集合V0において、ラベル(以下、L)が0で引数xが0である状態からの遷移を説明する。図2より、L0は、引数xを設定する処理を行うので、プログラム実行文のL0を実行すると、状態は(L0,0)から(L1,0)へ遷移する。(L1,0)は、L1において、引数xが0であることを意味する。図2より、L1は、引数xが0であるか否かを判定する処理を行う。引数xは0であるので、プログラム実行文L1を実行すると、状態は(L1,0)から(L6,0)へ遷移する。次に、図2より、L6は、引数xに3を加える処理を行う。そのため、プログラム実行文L6を実行すると、状態は(L6,0)から(L6,3)へ遷移する。このようにして、プログラム実行文を実行して状態遷移を行った結果、図3の検査仕様2が示す到達状態集合I「L9のassert関数が実行される」へ遷移することができれば、検査対象プログラム1が、検査仕様2を満たしていることが証明できる。
到達可能性検査部13が実行する検査の方法を説明する。到達可能性検査部13は、初期状態集合V0からn回の遷移で到達できる各状態において、検査仕様2の到達状態集合Iが含まれているか否かを検査する。ここで、「初期状態集合V0からn回の遷移で到達できる各状態」を探索深度nとよぶ。プログラム実行文が実行されると、状態遷移が発生する。例えば、プログラム実行文が3回実行されると、初期状態から3回の状態遷移が発生する。この場合の各状態を探索深度3であるということができる。検査対象プログラム1の各プログラム実行文が実行される時にどのような引数を取るかによって、状態遷移で到達できる状態は変化する。到達可能性検査部13は、初期状態集合V0から探索深度nで到達できる各状態に、到達状態集合Iが含まれているかを検査する。
検査開始にあたって、到達可能性検査部13は、記号モデル作成部11が記号モデル記憶部22に保存した記号モデルを読み込む。到達可能性検査部13は、初期状態として探索深度を0として検査を開始する。
到達可能性検査部13は、初期状態V0から探索深度nの遷移で到達することができる状態に、検査仕様2の到達状態集合Iが含まれていることが証明できた場合、検査対象プログラム1は、検査仕様2を満たすことを検査結果5に記録して検査結果出力部14へ出力する。
一方、到達可能性検査部13は、初期状態V0から探索深度nの遷移で到達することができる状態に、検査仕様2の到達状態集合Iが含まれておらず、探索深度nで新たに到達できる状態が他に存在しないときには、到達可能性検査部13は、探索深度をn+1に増やして検査を継続する。このように、到達可能性検査部13は、検査仕様2が証明されるまで探索深度を1づつ増加させて検査を繰り返す。到達可能性検査部13が行うこのような検査は、従来のプロパティ検証技術であって、特許文献1や非特許文献2に記載されている。
また、到達可能性検査部13は、検査の開始からの経過した検査経過時間を測定している。到達可能性検査部13は、検査が完了する前に検査経過時間が検査制限時間3を経過してしまう場合は、検査経過時間が検査制限時間3の経過した時点で検査を終了する。この場合、到達可能性13は、検査制限時間3内で検査が完了しなかったことを検査結果5に記録して検査結果出力部14へ出力する。
次に、検査結果出力部14について説明する。検査結果出力部14は、到達可能性検査部13から入力した検査結果5を、検査の結果として外部装置へ出力する。
(記憶装置の説明)
次に、記憶装置20について説明する。記憶装置20は、記号モデル記憶部22を備える。
記号モデル記憶部22について説明する。記号モデル記憶部22は、記号モデル作成部11が出力する記号モデルを保存する。
以上が、従来のモデル検査装置の構成説明である。
[従来装置の動作方法の説明]
次に、図7を使用して従来のモデル検査装置の動作方法を説明する。図7は、従来のモデル検査装置の動作方法を示している。
(ステップA01)
検査処理部10の記号モデル作成部11は、外部から、検査対象プログラム1と検査仕様2を入力する。記号モデル作成部11は、検査対象プログラム1および検査仕様2に基づいて、記号モデルを作成する。記号モデル作成部11は、作成した記号モデルを記憶装置20の記号モデル記憶部22へ保存する。
(ステップA02)
検査処理部10の検査制御部12は、外部から検査制限時間3を入力する。検査制御部12は、記憶装置20の記号モデル記憶部22から記号モデルを読み込む。検査制御部12は、検査対象プログラム1が検査仕様2を満たすか否かの検査を検査制限時間3で実行するように到達可能性検査部13へ検査実行を命令する。
(ステップA03)
到達可能性検査部13は、検査制御部12からの検査実行の命令に従い、検査検査の開始にあたって、初期状態として探索深度n=0と設定する。
(ステップA04)
到達可能性検査部13は、初期状態集合V0から探索深度nの状態遷移で到達可能な各状態において、検査仕様2の到達状態集合Iが含まれているかの検査を実行する。また、到達可能性検査部13は、検査の開始と同時に検査の経過時間の測定を開始する。到達能性検査部13は、検査開始からの経過時間が検査制限時間3に到達した時点で検査を終了する。
(ステップA05)
到達可能性検査部13は、初期状態集合V0から探索深度nの状態遷移で到達可能な全ての状態において、到達状態集合Iが含まれているかを判定する。到達状態集合Iが含まれている場合は、ステップA06へ進む。到達状態集合Iが含まれていない場合は、ステップA07へ進む。
(ステップA06)
探索深度nにおいて到達状態集合Iが含まれている場合、到達可能性検査部13は、検査対象プログラム1が検査仕様2を満たすことを検査結果5に記録して、検査結果出力部14へ出力する。検査結果出力部14は、検査結果5を入力し、検査結果5を外部へ出力する。到達可能性検査部13は、検査制御部12へ検査対象プログラム1の検査完了を通知して検査を完了する。
(ステップA07)
探索深度nにおいて到達状態集合Iが含まれていない場合、到達可能性検査部13は、検査を継続する。到達可能性検査部13は、探索深度n=n+1としてステップA04へ戻る。
以上が、従来の記号モデル検査装置における動作方法の説明である。このようにして、到達可能性検査部13は、探索深度nで到達状態集合Iに到達することができるかを、探索深度0回から開始してnを増やしながら検査を繰り返す。
以上が、従来のモデル検査装置の説明である。
従来のモデル検査手法は、検査時間の長短が把握できないという課題がある。これは、検査を開始する時点で検査仕様の証明に必要な探索深度が不明なことによる。実際に検査を行ってみないことには、どの探索深度まで検査を繰り返せば検査仕様が証明できるかが不明であるため検査時間が把握できない。
また、従来のモデル検査手法では、検査時間が非常に長くなるという課題がある。探索深度が深くなるほど状態数が指数的に増加する状態爆発の問題によって、検査そのものが完了しないという状況に至ることがある。
このため、従来のモデル検査手法においては、あらかじめ制限時間を設けており、制限時間内に検査が完了しない場合には、検査開始からの経過時間が制限時間に達した時点で、検査を途中で終了するという方法がとられている。
しかし、このような方法は、仮に検査が膨大な時間を要するものであったとしても、制限時間の上限値まで検査を続ける以外に、検査が完了するか否かの判定がつかないという課題も存在する。つまり、元々、膨大な時間が掛かる可能性が高い検査であるにもかかわらず、実際に膨大な時間をかけて制限時間を使い切ってみて初めて、検証が完了しないことがわかるということである。特許文献2ならびに特許文献3には、モデル検査手法における検査時間を制御する例が開示されている。
特開2003−030270号公報 特開2004−005674号公報 特開平10−063537号公報 「抽象化を用いた検証ツールの調査」田辺良則、高井利憲、高橋孝一 産業技術総合研究所システム検証研究センター テクニカルレポート PS−2003−007,2003 「論理関数処理に基づく形式的検証手法」平石裕実、浜口清治、情報処理 Vol.35(8),1994
本発明の目的は、検査対象のプログラムに割り当てられた検査制限時間内に当該プログラムの検査が完了しないことを、検査制限時間が経過するより以前に検知し、検知した時点で検査を終了することが可能な検査時間制御装置を提供することである。
本発明の検査時間制御装置は、検査の対象であるプログラムの実行文を実行した回数を表す探索深度のうち、プログラムの初期状態からプログラムの検査仕様を満たすことを示す仕様充足状態へ状態を遷移するために要する最短探索深度を算出する最短探索深度算出部と、プログラムにおいて、探索深度毎に仕様充足状態へ状態を遷移することが可能であるかの検査を実行し、探索深度の各々における検査に要した深度別検査時間を出力する到達可能性検査部と、到達可能性検査部が各探索深度について検査を完了する毎に、最短探索深度まで検査を完了するために要する予想時間である仕様到達予想時間を算出する予想検査時間算出部を備え、到達可能性検査部は、プログラムの検査に対する検査制限時間のうち残りの残検査制限時間を仕様到達予想時間が超過する場合には、検査を途中で終了する。
本発明の検査時間制御方法は、
検査の対象であるプログラムの実行文を実行した回数を表す探索深度のうち、プログラムの初期状態からプログラムの検査仕様を満たすことを示す仕様充足状態へ状態を遷移するために要する最短探索深度を算出する最短探索深度算出ステップと、
プログラムにおいて、探索深度毎に仕様充足状態へ状態を遷移することが可能であるかの検査を実行する検査実行ステップと、
探索深度の各々における検査に要した深度別検査時間を出力する深度別検査時間出力ステップと、
到達可能性検査部が各探索深度について検査を完了する毎に、最短探索深度まで検査を完了するために要する予想時間である仕様到達予想時間を算出する予想時間算出ステップと、
到達可能性検査部は、プログラムの検査に対する検査制限時間のうち残りの残検査制限時間を仕様到達予想時間が超過する場合には、検査を途中で終了する検査終了ステップとを備える。
本発明のプログラムは、上述の検査時間制御方法をコンピュータによって実現する。
本発明によれば、検査対象のプログラムに割り当てられた検査制限時間内に当該プログラムの検査が完了しないことを、検査性制限時間が経過するより以前に検知し、検知した時点で検査を終了することが可能となるため、検査制限時間を使い切っても当該プログラムの検査が完了しない状態を未然に防ぐことができ、検査時間の効率化を図ることができる。
添付図面を参照して、本発明による検査時間制御装置を実施するための最良の形態としての一実施例を、以下に説明する。
図8は、本発明の本実施例の検査時間制御装置を示している。図8のモデル検査時間制御装置は、検査対象プログラム1が検査仕様2を満たすことを証明するためのモデル検査(以下、検査)を、検査制限時間3の範囲内で行う。
本実施例の説明において、検査対象プログラム1および検査仕様2は、従来のモデル検査装置の説明と同様のものである。図2は、検査対象プログラム1の例を示している。図3は、検査仕様2の例を示している。従来のモデル検査装置の説明と同様に、図2の検査対象プログラム1および、図3の検査仕様2を参照すると、検査仕様2は、検証プログラム1において、main関数が、INT範囲として取り得る任意値からなるxを引数として受け取るとき、「L9のassert関数が実行されることがある。」ことを表す。なお、検査対象プログラム1と、検査仕様2と、検査制限時間3とは、外部装置から、モデル検査時間制御装置の構成部位へ入力される。
[構成の説明]
図8を使用して、本実施例のモデル時間制御装置の構成を説明する。本実施例のモデル検査時間制御装置は、検査処理部10と、記憶装置20と、深度算出部30と、時間算出部40とを備える。検査処理部10、記憶装置20、深度算出部30及び時間算出部40は、図9に示すような従来のコンピュータにより実現される。検査処理部10、記憶装置20、深度算出部30及び時間算出部40は、処理部100、記憶部200、入力部300、出力部400、通信部500をそれぞれ備える。処理部100はMPU(Micro Processing Unit)等で、記憶部200はRAM(Random Access Memory)やROM(Read Only Memory)等で、入力部300はキーボードやマウス等で、出力部400は液晶ディスプレイ等で、通信部500はLAN(Local Area Netword)ポート等で、それぞれ実現される。本発明のモデル検査時間制御装置の各機能は、外部から入力される、検査対象プログラム1、検査仕様2、検査制限時間3に基づいて、記憶部200のRAMやROM等に保存された処理用プログラムを、処理部100のMPU等が実行することによって実現する。検査処理部10と、記憶装置20と、深度算出部30と、時間算出部40の各部位は、有線通信技術あるいは無線通信技術によって接続されている。これらは、直接的に接続されていてもよいし、ネットワークを介して接続されていてもよい。これらは、従来のデータ通信技術によって実現される。また、検査処理部10と、記憶装置20と、深度算出部30と、時間算出部40の各部位は、一つのコンピュータの中で実現されてもよい。
(検査処理部の説明)
まず、検査処理部10について説明する。検査処理部10は、記号モデル作成部11と、検査制御部12と、到達可能性検査部13と、検査結果出力部14を備える。
まず、記号モデル作成部11について説明する。記号モデル作成部11は、検査対象プログラム1と検査仕様2からKripke構造で構成する記号モデルを作成する。記号モデル作成部11は、非特許文献1に記載されているような従来の技術で、記号モデルの作成を行う。記号モデル作成部11は、作成した記号モデルを記憶装置20の記号モデル記憶部22へ保存する。図5は、記号モデル作成部11が、図2の検査対象プログラム1と図3の検査仕様2に基づいて作成したKripke構造で構成する記号モデルの例を示している。図5に示した、Kripke構造で構成する記号モデルの例に関する説明は、前述した従来のモデル検査装置の説明と同様であるので省略する。
次に、検査制御部12について説明する。検査制御部12は、記号モデル作成部11が記号モデル記憶部22に保存した記号モデルを読み込み、検査制限時間3内で検査対象プログラム1の検査の実行するよう到達可能性検査部13へ命令する。検査制御部12は、検査制限時間3を外部から入力する。
また、時間算出部40の予想検査時間算出部41が当該検査は検査制限時間3内に完了しないと判定し、予想検査時間算出部41が後述する検査完了不可通知を出力した場合には、検査制御部12は、検査完了不可通知を入力して、到達可能性検査部13へ検査終了命令を行う。この場合、到達可能性検査部13は、検査終了令を受けて当該検査を終了する。
次に、到達可能性検査部13について説明する。到達可能性検査部13は、検査制御部12からの命令に従って、検査対象プログラム1が検査仕様2を満たすか否かの検査を検査制限時間3内で実行する。図6は、図5の式1から式5で表すKripke構造の記号モデルを状態遷移図で表したものである。図6についての説明と、プログラム実行文を実行することによる状態間の遷移ついての説明と、到達可能性検査部13の検査方法についての説明は、前述した従来のモデル検査装置の説明と同様であるので省略する。到達可能性検査部13が行う検査は、従来のプロパティ検証技術であって、特許文献1や非特許文献2に記載されている。
検査を実行した結果、初期状態集合V0から探索深度nの状態遷移で到達することができる状態に、検査仕様2の仕様を充足する仕様充足状態(以下、到達状態)の集合である到達状態集合Iが含まれている場合、到達可能性検査部13は、検査対象プログラム1が検査仕様2を満たすことを検査結果5に記録して検査結果出力部14へ出力する。
一方、初期状態集合V0から探索深度nの状態遷移で到達することができる状態に、検査仕様2の到達状態集合Iがふくまれておらず、探索深度nの状態遷移で新たに到達できる状態が他に存在しない場合、到達可能性検査部13は、探索深度をn+1に増やして検査を継続する。
また、検査制御部12から検査終了命令を受けた場合、到達可能性検査部13は、検査終了命令を受けた時点で検査を終了する。この場合、到達可能性検査部13は、検査終了命令により検査を終了したこと記録した検査結果5を検査結果出力部14へ出力する。
到達可能性検査部13は、検査開始からの経過時間を測定する。検査が完了する前に、検査開始からの経過時間が検査制限時間3に到達した場合、到達可能性検査部13は、その時点で検査を終了する。到達可能性検査部13は、検査制限時間3を使い切ったため検査を終了したことを記録した検査結果5を検査結果出力部14へ出力する。
さらに、本実施例において到達可能性検査部13は、探索深度n毎の検査に要した探索時間を測定する。到達可能性検査部13は、探索深度nにおける検査処理を完了する毎に、探索深度nにおいて検査に要した探索時間を、探索深度nに対応させて、記憶装置20の探索時間記憶部24へ保存する。
次に、検査結果出力部14の説明をする。検査結果出力部14は、到達可能性検査部13から入力する検査結果5を、検査の結果として外部装置へ出力する。なお、検査結果5の形式については、本実施例において特に限定しない。これらは従来のデータ形式により技術により実現されるものである。
(深度算出部の説明)
次に、深度算出部30について説明する。深度算出部30は、状態遷移モデル作成部31と最短探索深度算出部32を備える。
まず、状態遷移モデル作成部31について説明する。状態遷移モデル作成部31は、検査対象プログラム1と検査仕様2を読み込み、コントロールフローグラフで表す状態遷移モデルを作成する。状態遷移モデル作成部31が検査対象プログラム1から状態遷移モデルを作成する処理は、コンパイラなどで一般的に使用されるプログラムからコントロールフローグラフを作成するための従来技術によって行われる。状態遷移モデル作成部31は、作成した状態遷移モデルを、記憶装置20の状態遷移モデル記憶部21へ保存する。
次に、最短探索深度算出部32について説明する。最短探索深度算出部32は、状態遷移モデル作成部31が作成した状態遷移モデルから最短探索深度Nを算出する。最短探索深度算出部32は、状態遷移モデル記憶部21から状態遷移モデルを読み込む。最短探索深度算出部32は、状態遷移モデル上で条件分岐の条件を無視した有効グラフとして、初期状態から検査仕様2が示す到達状態への最短経路の状態遷移数を求める。最短探索深度Nは、初期状態集合V0から検査仕様2の要求する到達状態へ到達するために最低必要な探索深度を意味する。最短探索深度算出部32は、ダイクストラ法等の従来技術により有効グラフにおける最短経路を算出する。最短探索深度算出部32は、算出した最短探索深度Nを記憶装置20の最短探索深度記憶部23に保存する。
図10を使用して、本実施例における最短探索深度Nの算出方法を説明する。図10は、状態遷移モデル作成部31が図2の検査対象プログラム1と検査仕様2から作成した状態遷移モデルを表している。図10に示されている四角は、検査対象プログラム1において取りうる各状態である。各状態は、検査対象プログラム1の各プログラム実行文のラベル(L0〜L9)位置を表している。また、図10に示されている状態から状態への矢印は、状態から状態への状態遷移を表す。状態から状態への状態遷移は、検査対象プログラム1において、プログラム実行文を実行することによって発生する。プログラム実行文の実行によって、プログラム実行文を実行前のラベル位置の状態から、プログラム実行文を実行後のラベル位置の状態へ状態遷移する。検査対象プログラム1内のIF文は、遷移における遷移条件として表されている。検査仕様2の「assert関数が実行されることがある。」は、「開始時の状態L0から状態L9へ到達する経路が存在する。」ことを意味する。
次に、図10において、初期状態(図10においてL0)から検査対象プログラム1の検査仕様2が示す到達状態(図10においてL9)へ状態遷移するために最低限必要なプログラム実行回数の算出について説明する。最短探索深度算出部32は、分岐条件の条件を無視した有効グラフとして、プログラム開始位置L0から検査仕様2が示す到達状態であるL9への最短経路をもとめる。この最短経路は、検査対象プログラム1において、初期状態から検査仕様2が示す到達状態に到達するまでに最低限必要な状態遷移数であり、検査対象プログラム1における最低限必要なプログラム実行文の実行回数である。検査対象プログラム1の各状態における条件分岐がいかなるものであろうとも、この状態遷移数より少ない状態遷移数で初期状態から検査仕様2が示す到達状態へ到達することはできない。同様に、この実行回数より少ないプログラム実行文の実行回数で、初期状態から検査仕様2が示す到達状態へ到達することはできない。このプログラム実行文の実行回数である状態遷移数が最短探索深度Nとなる。
図10において、分岐条件の条件を無視した有効グラフとして考える場合、初期状態のL0から検査仕様2が示す到達状態のL9への最短経路は、L0からL1、L6、L7、L8、L9と遷移する経路となる。この最短経路は、状態間を5回遷移している。これにより、検査対象プログラム1において初期状態から検査仕様2が示す到達状態への最短探索深度Nは「N=5」となる。
(時間算出部の説明)
次に、時間算出部40の説明をする。時間算出部40は、予想検査時間算出部41を備える。
予想検査時間算出部41について説明する。予想検査時間算出部41は、最短探索深度Nまでの検査が検査制限時間3内に完了する否かを判定する。
以下に、予想検査時間算出部41が行う判定方法を説明する。まず、予想検査時間算出部41は、到達可能性検査部13が探索深度nの検査を完了する毎に、仕様到達予想時間を算出する。仕様到達予想時間とは、到達可能性検査部13が探索深度nの検査を完了した時点で、探索深度n+1から最短探索深度Nまでの検査に必要と予想する残り時間である。予想検査時間算出部41は、記憶装置20の探索時間記憶部24に保存された探索深度毎の探索時間と、記憶装置20の最短探索深度記憶部23に保存された最短探索深度Nとに基づいて、仕様到達予想時間を算出する。
次に、予想検査時間算出部41は、検査制限時間3から、検査開始から現在までの経過時間を減算した残りの検査制限時間3(以下、残検査制限時間)を算出する。検査開始から現在まで経過した経過時間は、探索深度n=0とした検査初期状態から探索深度nの探索が完了した現在までの各探索深度毎の探索時間の累計により求められる。予想検査時間算出部41は、記憶装置20の探索時間記憶部24に保存された探索深度毎の探索時間を合計し、検査開始から現在までに経過した経過時間を求める。この経過時間を検査制限時間3から減算して残検査制限時間を算出する。
次に、予想検査時間算出部41は、残検査制限時間を仕様到達予想時間が超過するか否かを判定する。予想検査時間算出部41は、残検査制限時間から仕様到達予測時間を減算する。予想検査時間算出部41は、残検査制限時間から仕様到達予測時間を減算結果が0より大きい場合、仕様到達予想時間は残検査制限時間を超過せず、当該検査は検査制限時間3内に完了すると判定する。一方、予想検査時間算出部41は、残検査制限時間から仕様到達予測時間を減算結果が0以下である場合、仕様到達予想時間は残検査制限時間を超過し、当該検査は検査制限時間3内に完了しないと判定する。
予想検査時間算出部41は、当該検査が検査制限時間3内に完了しないと判定した場合、検査完了不可通知を検査制御部12へ出力する。検査制御部12は、検査完了不可通知を受けて到達可能性検査部13へ当該検査の終了を命令する。一方、予想検査時間算出部41は、当該検査が検査制限時間3内に完了すると判定した場合、特に命令は出力せず検査を続行する。
なお、予想検査時間算出部41による、仕様到達予測時間の算出方法、検査制限時間3内に検査が完了するか否かの判定方法、検査の終了または続行の命令方法はこれに限定しない。例えば、予想検査時間算出部41は、当該検査が検査制限時間3内に完了すると判定した場合に、検査続行命令を出力し、検査制御部12は検査続行命令に従って到達可能性検査部13へ検査の続行を命令してもよい。また、予想検査時間算出部41は、仕様到達予測時間を算出のみを実行し、検査を終了するか続行するかの判定は、検査制御部12が行ってもよい。
図11の式6は、本実施例において予想検査時間算出41が、仕様到達予想時間を算出するための算出式である。モデル検査では、探索深度が増加するにつれ、探索時間が指数関数的に増加する(参考文献:特許文献2)。指数関数的に増加する探索深度毎の探索時間の類推は、指数近似法で計算することができる。しかし、指数近似法は、探索深度nが少ない段階では誤差が大きく、本来、制限時間内で検査が完了することが可能な検査対象プログラム1の検査まで、タイムアウトすると誤判定してしまう可能性がある。そこで、実施例においては、探索深度nと探索深度n−1の差分である探索時間の増加率に基づいた、図11の式6を使用して仕様到達予想時間を算出することで誤判定を防ぐ。なお、仕様到達予測時間の算出式はこれの例に限定しない。各探索深度毎の探索時間に基づいて算出する方法や、探索深度nでの探索時間と探索深度n−1での探索時間との差分に基づいて算出する方法等、他の算出式を用いて計算することも可能である。
図12は、ある検査対象プログラム1と検査仕様2において、最短探索深度N=15である場合に、探索深度n=1〜8の各段階で、図11の式6を用いて残りの探索深度毎の予想探索時間を算出した例を表している。この残りの探索深度毎の予想探索時間を合計した値が仕様到達予想時間であり、検査仕様2が示す到達状態集合Iが含まれる最短探索深度N=15の到達可能性の検査完了に必要な残り時間である。
図12の項目を説明する。「探索深度n」は、各探索深度を示している。「探索深度nでの探索時間」は、各探索時間において実際に検査に要した探索時間を示している。図12を参照すると、当該検査対象プログラム1において、探索深度n=1の時に13秒、探索深度n=2の時に22秒、探索深度n=3の時に32秒、探索深度n=4の時に41秒、の探索時間を要したことが確認できる。この探索深度nでの探索時間は、到達可能性検査部13によって、各探索深度毎の検査が完了する毎に、探索時間記憶部24へ保存された時間である。「探索深度nまでの経過時間」は、検査開始(初期状態のため探索深度n=0)から、探索深度nの検査完了までに経過した時間である。「探索深度nまでの経過時間」は、各探索深度毎の探索時間の累計を示している。図12を参照すると、検査の開始から探索深度6における検査の完了までに638秒を要したことが確認できる。これは、探索深度0から探索深度5までの各探索深度での探索時間の累計時間である。「探索深度nにおいて予想した探索深度別の予想探索時間」は、予想検査時間算出部41が、ある探索深度nの検査が完了した時点において、図11の式6を用いて探索深度n+1から最短探索深度N=15までの各探索深度における予想探索時間を算出した結果を示している。図12を参照すると、現在が探索深度n=4の検査が完了した状態とすると、予想検査時間算出部41が、探索深度n=5では50秒、探索深度n=6では59秒の探索時間を要すると予想していることが確認できる。「仕様到達予想時間」は、予想検査時間算出部41が、各探索深度nの検査が完了したときに算出した、探索深度n+1から最短探索深度N=15までの各探索深度毎の予想探索時間を累計したものである。図12を参照すると、予想検査時間算出部41は、探索深度n=4の検査が完了した時点での仕様到達予想時間を1,045秒と予想していることが確認できる。
図12を参照して、予想検査時間算出部41による判定方法の例を説明する。図12に示した検査の例において、検査制限時間3が、10,000秒であったとする。図12より、到達可能性検査部13が探索深度n=5の検査を完了した時点で、予想検査時間算出部41は、最短探索深度N=15までの仕様到達予想時間を5,675秒と算出している。次に、予想検査時間算出部41は、検査制限時間3から現在までの経過時間を減算して残検査制限時間を算出する。予想検査時間算出部41は、図12より、残検査制限時間を「10,000秒−234=9,766秒」と算出する。次に、予想検査時間算出部41は、残検査制限時間から仕様予想到達時間を減算して、仕様到達予想時間が残検査制限時間を超過していないかを判定する。予想検査時間算出部41は、図12より、「9,766秒−5675秒=4,091秒」であるので、この時点ではまだ仕様到達予想時間が残検査制限時間を超過するとは判定しない。そのため、到達可能性検査部13は、探索深度n=n+1(この場合は探索深度6)として検査を継続する。
さらに検査が継続され、到達可能性検査部13は、探索深度6の検査を完了する。図12より、到達可能性検査部13は探索深度n=6の検査に404秒要している。予想検査時間算出部41は、図11の式6を用いて仕様到達予想時間を算出する。図12より、予想検査時間算出部41は、到達可能性検査部13が探索深度n=6の検査を完了した時点で、最短探索深度N=15までの仕様到達予想時間を16,326秒と算出している。次に、予想検査時間算出部41は、検査制限時間3から現在までの経過時間を減算した時間を減算して残検査制限時間を算出する。予想検査時間算出部41は、残検査制限時間を「10,000秒−638秒=9,362秒」と算出する。次に、予想検査時間算出部41は、残検査制限時間から仕様予想到達時間を減算して、仕様到達予想時間が残検査制限時間を超過していないかを判定する。予想検査時間算出部41は、図12より、「9,362秒−16,326秒=−6,964秒」であるので、仕様到達予想時間が残検査制限時間を超過すると判定する。これにより、予想検査時間算出部41は、この時点で当該検査は検査制限時間3内で完了しないと判定する。判定結果に伴い、予想検査時間算出部41は、検査制御部12へ検査完了不可通知を出力する。なお、予想検査時間算出部41による、残検査制限時間を仕様到達予想時間が超過するかを判定するための計算方法はこの例に限定しない。
図13は、図12をグラフに表したものである。図13において、縦軸は探索時間、横軸は探索深度である。「A」は、探索深度n毎の実探索時間を示している。「A」を参照すると、探索深度nが増加するにつれて、実探索時間は指数関数的に増加することが確認できる。「B」は、探索深度n=7において算出した、残りの各探索深度における予想探索時間を表している。同様に「C」は探索深度n=6において、「D」は探索深度n=4において、「E」は探索深度n=2において、それぞれ算出した、残りの各探索深度における予想探索時間を示している。予想検査時間算出部41は、「B」から「D」の各探索深度nの段階において、探索予想時間を「A」の実探索時間より短い値に算出していることが確認できる。図11の式6を用いることにより、制限時間内で検査が完了する検査を、制限時間内で完了しない検査と誤って判定することを防ぐことができる。
(記憶装置の説明)
次に、記憶装置20の説明をする。記憶装置20は、状態遷移モデル記憶部21と、記号モデル記憶部22と、最短探索深度記憶部23と、探索時間記憶部24とを備える。
まず、状態遷移モデル記憶部21について説明する。状態遷移モデル記憶部21は、深度算出部30の状態遷移モデル作成部31が出力する状態遷移モデルを保存する。状態遷移モデル記憶部21は、最短深度算出部32の要求に応じて状態遷移モデルを出力する。
次に、記号モデル記憶部22について説明する。記号モデル記憶部22は、検査処理部10の記号モデル作成部11の出力する記号モデルを保存する。記号モデル記憶部22は、検査制御部12の要求に応じて記号モデルを出力する。
次に、最短探索深度記憶部23について説明する。最短探索深度記憶部23は、深度算出部30の最短探索深度算出部32の出力する最短探索深度Nを保存する。最短探索深度記憶部23は、予想検査時間算出部41の要求に応じて最短探索深度Nを出力する。
次に、探索時間記憶部24について説明する。探索時間記憶部24は、検査処理部10の到達可能性検査部13が出力する探索深度nでの探索時間を探索深度nに対応させて保存する。探索時間記憶部24は、予想検査時間算出部41の要求に応じて探索深度nでの探索時間を出力する。
以上が、本実施例における構成の説明である。
状態遷移モデル作成部31は、検査対象プログラム1と検査仕様2に基づいて状態遷移モデルを作成する。最短探索深度算出部32は、状態遷移モデルに基づいて最短探索深度Nを算出する。最短探索深度Nが算出されることで、当該検査がどの探索深度まで検査が行われることによって完了するのかを判断できる。
さらに、到達可能性検査部13は、探索深度nの検査が完了する毎に、探索深度毎の探索時間を出力する。予想検査時間算出部41は、探索深度毎の探索時間に基づいて、仕様到達予想時間する。予想検査時間算出部41は、図11の式6によって適切な仕様到達予測時間を算出することができる。
加えて、予想検査時間算出部41は、探索深度毎の探索時間の合計することで検査開始からの経過時間を算出する。予想検査時間算出部41は、検査制限時間3から、検査開始からの経過時間を減算して残検査制限時間を求める。予想検査時間算出部41は、残検査制限時間から仕様到達予測時間を減算することで、検査が検査制限時間3内に完了可能か否かを容易に判定できる。
これによって、検査が検査制限時間3内に完了しないと判定した場合にはその時点で検査を終了することが可能となり、検査制限時間3が全て経過してようやく検査が完了しないことが判明するという状態を防ぐことが可能となる。
[動作の説明]
次に、図14を使用して本発明の本実施例における動作を説明する。図14は本発明の本実施例における動作方法を示している。図14において、ステップA01からステップA07については、前述した従来のモデル検査装置の動作方法と同様である。ステップB01からステップB08が、本実施例に特有の動作方法である。
(ステップB01)
深度算出部30の状態モデル作成部31は、検査対象プログラム1と検査仕様2を読み込み、状態遷移モデルを作成する。状態モデル作成部31は、作成した状態遷移モデルを記憶装置20の状態遷移モデル記憶部21へ保存する。なお、状態モデルの作成命令は外部から入力されても検査制御部12から入力されてもよい。状態モデルの作成命令を出力する動作主体と動作方法については本実施例において特に限定はしない。
(ステップB02)
深度算出部30の最短探索深度算出部32は、記憶装置20の状態遷移モデル記憶部21から状態遷移モデルを読み込む。最短探索深度算出部32は、状態遷移モデルにおいて、初期状態から検査仕様2が示す到達状態への最短探索深度Nを求める。最短探索深度算出部32は、求めた最短探索深度Nを、記憶装置20の最短探索深度記憶部23へ保存する。
(ステップA01)
検査処理部10の記号モデル作成部11は、外部から、検査対象プログラム1と検査仕様2を入力する。記号モデル作成部11は、検査対象プログラム1および検査仕様2に基づいて、記号モデルを作成する。記号モデル作成部11は、作成した記号モデルを記憶装置20の記号モデル記憶部22へ保存する。なお、記号モデルの作成命令は外部から入力されても検査制御部12から入力されてもよい。記号モデルの作成命令を出力する動作主体と動作方法については本実施例において特に限定はしない。
(ステップA02)
検査処理部10の検査制御部12は、外部から検査制限時間3を入力する。検査制御部12は、記憶装置20の記号モデル記憶部22から記号モデルを読み込む。検査制御部12は、検査対象プログラム1が検査仕様2を満たすか否かの検査を検査制限時間3で実行するように到達可能性検査部13へ検査実行を命令する。なお、本実施例において、検査制御部12への検査開始命令は外部から入力されるものとする。検査開始命令を出力する動作主体と動作方法については本実施例において特に限定はしない。
(ステップA03)
到達可能性検査部13は、検査制御部12からの検査実行の命令に従い、検査検査の開始にあたって、初期状態として探索深度n=0と設定する。
(ステップA04)
到達可能性検査部13は、初期状態集合V0から探索深度nの状態遷移で到達可能な各状態において、検査仕様2の到達状態集合Iが含まれているかの検査を実行する。また、到達可能性検査部13は、検査の開始と同時に検査の経過時間の測定を開始する。到達能性検査部13は、検査開始からの経過時間が検査制限時間3に到達した時点で検査を終了する。さらに、到達可能性検査部13は、検査を開始すると探索深度n毎の探索時間を測定する。
(ステップA05)
到達可能性検査部13は、初期状態集合V0から探索深度nの状態遷移において、到達状態集合Iが含まれているか否かを判定する。探索深度nにおいて到達状態集合Iが含まれている場合は、ステップA06へ進む。探索深度nにおいて到達状態集合Iが含まれていない場合は、ステップB03へ進む。
(ステップA06)
探索深度nにおいて到達状態集合Iが含まれている場合、到達可能性検査部13は、検査対象プログラム1が検査仕様2を満たすことを検査結果5に記録して、検査結果出力部14へ出力する。検査結果出力部14は、検査結果5を入力し、検査結果5を外部へ出力する。到達可能性検査部13は、検査制御部12へ検査対象プログラム1の検査完了を通知して検査を完了する。
また、検査が検査制限時間3内に完了しないと判定し検査を終了した場合、到達可能性検査部13は、検査完了不可通知により検査を終了したことを記録した検査結果5を検査結果出力部14へ出力する。検査結果出力部14は、検査結果5を入力し、検査結果5を外部へ出力する。到達可能性検査部13は、検査制御部12へ検査対象プログラム1の検査完了を通知して検査を完了する。
(ステップB03)
到達可能性検査部13は、探索深度nにおける検査が完了する毎に、探索深度nの探索に要した時間と探索深度nの組を、記憶装置20の探索時間記憶部24へ保存する。
(ステップB04)
時間算出部40の予想検査時間算出部41は、記憶装置20の探索時間記憶部24に保存されている、探索深度n=0から探索深度nまでの各探索深度n毎の探索時間と、最短探索深度記憶部23に保存されている最短探索深度Nと、を読み込み、図11の式6に基づいて、探索深度n+1から最短探索深度Nまでの各探索深度における予想深度別探索時間を算出する。
(ステップB05)
予想検査時間算出部41は、探索深度n+1から最短探索深度Nまでの各探索深度における予想深度別探索時間の総和をとることで、仕様到達予想時間を算出する。
(ステップB06)
予想検査時間算出部41は、探索深度0から探索深度nまでの探索深度毎の探索時間を合計して、検査開始からの経過時間を算出する。予想検査時間算出部41は、検査制限時間3から、検査開始からの経過時間を減算した残検査制限時間を算出する。予想検査時間算出部41は、残検査制限時間から仕様到達予想時間を減算して、仕様到達予想時間が残検査制限時間を超過していないかを判定する。判定の結果、仕様到達予想時間が残検査制限時間を超過している場合、予想検査時間算出部41は、検査が検査制限時間3内に完了しないと判定し、ステップB07へ進む。仕様到達予測時間が残検査制限時間を超えていない場合、検査は続行されるため、ステップA07へ進む。
(ステップA07)
探索深度nにおいて到達状態集合Iが含まれていない場合、到達可能性検査部13は、探索深度n=n+1として、検査を続行するためにステップA04へ戻る。
(ステップB07)
予想検査時間算出部41は、検査が検査制限時間3内に完了しないと判定し、検査処理部10の検査制御部12へ、検査完了不可通知を出力する。検査制御部12は、予想検査時間算出部41が出力する検査完了不可通知を入力し、到達可能性検査部13へ検査終了を命令する。到達可能性検査部13は、検査制御部12から検査終了の命令を入力し、当該検査を終了する。予想検査時間算出部41は、検査結果5を出力するために、ステップA06へ進む。
以上が、本実施例における動作方法の説明である。このようにして、到達可能性検査部13が探索深度nの検査を完了する度に、予想検査時間算出部41は、当該検査が検査制限時間3内で完了するか否かを判定することで、検査制限時間3が経過するまで待たずとも、当該検査が検査制限時間3内で完了しないことを検知することが可能となる。これによって、モデル検査時間制御装置は、検査制限時間3を使い切るまで検査を続行する必要が無いため、検査の効率化を計ることができる。
また、到達可能性検査部13が探索深度nの検査が完了する毎に、探索深度nの探索時間を探索時間記憶部24へ保存し、予想検査時間算出部41は、探索時間記憶部24に保存された探索深度nの探索時間と探索深度n−1の探索時間との差分に基づいて、仕様到達予想時間を算出するため、本来、検査制限時間3内で検査が完了する検査を、検査制限時間3内に検査が完了しないと誤って判定することを防ぐことができる。
以上が、本発明の本実施例の説明である。本発明により、検査対象プログラム1に割り当てられた検査制限時間3に検査対象プログラム1の検査が完了しないことを、検査性制限時間が経過するより以前に検知して、検査を終了することが可能となるため、検査制限時間3を使い切っても検査対象プログラム1の検査が完了しない状態を未然に防ぐことができ、検査に要する時間の効率化を図ることができる。
従来のモデル検査装置の構成を表すブロック図である。 検査対象プログラム1の例の図である。 検査仕様2の例の図である。 従来のモデル検査装置における、各構成部位の構成図である。 検査対象プログラム1と検査仕様2から作成したKripke構造の記号モデルの図である。 図5のKripke構造の記号モデルから作成した状態遷移図である。 従来のモデル検査装置における動作方法のフローチャートである。 本発明のモデル検査時間制御装置の構成を表すブロック図である。 本発明のモデル検査制御装置における、各構成部位の構成図である。 検査対象プログラム1を、コントロールフローグラフで表した状態遷移図である。 本発明のおける、予想探索時間の算出式を表した図である。 本発明における、探索深度毎に予想探索時間と仕様到達予想時間を、図11の算出式を用いて算出した表である。 本発明における、探索深度と探索時間との関係を表したグラフである。 本発明のモデル検査時間制御装置における動作方法のフローチャートである。
符号の説明
1 検査対象プログラム
2 検査仕様
3 検査制限時間
5 検査結果
10 検査処理部
11 記号モデル作成部
12 検査制御部
13 到達可能性検査部
14 検査結果出力部
20 記憶装置
21 状態遷移モデル記憶部
22 記号モデル記憶部
23 最短探索深度記憶部
24 探索時間記憶部
30 深度算出部
31 状態遷移モデル作成部
32 最短探索深度算出部
40 時間算出部
41 予想検査時間算出部
100 処理部
200 記憶部
300 入力部
400 出力部
500 通信部

Claims (11)

  1. 検査の対象であるプログラムの実行文の実行回数をそれぞれ表す複数の探索深度のうち、前記プログラムの初期状態から前記プログラムの検査仕様を満たすことを示す仕様充足状態へ状態を遷移するために要する最短探索深度を状態遷移モデルを用いて算出する最短探索深度算出部と、
    前記プログラムの検査にあたって、前記複数の探索深度の各々について前記初期状態から前記仕様充足状態へ状態を遷移することが可能であるかの検査をプロパティ検証により実行し、前記複数の探索深度の各々についての前記検査に要した時間である深度別検査時間を測定する到達可能性検査部と、
    前記到達可能性検査部が前記複数の探索深度の各々についての前記検査を完了する毎に、前記最短探索深度算出部が算出した前記最短探索深度と前記到達可能性検査部が測定した前記深度別検査時間とを用いて、前記最短探索深度まで前記検査を完了するために要する予想時間仕様到達予想時間として算出する予想検査時間算出部
    を備え、
    前記状態遷移モデルは、
    前記プログラムがとりうる複数の状態を備え、前記初期状態から前記仕様充足状態までの経路上に前記複数の状態があるというコントロールフローグラフで表わされた状態遷移モデルであって、前記複数の状態に加え、前記初期状態から前記仕様充足状態までの遷移の途中で前記経路を分岐させる分岐条件を備え、
    前記初期状態から前記仕様充足状態までの間には、前記分岐条件があるために複数の経路が存在し、
    前記最短探索深度算出部は、
    前記状態遷移モデルを前記分岐条件を無視した有向グラフとして扱うことにより、前記複数の経路の中から前記プログラムの前記初期状態から前記仕様充足状態までの最短経路を前記プログラムの前記実行回数が最小となる前記最短探索深度として求め、
    前記予想検査時間算出部は、
    前記到達可能性検査部が前記複数の探索深度のうち探索深度nについての前記検査を完了したときに、次の探索深度n+1から前記最短探索深度までの前記検査に要する予想時間を前記仕様到達予想時間として算出し、
    前記仕様到達予想時間の算出にあたって、前記到達可能性検査部が前記探索深度nについての前記検査を完了したときに、当該検査から前記探索深度n+1についての前記検査が完了するまでに要する予想深度別検査時間を、前記探索深度nについての前記深度別検査時間と前記探索深度nよりも前の探索深度n−1についての前記深度別検査時間との差分から算出し、
    前記探索深度n+1から前記最短探索深度までの各々についての前記予想深度別検査時間を合計することにより前記仕様到達予想時間を算出し、
    前記到達可能性検査部は、
    前記探索深度nについての前記検査を完了したときに、前記仕様到達予想時間が前記プログラムの前記検査に対する検査制限時間のうち残りの時間である残検査制限時間を超過する場合には、前記プログラムの前記検査を途中で終了する
    検査時間制御装置。
  2. 請求項1に記載の検査時間制御装置であって、
    前記予想検査時間算出部は、
    これから前記検査が行われるべき探索深度xについての前記予想深度別検査時間をg(x)、前記探索深度nについての前記深度別検査時間をf(n)、前記探索深度n−1についての前記深度別検査時間をf(n−1)と表すとき、
    g(x)={f(n)−f(n−1)}×(x−n)+f(n)
    で表される式を用いて、前記探索深度xについての前記予想深度別検査時間g(x)を算出する
    検査時間制御装置。
  3. 請求項1または請求項2に記載の検査時間制御装置であって、
    前記予想検査時間算出部は、
    前記到達可能性検査部が前記探索深度nについての前記検査を完了したときに、最初の探索深度0から前記探索深度nまでの各々についての前記深度別検査時間を合計した時間を、前記検査制限時間から減算することによって前記残検査制限時間を算出する
    検査時間制御装置。
  4. 請求項1から請求項までのいずれかに記載の検査時間制御装置であって、
    前記プログラムと前記検査仕様から前記状態遷移モデルを作成する状態遷移モデル作成部をさらに備え
    検査時間制御装置。
  5. 請求項1から請求項4のいずれかに記載の検査時間制御装置であって
    前記状態遷移モデルを保存している記憶装置をさらに備え、
    前記最短探索深度算出部は、
    前記最短探索深度を前記記憶装置から読み出した前記状態遷移モデルを用いて算出し、算出した前記最短探索深度を前記記憶装置に保存し、
    前記到達可能性検査部は、
    前記探索深度n−1についての前記検査を完了したときに測定した前記探索深度n−1についての前記深度別検査時間と、前記探索深度nについての前記検査を完了したときに測定した前記探索深度nについての前記深度別検査時間とを前記記憶装置に保存し、
    前記予想検査時間算出部は、
    前記最短探索深度算出部によって前記記憶装置に保存された前記最短探索深度と、前記到達可能性検査部によって前記記憶装置にそれぞれ保存された前記探索深度nについての前記深度別検査時間および前記探索深度n−1についての前記深度別検査時間とを用いて前記仕様到達予想時間を算出する
    検査時間制御装置。
  6. 検査時間制御装置によって実行される検査時間制御方法であって、
    前記検査時間制御装置は、
    最短探索深度算出部と、
    到達可能性検査部と、
    予想検査時間算出部と
    を備え、
    当該検査時間制御方法は、
    検査の対象であるプログラムの実行文の実行回数をそれぞれ表す複数の探索深度のうち、前記プログラムの初期状態から前記プログラムの検査仕様を満たすことを示す仕様充足状態へ状態を遷移するために要する最短探索深度を前記最短探索深度算出部が状態遷移モデルを用いて算出する最短探索深度算出ステップと、
    前記プログラムの検査にあたって、前記複数の探索深度の各々について前記初期状態から前記仕様充足状態へ状態を遷移することが可能であるかの検査を前記到達可能性検査部がプロパティ検証により実行する検査実行ステップと、
    前記複数の探索深度の各々についての前記検査に要した時間である深度別検査時間を前記到達可能性検査部が測定する深度別検査時間測定ステップと、
    前記検査実行ステップで前記到達可能性検査部が前記複数の探索深度の各々についての前記検査を完了する毎に、前記最短探索深度算出ステップで前記最短探索深度算出部が算出した前記最短探索深度と前記深度別検査時間測定ステップで前記到達可能性検査部が測定した前記深度別検査時間とを用いて、前記最短探索深度まで前記検査を完了するために要する予想時間仕様到達予想時間として前記予想検査時間算出部が算出する予想検査時間算出ステップ
    前記検査実行ステップで前記仕様到達予想時間が前記プログラムの前記検査に対する検査制限時間のうち残りの時間である残検査制限時間を超過する場合には、前記到達可能性検査部が前記プログラムの前記検査を途中で終了する検査終了ステップと
    を備え、
    前記状態遷移モデルは、
    前記プログラムがとりうる複数の状態を備え、前記初期状態から前記仕様充足状態までの経路上に前記複数の状態があるというコントロールフローグラフで表わされた状態遷移モデルであって、前記複数の状態に加え、前記初期状態から前記仕様充足状態までの遷移の途中で前記経路を分岐させる分岐条件を備え、
    前記初期状態から前記仕様充足状態までの間には、前記分岐条件があるために複数の経路が存在し、
    前記最短探索深度算出ステップで前記最短探索深度算出部は、
    前記状態遷移モデルを前記分岐条件を無視した有向グラフとして扱うことにより、前記複数の経路の中から前記プログラムの前記初期状態から前記仕様充足状態までの最短経路を前記プログラムの前記実行回数が最小となる前記最短探索深度として求め、
    前記予想検査時間算出ステップで前記予想検査時間算出部は、
    前記検査実行ステップで前記到達可能性検査部が前記複数の探索深度のうち探索深度nについての前記検査を完了したときに、次の探索深度n+1から前記最短探索深度までの前記検査に要する予想時間を前記仕様到達予想時間として算出し、
    前記仕様到達予想時間の算出にあたって、前記検査実行ステップで前記到達可能性検査部が前記探索深度nについての前記検査を完了したときに、当該検査から前記探索深度n+1についての前記検査が完了するまでに要する予想深度別検査時間を、前記探索深度nについての前記深度別検査時間と前記探索深度nよりも前の探索深度n−1についての前記深度別検査時間との差分から算出し、
    前記探索深度n+1から前記最短探索深度までの各々についての前記予想深度別検査時間を合計することにより前記仕様到達予想時間を算出し、
    前記検査終了ステップで前記到達可能性検査部は、
    前記探索深度nについての前記検査を完了したときに、前記仕様到達予想時間が前記残検査制限時間を超過する場合には、前記プログラムの前記検査を途中で終了する
    検査時間制御方法。
  7. 請求項6に記載の検査時間制御方法であって、
    前記予想検査時間算出ステップで前記予想検査時間算出部は、
    これから前記検査が行われるべき探索深度xについての前記予想深度別検査時間をg(x)、前記探索深度nについての前記深度別検査時間をf(n)、前記探索深度n−1についての前記深度別検査時間をf(n−1)と表すとき、
    g(x)={f(n)−f(n−1)}×(x−n)+f(n)
    で表される式を用いて、前記探索深度xについての前記予想深度別検査時間g(x)を算出す
    査時間制御方法。
  8. 請求項6または請求項7に記載の検査時間制御方法であって、
    前記検査終了ステップで前記予想検査時間算出部は、
    前記検査実行ステップで前記到達可能性検査部が前記探索深度nについての前記検査を完了したときに、最初の探索深度0から前記探索深度nまでの各々についての前記深度別検査時間を合計した時間を、前記検査制限時間から減算することによって前記残検査制限時間を算出す
    査時間制御方法。
  9. 請求項から請求項までのいずれかに記載の検査時間制御方法であって、
    前記検査時間制御装置は、
    状態遷移モデル作成部を更に備え、
    前記最短探索深度算出ステップで前記状態遷移モデル作成部は、
    前記プログラムと前記検査仕様から前記状態遷移モデルを作成す
    査時間制御方法。
  10. 請求項6から請求項9のいずれかに記載の検査時間制御方法であって
    前記検査時間制御装置は、
    前記状態遷移モデルを保存している記憶装置をさらに備え、
    前記最短探索深度算出ステップで前記最短探索深度算出部は、
    前記最短探索深度を前記記憶装置から読み出した前記状態遷移モデルを用いて算出し、
    算出した前記最短探索深度を前記記憶装置に保存し、
    前記深度別検査時間測定ステップで前記到達可能性検査部は、
    前記探索深度n−1についての検査を完了したときに測定した前記探索深度n−1についての前記深度別検査時間を前記記憶装置に保存し、
    前記探索深度nについての検査を完了したときに測定した前記探索深度nについての前記深度別検査時間を前記記憶装置に保存し、
    前記予想検査時間算出ステップで前記予想検査時間算出部は、
    前記最短探索深度算出ステップで前記記憶装置に保存された前記最短探索深度と、前記深度別検査時間測定ステップで前記記憶装置にそれぞれ保存された前記探索深度nについての前記深度別検査時間および前記探索深度n−1についての前記深度別検査時間とを用いて前記仕様到達予想時間を算出す
    査時間制御方法。
  11. 処理部を備えるコンピュータに実行させるコンピュータプログラムであって、
    前記処理部は、
    最短探索深度算出部と、
    到達可能性検査部と、
    予想検査時間算出部と
    を備え、
    当該コンピュータプログラムは、
    検査の対象であるプログラムの実行文の実行回数をそれぞれ表す複数の探索深度のうち、前記プログラムの初期状態から前記プログラムの検査仕様を満たすことを示す仕様充足状態へ状態を遷移するために要する最短探索深度を前記最短探索深度算出部に状態遷移モデルを用いて算出させる最短探索深度算出ステップと、
    前記プログラムの検査にあたって、前記複数の探索深度の各々について前記初期状態から前記仕様充足状態へ状態を遷移することが可能であるかの検査をプロパティ検証により前記到達可能性検査部に実行させる検査実行ステップと、
    前記複数の探索深度の各々についての前記検査に要した時間である深度別検査時間を前記到達可能性検査部に測定させる深度別検査時間測定ステップと、
    前記検査実行ステップで前記到達可能性検査部が前記複数の探索深度の各々についての前記検査を完了する毎に、前記最短探索深度算出ステップで前記最短探索深度算出部が算出した前記最短探索深度と前記深度別検査時間測定ステップで前記到達可能性検査部が測定した前記深度別検査時間とを用いて、前記最短探索深度まで前記検査を完了するために要する予想時間を仕様到達予想時間として前記予想検査時間算出部に算出させる予想検査時間算出ステップと
    前記検査実行ステップで前記仕様到達予想時間が前記プログラムの前記検査に対する検査制限時間のうち残りの時間である残検査制限時間を超過する場合には、前記到達可能性検査部に前記プログラムの前記検査を途中で終了させる検査終了ステップと
    を備え、
    前記状態遷移モデルは、
    前記プログラムがとりうる複数の状態を備え、前記初期状態から前記仕様充足状態までの経路上に前記複数の状態があるというコントロールフローグラフで表わされた状態遷移モデルであって、前記複数の状態に加え、前記初期状態から前記仕様充足状態までの遷移の途中で前記経路を分岐させる分岐条件を備え、
    前記初期状態から前記仕様充足状態までの間には、前記分岐条件があるために複数の経路が存在し、
    前記最短探索深度算出ステップでは前記最短探索深度算出部に、
    前記状態遷移モデルを前記分岐条件を無視した有向グラフとして扱うことにより、前記複数の経路の中から前記プログラムの前記初期状態から前記仕様充足状態までの最短経路を前記プログラムの前記実行回数が最小となる前記最短探索深度として求めさせ、
    前記予想検査時間算出ステップでは前記予想検査時間算出部に、
    前記検査実行ステップで前記到達可能性検査部が前記複数の探索深度のうち探索深度nについての前記検査を完了したときに、次の探索深度n+1から前記最短探索深度までの前記検査に要する予想時間を前記仕様到達予想時間として算出させ、
    前記仕様到達予想時間の算出にあたって、前記検査実行ステップで前記到達可能性検査部が前記探索深度nについての前記検査を完了したときに、当該検査から前記探索深度n+1についての前記検査が完了するまでに要する予想深度別検査時間を、前記探索深度nについての前記深度別検査時間と前記探索深度nよりも前の探索深度n−1についての前記深度別検査時間との差分から算出させ、
    前記探索深度n+1から前記最短探索深度までの各々についての前記予想深度別検査時間を合計することにより前記仕様到達予想時間を算出させ、
    前記検査終了ステップでは前記到達可能性検査部に、
    前記探索深度nについての前記検査を完了したときに、前記仕様到達予想時間が前記残検査制限時間を超過する場合には、前記プログラムの前記検査を途中で終了させる
    コンピュータプログラム。
JP2007289334A 2007-11-07 2007-11-07 検査時間制御装置、方法、およびプログラム Expired - Fee Related JP4947427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007289334A JP4947427B2 (ja) 2007-11-07 2007-11-07 検査時間制御装置、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007289334A JP4947427B2 (ja) 2007-11-07 2007-11-07 検査時間制御装置、方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009116643A JP2009116643A (ja) 2009-05-28
JP4947427B2 true JP4947427B2 (ja) 2012-06-06

Family

ID=40783724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007289334A Expired - Fee Related JP4947427B2 (ja) 2007-11-07 2007-11-07 検査時間制御装置、方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4947427B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4952826B2 (ja) * 2009-12-28 2012-06-13 キヤノンマーケティングジャパン株式会社 電子メール監査装置、その制御方法及びプログラム
JP5595304B2 (ja) * 2011-02-24 2014-09-24 三菱電機株式会社 プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063537A (ja) * 1996-08-21 1998-03-06 Fujitsu Ltd プロパティ検証方法および装置
JP4200534B2 (ja) * 1997-02-17 2008-12-24 新日鉄ソリューションズ株式会社 データフロー異常検査装置
JP3663067B2 (ja) * 1998-12-17 2005-06-22 富士通株式会社 論理装置の検証方法、検証装置及び記録媒体
JP4577475B2 (ja) * 2001-07-19 2010-11-10 日本電気株式会社 同期式順序回路のプロパティ検証方法および装置
JP2004005399A (ja) * 2002-04-05 2004-01-08 Sharp Corp ソフトウェアのテスト方法および装置
US7711525B2 (en) * 2002-05-30 2010-05-04 Nec Corporation Efficient approaches for bounded model checking

Also Published As

Publication number Publication date
JP2009116643A (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
JP6607565B2 (ja) セーフティクリティカルソフトウェアのための統合された自動テストケース生成
JP5901140B2 (ja) システムの高い可用性のためにセンサデータを補間する方法、コンピュータプログラム、システム。
US10466671B2 (en) System and method for an optimized operation of real-time embedded solutions in industrial automation
US20140188405A1 (en) Predicting a time of failure of a device
WO2020010710A1 (zh) 预测模型的生成方法、装置及计算机可读存储介质
JP4800299B2 (ja) コスト情報管理システム、コスト情報管理方法およびコスト情報管理プログラム
US9639454B2 (en) Computer-readable recording medium storing therein test data generating program, test data generating method, test data generating apparatus and information processing system
US20170212928A1 (en) Cognitive decision making based on dynamic model composition
JP2011129028A (ja) 総テスト時間を最小にするようにテストシナリオを最適化するテスト支援装置、テスト装置、テスト支援方法及びコンピュータプログラム
US20120174231A1 (en) Assessing System Performance Impact of Security Attacks
JP6245006B2 (ja) テストケース生成装置、方法、及びプログラム
JP2015049606A (ja) 管理システム、管理対象装置、管理装置、方法及びプログラム
JP4947427B2 (ja) 検査時間制御装置、方法、およびプログラム
US10929265B2 (en) Optimizing automated interactions with web applications
Brameret et al. Preliminary system safety analysis with limited markov chain generation
US20160084906A1 (en) Debug circuit, semiconductor device, and debug method
Godara et al. A review of studies on change proneness prediction in object oriented software
JP2009134360A (ja) モデル検査システム、モデル検査方法およびモデル検査用プログラム
US10908902B2 (en) Distance based branch prediction and detection of potential call and potential return instructions
TWI654511B (zh) 用於多循環指令之時脈閘控之方法、系統及電腦程式產品
US10921167B1 (en) Methods and apparatus for validating event scenarios using reference readings from sensors associated with predefined event scenarios
JP6492772B2 (ja) 情報処理装置、モデル生成プログラムおよびモデル生成方法
JP2009187288A (ja) プロジェクト変調検出方法およびプロジェクト変調検出装置
JP5807732B2 (ja) 性能予測装置、性能予測方法および性能予測プログラム
JP2019091199A (ja) 計算機、ボトルネック特定方法、及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120124

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

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

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees