JP6854994B1 - 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム - Google Patents
動作確認支援装置、動作確認支援方法及び動作確認支援プログラム Download PDFInfo
- Publication number
- JP6854994B1 JP6854994B1 JP2020570075A JP2020570075A JP6854994B1 JP 6854994 B1 JP6854994 B1 JP 6854994B1 JP 2020570075 A JP2020570075 A JP 2020570075A JP 2020570075 A JP2020570075 A JP 2020570075A JP 6854994 B1 JP6854994 B1 JP 6854994B1
- Authority
- JP
- Japan
- Prior art keywords
- code
- target arrival
- inspection
- inspection condition
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims description 129
- 238000007689 inspection Methods 0.000 claims abstract description 295
- 238000006243 chemical reaction Methods 0.000 claims abstract description 78
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 230000014509 gene expression Effects 0.000 claims description 115
- 238000012790 confirmation Methods 0.000 claims description 86
- 230000008569 process Effects 0.000 claims description 79
- 230000007704 transition Effects 0.000 claims description 47
- 238000010586 diagram Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 24
- 238000012986 modification Methods 0.000 description 16
- 230000004048 modification Effects 0.000 description 16
- 239000000284 extract Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
Description
このような場合、担当者は目標となる特定の状態にソフトウェアの内部状態を遷移させるための入力値を決定する必要がある。そして、担当者は決定した入力値をソフトウェアに入力することで、ソフトウェアの内部状態が実際に目標となる特定の状態へ遷移することが実現できるかを確認する。又は、担当者は、目標となる特定の状態への遷移の実現により、ソフトウェアにより制御される機器が目標となる特定の状態への遷移に対応して動作することができるかを確認する。
このソフトウェア開発時の動作確認における入力値の作成に関する工数増加を抑制するために、数学及び論理学に基づいてシステムの性質を証明する形式検証技術を用いて、動作確認に必要な入力値を自動で生成する手法がある。
また、担当者が人手で内部状態値をSATソルバが解析可能な論理式を作成しなければならない作業も必要となる。したがって、内部状態値をSATソルバが解析可能な論理式を作成する作業により動作確認の工数が増加してしまうといった課題があった。
特に、大規模なソフトウェア等では、内部状態が取りうる状態の数は多く複雑である。このようなソフトウェアの動作確認では、目標となる特定の内部状態を選択し、内部状態に関する仕様情報を参照し、その目標となる特定の内部状態を表す内部状態値を決定する作業は困難であり、動作確認の工数が大幅に増加してしまう。
入力値を読み込んで動作する動作プログラムのソースコードである動作コードを取得するプログラム情報取得部と、
前記動作コードの目標到達箇所を含む目標到達箇所に関する情報を検査条件として取得する検査条件取得部と、
前記検査条件取得部が取得した前記検査条件に含まれる目標到達箇所へ到達したことを判定する判定式を生成する検査条件変換部と、
前記検査条件変換部が生成した前記判定式を用いて前記目標到達箇所へ到達させる前記入力値として生成値を生成する解析部とを備える。
なお、本開示は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態のうち、2つ以上の実施の形態が組み合わせられて実施されても構わない。あるいは、以下に説明する実施の形態のうち、1つの実施の形態又は2つ以上の実施の形態の組み合わせが部分的に実施されても構わない。
以下の説明では、本開示の動作確認対象のソフトウェアを被確認ソフトウェアと示す。そして、被確認ソフトウェアのプログラムを動作プログラムと示す。また、動作プログラムのソースコードを動作コードと示す。
本実施の形態について、図1から図7を用いて説明する。
***構成の説明***
図1を参照して、本実施の形態に係る動作確認支援装置10のハードウェア構成例を説明する。
動作確認支援装置10は、コンピュータである。動作確認支援装置10は、プロセッサ11を備えるとともに、メモリ12、通信装置13、及び入出力装置14といった他のハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
なお、動作確認支援装置10の動作手順は、動作確認支援方法に相当する。また、動作確認支援装置10の動作を実現するプログラムは、動作確認支援プログラムに相当する。
プロセッサ11は、動作確認支援装置10の動作を実現するプログラムを実行する。動作確認支援装置10の動作を実現するプログラムは、後述の、プログラム情報取得部15、検査条件取得部16、検査条件変換部17、解析部18、及び入力値出力部19の機能を実現するプログラムである。
メモリ12には、動作確認支援装置10の動作を実現するプログラム、動作コード30、及び被確認ソフトウェアの仕様情報が記憶される。被確認ソフトウェアは、任意の種類のソフトウェアでよいが、本実施の形態では組込みソフトウェアであるとして説明を進める。
入力機器は、具体例としては、マウス、キーボード、タッチパネル、又は、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、具体例としては、LCD(Liquid Crystal Display)である。ディスプレイは、後述のプログラム情報取得部15が取得した動作コード30を表示してもよい。また、ディスプレイは、後述の入力値出力部19が出力した入力値を表示してもよい。なお、入力値出力部19が出力した入力値は、後述の解析部18が生成する入力値と同一であり、以下では生成値34として説明する。
動作確認支援装置10の動作を実現するプログラム、動作コード30、被確認ソフトウェアの仕様情報、及びOSは、補助記憶装置に記憶されていてもよい。補助記憶装置は、具体例としては、ハードディスク、フラッシュメモリ又はこれらの組み合わせである。また、補助記憶装置は、SSD(登録商標、Solid State Drive)、SD(登録商標、Secure Digital)メモリカード、CF(登録商標、CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(登録商標、Digital Versatile Disk)といった可搬記録媒体又はこれらの組み合わせであってもよい。
動作確認支援装置10は、プロセッサ11を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、動作確認支援装置10の動作を実現するプログラムの実行を分担する。それぞれのプロセッサは、具体例としては、CPUである。
動作確認支援装置10の動作を実現するプログラムにより利用、処理又は出力されるデータ、情報、信号値、及び変数値は、メモリ12、補助記憶装置、又は、プロセッサ11内のレジスタ又はキャッシュメモリの少なくともいずれかに記憶される。
動作確認支援装置10は、プログラム情報取得部15、検査条件取得部16、検査条件変換部17、解析部18、及び入力値出力部19を備える。
検査条件31には、少なくとも1つ以上の目標到達箇所が含まれる。目標到達箇所は、動作コード30における特定の箇所であり、動作確認の目標とする箇所である。より具体的には、目標到達箇所は、動作コード30の行番号である。したがって、目標到達箇所情報は動作コード30の行番号として入力され、検査条件取得部16により検査条件31として取得される。また、それに限らず、入出力装置14を介してディスプレイに表示された動作コード30に直接、目標到達箇所をマーキングし、指定することで目標到達箇所情報が入力されてもよい。
本実施の形態では、検査条件31に含まれる目標到達箇所へ到達したことを判定する判定式は、解析部18が解析可能な論理式として生成される。この判定式の論理式は、目標到達箇所を示す動作コード30の行番号へ到達したときに満たされる条件を示した条件式の論理式であり、目標到達条件式32ともいう。
また、検査条件変換部17は、検査条件取得部16が取得した検査条件31を基に、目標到達箇所変数を用いた到達判定に用いるコードをプログラム情報取得部15が取得した動作コード30に追加した検査用コードを生成する。そして、検査条件変換部17は、検査用コードを解析部18のSATソルバが解析可能な論理式へ変換して検査用コードの論理式33を生成する。
したがって、検査条件変換部17の出力は、目標到達条件式32と検査用コードの論理式33となる。
また、動作確認支援装置10は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
この場合は、プログラム情報取得部15、検査条件取得部16、検査条件変換部17、解析部18、及び入力値出力部19は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
動作確認支援装置10の動作を実現するプログラムは、プログラム情報取得部15、検査条件取得部16、検査条件変換部17、解析部18、及び入力値出力部19により行われる手順をそれぞれプログラム情報取得手順、検査条件取得手順、検査条件変換手順、解析手順及び入力値出力手順としてコンピュータに実行させるプログラムである。
図3から図7を参照して、本実施の形態に係る動作確認支援装置10の動作例を説明する。
検査用コードは、動作コード30において、目標到達箇所の行へ到達時に必ず実行される、目標到達箇所の行の前後の行のうちどちらか一方に、目標到達箇所変数の演算式で示されるコードを挿入したものとなる。
そして、検査条件変換部17は、検査用コードを解析部18のSATソルバが解析可能な論理式へ変換して検査用コードの論理式33を生成する。そして、処理はステップS105へ進む。
なお、ステップS105の処理とステップS104の処理とは依存関係がないため、動作確認支援装置10は実行順序を入れ替えて実行したり並行して実行したりしてもよい。
論理積の解である入力値が存在した場合、解析部18は、目標到達箇所へ到達させる入力値として生成値34を生成する。そして、処理はステップS107へ進む。
一方、論理積の解である入力値が存在しない場合、解析部18は、生成値34を生成せず、生成値34を生成できなかったことを入力値出力部19に通知する。そして、処理はステップS108へ進む。
具体的には、以下の例では、図4に示す動作コード30で生成される被確認ソフトウェアのSLEEPモードでの動作確認のために、動作確認支援装置10が被確認ソフトウェアの内部状態をSLEEPモードへ遷移させる生成値34を生成する動作を説明する。
なお、図4の左端にある数字列は動作コード30の行番号を示す。
本例の動作コード30は、被確認ソフトウェアの内部状態である動作モードを表すモード変数modeと、入力値を代入する2つの入力変数Demo_I_x及びDemo_I_yと、出力値を代入する出力変数Demo_Oとを有する。
なお、本例では動作コード30は1つの関数mainを記述した1ファイルだけだが、これに限らず、複数の関数又は複数のファイルの集合であってもよい。
本例において、動作コード30における目標到達箇所は、「動作モードがSLEEPモードに遷移した被確認ソフトウェアの内部状態」に相当する図4に示す動作コード30の26行目である。
したがって、本例では、担当者は、入出力装置14を介して検査条件取得部16に直接、「動作コード30の26行目」という情報を、目標到達箇所情報として入力する。
ただし、目標到達箇所情報の入力方法はこれに限らず、図5で示すように、入出力装置14を介してディスプレイに表示された動作コード30に目標到達箇所を視覚的にマーキングする方法等、動作コード30の中の特定箇所を指定して入力する方法であればよい。
ここで定義される目標到達箇所変数reachの初期値は0である。
さらに、検査条件変換部17は、検査用コードをSATソルバが解析可能な論理式に変換して、検査用コードの論理式33を生成する。そして、処理はステップS105に進む。
本例では、被確認ソフトウェアの実行処理がreach++;を挿入された検査用コードの27行目に到達し、目標到達条件式32である「reach>0」を真にする解である目標到達箇所へ到達させる入力値が存在する。したがって、目標到達箇所へ到達させる入力値として生成値34が生成される。そのため、処理はステップS107へ進む。
図7の右下の表は、被確認ソフトウェアへの入力として、3回の被確認ソフトウェアの実行周期の各々の周期に入力変数Demo_I_x及びDemo_I_yへ代入される入力値を示す。
具体的には、1周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値は、10と3である。また、2周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値は、90と3である。また、3周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値は、どちらも任意の値を示すxxとyyである。
具体的には、1周期目の開始時、出力変数Demo_Oは値をもたず、モード変数modeはSTARTである。入力変数Demo_I_x及びDemo_I_yへ10と3が代入されると、動作コード30の8行目及び9行目の処理が実行され、出力変数Demo_Oに100が、モード変数modeにRUNが代入される。そして、1周期目の終了時には出力変数Demo_Oは100となり、モード変数modeはRUNとなる。
また、2周期目の開始時、出力変数Demo_Oは100、モード変数modeはRUNである。入力変数Demo_I_x及びDemo_I_yへ90と3が代入されると、動作コード30の21行目及び22行目の処理が実行され、出力変数Demo_Oに50が、モード変数modeにSLEEPが代入される。そして、1周期目の終了時には出力変数Demo_Oは50となり、モード変数modeはSLEEPとなる。
また、3周期目の開始時、出力変数Demo_Oは50、モード変数modeはSLEEPである。入力変数Demo_I_x及びDemo_I_yへ代入される値がどの値であるかに関わらず、被確認ソフトウェアの実行処理が本例の目標到達箇所を示す動作コード30の26行目に到達する。
このように、本実施の形態では、生成される生成値34は、1周期分のみとは限らず、複数周期分の入力値列として生成されてもよい。
なお、本例では、検査条件取得部16が1つの目標到達箇所を含む目標到達箇所情報を検査条件31として取得する場合を説明したが、それに限らず、複数の目標到達箇所を含む目標到達箇所情報を検査条件31として取得してもよい。具体例としては、「動作コード30の11行目と26行目」というように、検査条件取得部16は2つの目標到達箇所を示す動作コード30の2つの行番号を検査条件31として取得してもよい。
そして、動作確認支援装置10は、これら「動作コード30の11行目と26行目」という2つの目標到達箇所の両方の目標到達箇所へ到達するような生成値34を生成してもよい。
また、動作確認支援装置10は、2つの目標到達箇所の両方の目標到達箇所へ到達するような生成値34を生成できなかった場合、2つの目標到達箇所の両方の目標到達箇所へ到達するような生成値34を生成できなかったことを通知してもよい。
また、動作確認支援装置10は、2つの目標到達箇所の両方へ到達するような生成値34を生成できず、且ついずれかの目標到達箇所へのみ到達する生成値34を生成できた場合、2つの目標到達箇所の両方の目標到達箇所へ到達するような生成値34を生成できなかったことと共にいずれかの目標到達箇所へしか到達できないことを通知してもよい。
以上のように、本実施の形態では、担当者が被確認ソフトウェアの内部状態に関する仕様情報を参照せずとも、動作コード30に目標到達箇所(上記例では26行目)を指定するだけで、動作確認の目標となる特定の内部状態を検査条件31として入力できる。そして、動作確認支援装置10は、この検査条件31を用いて、目標到達箇所へ到達させる生成値34を生成することができる。
よって、上記例では、内部状態を26行目で示される特定の状態へ遷移させる被確認ソフトウェアの動作確認、又はその特定の状態において被確認ソフトウェアにより制御される機器の動作確認に担当者が内部状態値を決定する作業が不要となる。したがって、動作確認に要する工数を削減することができる。
よって、解析部18の用いるSATソルバが解析可能な論理式を担当者が人手で作成する必要が無くなる。したがって、動作確認に要する工数の削減に加えて、数学的知識を持っていなくても担当者が動作確認することも可能となる。
また、生成値34が生成できないことを通知することによって、担当者は、検査条件31として入力した目標到達箇所で示される状態への状態遷移が、被確認ソフトウェアにおいて起こりえない動作であることを確認することができる。
したがって、被確認ソフトウェアの振舞いが仕様に従って実装されていない可能性を示すこともできる。
まず、担当者は、被確認ソフトウェアの仕様情報を参照し、動作確認の目標とするSLEEPモードが、内部状態を表す動作モードにおける特定の状態であり、動作モードはモード変数modeの値により表されることを理解する必要がある。
次に、担当者は、被確認ソフトウェアの仕様情報から、SLEEPモードを表すモード変数modeの値を決定する必要がある。
さらに、このようにして決定したSLEEPモードを表すモード変数modeを、SATソルバが解析可能な論理式に変換する必要がある。
図4の動作コード30は1つの関数mainを記述した1ファイルだけであるが、被確認ソフトウェアが大規模かつ複雑な場合は、動作確認の目標となる内部状態値は多く複雑であるため、動作確認の工数は大幅に増加する。
<変形例1>
実施の形態1では、プログラム情報取得部15は、動作コード30を取得する例を説明した。しかし、プログラム情報取得部15は、動作プログラムとしてノード又はブランチを含むAST(Abstract Syntax Tree)で作成されたASTプログラムを取得し、ASTプログラムのソースコードであるASTコードへと変換し、動作コード30としてASTコードを取得してもよい。
変形例1では、担当者は、入出力装置14を介して検査条件取得部16に直接、目標到達箇所を示すノード又はブランチに関する情報を、目標到達箇所情報として入力する。また、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示されたASTに含まれるノード又はブランチを視覚的に指定して入力する方法であってもよい。
図3のステップS101においてASTコードが取得された場合、図3のステップS102において、検査条件取得部16は、目標到達箇所を示すノード又はブランチに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。そして、図3のステップS104において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はブランチに対応するコードの行番号を抽出し、検査用コードの論理式33を生成してもよい。そして、図3のステップS105において、動作コード30の中の目標到達箇所を示すノード又はブランチに対応するコードの行番号へ到達したときに満たされる目標到達条件式32を生成してもよい。
変形例2として、プログラム情報取得部15は、動作プログラムとしてノード又はエッジを含む状態遷移図で作成された状態遷移プログラムを取得し、状態遷移プログラムのソースコードである状態遷移コードへと変換し、動作コード30として状態遷移コードを取得してもよい。
変形例2では、担当者は、入出力装置14を介して検査条件取得部16に直接、目標到達箇所を示すノード又はエッジに関する情報を、目標到達箇所情報として入力する。また、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示された状態遷移図の中のノード又はエッジを視覚的に指定して入力する方法であってもよい。
図3のステップS101において状態遷移コードが取得された場合、図3のステップS102において、検査条件取得部16は、目標到達箇所を示すノード又はエッジに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。そして、図3のステップS104において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はエッジに対応するコードの行番号を抽出し、検査用コードの論理式33を生成してもよい。そして、図3のステップS105において、動作コード30の中の目標到達箇所を示すノード又はエッジに対応するコードの行番号へ到達したときに満たされる目標到達条件式32を生成してもよい。
本実施の形態について、図8から図11を用いて説明する。
本実施の形態では、検査条件31に複数の目標到達箇所とそれら複数の目標到達箇所の到達順序とが含まれる例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
本実施の形態に係る動作確認支援装置10のハードウェア構成は、図1に示した実施の形態1の構成と同一であるため、その説明を省略する。
本実施の形態に係る検査条件変換部17は、実施の形態1と同様に目標到達条件式32と検査用コードとを生成した後、検査用コードと検査条件31とを基に、条件付き検査用コードを生成する。
そして、検査条件変換部17は、条件付き検査用コードを解析部18のSATソルバが解析可能な論理式に変換して条件付き検査用コードの論理式を生成する。
したがって、検査条件変換部17の出力は、目標到達条件式32と条件付き検査用コードの論理式となる。
まず、図8のフローチャートを参照して、本実施の形態に係る動作確認支援装置10の処理動作の例を説明する。なお、実施の形態1と同一の動作には同一番号を付してその説明を省略する。
ステップS101が完了した後、ステップS202において、検査条件取得部16は、検査条件31として、動作コード30の目標到達箇所情報を、入出力装置14を介して外部装置から取得する。そして、処理はステップS203へ進む。
検査条件取得部16が取得した検査条件31には、複数の目標到達箇所とそれら複数の目標到達箇所の到達順序(以下、目標到達順序という)とが含まれる。
動作コード30には、複数の目標到達箇所の各々の行へ到達時に必ず実行される行に、複数の目標到達箇所変数を用いた到達判定に用いるコードが追加される。つまり、検査用コードは、動作コード30に、複数の目標到達箇所の各々の行の前後の行のうちどちらか一方に、各々の目標到達箇所変数の演算式で示される到達判定に用いるコードを挿入したものとなる。
目標到達順序条件式は、目標到達順序の通りに複数の目標到達箇所の各々へ到達して、到達判定に用いるコードが実行された場合の目標到達箇所変数が満たす条件を、目標到達箇所変数又は目標到達箇所変数の否定を用いた論理積で記述した式である。なお、目標到達順序条件式の数は、複数の目標到達箇所の数と同数である。
検査条件変換部17が生成する条件付き検査用コードは、検査用コードの中の目標到達箇所変数の演算式で示される到達判定に用いるコードを挿入した各々行の後の行に、各々の目標到達順序条件式を挿入したものとなる。
検査条件変換部17が生成する目標到達条件式32は、条件付き検査用コードにおける目標到達箇所を目標到達順序の通りに到達し、全ての目標到達順序条件式が真となることを検査するための条件式である。そのため、目標到達条件式32は、目標到達順序条件式の論理積により構成される。
なお、ステップS207の処理とステップS206の処理とは依存関係がないため、被確認ソフトウェアは実行順序を入れ替えて実行したり並行して実行したりしてもよい。
論理積の解である入力値が存在する場合、解析部18は、目標到達箇所へ到達させる入力値として生成値34を生成する。そして、処理はステップS107へ進む。
一方、論理積の解である入力値が存在しない場合、解析部18は、生成値34を生成せず、生成値34を生成できなかったことを入力値出力部19に通知する。そして、処理はステップS108へ進む。
ステップS107及びステップS108は、上述の通りであるため、説明を省略する。
具体的には、以下の例では、担当者が「STARTモードから開始して、RUNモード、STOPモード、SLEEPモード、ReSTARTモード、ENDモードの順序で動作モードが遷移する」という動作確認を行う。
この動作確認のため、担当者が動作コード30に5つの目標到達箇所と目標到達順序とを検査条件31として指定して入力することによって、動作確認支援装置10が5つの目標到達箇所へ目標到達順序の通りに到達させる生成値34を生成する例を説明する。
図9の左端の円は目標到達箇所を示す。また、図9の左端の円内に記述された1から5までの数字は目標到達順序を示す。
つまり、図9の例では、動作コード30に5つの目標到達箇所が指定されていることを示す。また、目標到達順序は、目標到達箇所1(10行目)、目標到達箇所2(21行目)、目標到達箇所3(33行目)、目標到達箇所4(56行目)、目標到達箇所5(79行目)の順であることを示す。
なお、本例では動作コード30は1つの関数mainを記述した1ファイルだけだが、これに限らず、複数の関数又は複数のファイルの集合であってもよい。
検査条件取得部16が取得した検査条件31には、複数の目標到達箇所と複数の目標到達箇所の到達順序である目標到達順序とが含まれる。
本例の動作確認の目標は、以下の(1)から(6)で示される。
(1)被確認ソフトウェアの内部状態である動作モードがRUNモードに遷移する。
(2)動作モードがSTOPモードに遷移する。
(3)動作モードがSLEEPモードに遷移する。
(4)動作モードがReSTARTモードに遷移する。
(5)動作モードがENDモードに遷移する。
(6)動作モードが、STARTモードから開始して、RUNモード、STOPモード、SLEEPモード、ReSTARTモード、ENDモードの順序で遷移する。
そのため、検査条件31となる複数の目標到達箇所は、(1)から(5)の各々の被確認ソフトウェアの内部状態の遷移に相当する、動作コード30の10行目、21行目、33行目、56行目、79行目となる。
また、検査条件31となる目標到達順序は、(6)の被確認ソフトウェアの内部状態の遷移順序に相当する、動作コード30の10行目から順に、21行目、33行目、56行目、79行目となる。
したがって、本例では、担当者は、入出力装置14を介して検査条件取得部16に直接、「動作コード30の10行目、21行目、33行目、56行目、79行目」という複数の目標到達箇所を示す情報を、目標到達箇所情報として入力する。また、担当者は、「最初に10行目、続いて21行目、33行目、56行目、79行目の順」という目標到達順序を示す情報を、目標到達箇所情報として入力する。
ただし、目標到達箇所情報の入力方法はこれに限らず、図9で示すように、入出力装置14を介してディスプレイに表示された動作コード30に直接、複数の目標到達箇所と目標到達順序とを視覚的にマーキングする等、動作コード30の中の特定箇所と順序とを指定して入力する方法であればよい。
具体的には、検査条件変換部17は、11行目に「reach1++;」、22行目に「reach2++;」、34行目に「reach3++;」、57行目に「reach4++;」、80行目に「reach5++;」を動作コード30挿入して検査用コードを生成する。そして、処理はステップS205へ進む。
本例の目標到達順序条件式は、動作コード30の5つの目標到達箇所を目標到達順序の通りに到達して、到達判定に用いるコードが実行された場合の5つの目標到達箇所変数が満たす条件を記述した式である。また、目標到達順序条件式は、目標到達箇所変数又は目標到達箇所変数の否定を用いた論理積で記述した式である。
具体的には、検査条件変換部17は、12行目にcondition1、25行目にcondition2、39行目にcondition3、64行目にcondition4、89行目にcondition5を挿入し、条件付き検査用コードを生成する。さらに、検査条件変換部17は、条件付き検査用コードを解析部18のSATソルバが解析可能な論理式に変換して条件付き検査用コードの論理式を生成する。そして、処理はステップS207へ進む。
図10で示すように、本例の目標到達条件式32は、condition1 && condition2 && condtion3 && condtion4 && condtion5である。
なお、本実施の形態では、生成される生成値34は、1周期分のみとは限らず、複数周期分の入力値列として生成されてもよい。
本例では、条件付き検査用コードの論理式と目標到達条件式32との論理積を真にする解である目標到達順序通りに5つの目標到達箇所へ到達させる入力値が存在する。したがって、目標到達順序通りに5つの目標到達箇所へ到達させる入力値として生成値34が生成される。そして、処理はステップS107へ進む。
その結果、「STARTモードから開始して、RUNモード、STOPモード、SLEEPモード、ReSTARTモード、ENDモードの順序で動作モードが遷移する」という動作確認が可能となる。
以上のように、本実施の形態では、担当者が被確認ソフトウェアの内部状態に関する仕様情報を参照せずに、動作コード30の中の複数の目標到達箇所と、それら複数の目標到達箇所の目標到達順序とを指定して入力する。そして、担当者がこのように指定するだけで、動作確認の目標となる複数の内部状態とそれらの遷移順序を検査条件31として入力することができる。そして、動作確認支援装置10は、この検査条件31を用いて、取得された遷移順序の通りに複数の内部状態を遷移させる入力値として生成値34を生成することができる。
よって、上記例では、内部状態を複数の状態(10行目、21行目、33行目、56行目、79行目)へ特定の順序(最初に10行目、続いて21行目、33行目、56行目、79行目の順)で遷移させる動作確認において、内部状態値を決定する作業が不要となる。したがって、動作確認に要する工数を削減することができる。
よって、解析部18の用いるSATソルバが解析可能な論理式を担当者が人手で作成する必要が無くなる。したがって、動作確認に要する工数の削減に加えて、数学的知識を持っていなくても担当者が動作確認することも可能となる。
<変形例1>
実施の形態2では、プログラム情報取得部15は、動作コード30を取得する例を説明した。しかし、プログラム情報取得部15は、動作プログラムとしてノード又はブランチを含むASTで作成されたASTプログラムを取得し、ASTプログラムのソースコードであるASTコードへと変換し、動作コード30としてASTコードを取得してもよい。
変形例1では、担当者は、入出力装置14を介して検査条件取得部16に直接、複数の目標到達箇所を示す、ノード、ブランチ、又はノードとブランチとの組み合わせに関する情報を、目標到達箇所情報として入力する。また、担当者は、入出力装置14を介して検査条件取得部16に直接、ノード又はブランチで示される複数の目標到達箇所の目標到達順序を、目標到達箇所情報として入力する。
なお、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示されたASTに含まれるノード又はブランチを視覚的に指定して入力する方法であってもよい。また、目標到達箇所情報の入力方法は、入出力装置14により表示されたASTに含まれるノード又はブランチを順に指定して目標到達順序を入力する方法であってもよい。
図8のステップS101においてASTコードが取得された場合、図8のステップS202において、検査条件取得部16は、目標到達箇所を示す、ノード、ブランチ、又はノードとブランチとの組み合わせに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。そして、図8のステップS204において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はブランチに対応するコードの行番号を抽出し、検査用コードを生成してもよい。そして、図8のステップS205において、検査条件変換部17は、検査条件31に基づき複数の目標到達箇所を示すノード又はブランチに対応する各々のコードの行番号へ到達する目標到達順序を抽出し、目標到達順序条件式を生成してもよい。そして、図8のステップS207において、動作コード30の中の複数の目標到達箇所を示すノード又はブランチに対応するコードの行番号へ、目標到達順序の通りに到達したときに満たされる目標到達条件式32を生成してもよい。
変形例2として、プログラム情報取得部15は、動作プログラムとしてノード又はエッジを含む状態遷移図で作成された状態遷移プログラムを取得し、状態遷移プログラムのソースコードである状態遷移コードへと変換し、動作コード30として状態遷移コードを取得してもよい。
変形例2では、担当者は、入出力装置14を介して検査条件取得部16に直接、複数の目標到達箇所を示す、ノード、エッジ、又はノードとエッジとの組み合わせに関する情報を、目標到達箇所情報として入力する。また、担当者は、入出力装置14を介して検査条件取得部16に直接、ノード又はエッジで示される複数の目標到達箇所の目標到達順序を、目標到達箇所情報として入力する。
なお、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示された状態遷移図に含まれるノード又はエッジを視覚的に指定して入力する方法であってもよい。また、目標到達箇所情報の入力方法は、入出力装置14により表示された状態遷移図に含まれるノード又はエッジを順に指定して目標到達順序を入力する方法であってもよい。
図8のステップS101において状態遷移コードが取得された場合、図8のステップS202において、検査条件取得部16は、目標到達箇所を示す、ノード、エッジ、又はノードとエッジとの組み合わせに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。そして、図8のステップS204において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はエッジに対応するコードの行番号を抽出し、検査用コードを生成してもよい。そして、図8のステップS205において、検査条件変換部17は、検査条件31に基づき複数の目標到達箇所を示すノード又はエッジに対応する各々のコードの行番号へ到達する目標到達順序を抽出し、目標到達順序条件式を生成してもよい。そして、図8のステップS207において、動作コード30の中の複数の目標到達箇所を示すノード又はエッジに対応するコードの行番号へ、目標到達順序の通りに到達したときに満たされる目標到達条件式32を生成してもよい。
本実施の形態について、図12から図14を用いて説明する。
本実施の形態では、被確認ソフトウェアの実行処理が目標到達箇所へ到達し、かつ、被確認ソフトウェアから出力される出力値が特定の値となるような入力値である生成値34を、動作確認支援装置10が生成する例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図12を参照して、本実施の形態に係る動作確認支援装置10の機能構成を説明する。なお、図2に示した実施の形態1と同一構成部分には同一番号を付してその説明を省略する。
本実施の形態では、動作確認支援装置10は、新たに入出力条件取得部20を備える。
入出力条件取得部20は、入出力条件35として、プログラム情報取得部15が取得した動作コード30に含まれる入力変数で示される入力値及び出力変数で示される出力値の少なくともいずれか一方に関する条件を、入出力装置14を介して外部装置から取得する。
入出力条件35は、被確認ソフトウェアの入出力値の条件を定めた条件であり、具体的には値域又は特定の値である。
なお、動作確認支援装置10の動作を実現するプログラムは、実施の形態1の動作確認支援装置10の動作を実現するプログラムに、入出力条件取得部20の機能を実現する入出力変数条件入力手順を追加したものである。
図13から図15を参照して、本実施の形態に係る動作確認支援装置10の動作例を説明する。
なお、実施の形態1と同一の動作には同一番号を付してその説明を省略する。
この入出力条件35は、値域又は値であり、ステップS301の処理で抽出した入出力変数が満たすべき条件を示す。そして、処理はステップS303へ進む。
動作コード30に入出力変数の値を検査する式が挿入されたコードは、ステップS103以降の処理で動作コード30として用いられる。
ステップS103以降は、上述の通りであるため、説明を省略する。
具体的には、以下の例では、図14に示す動作コード30で生成される被確認ソフトウェアの、RUNモードにおける動作確認のために、以下の(1)及び(2)の条件を満たす生成値34を生成する動作を説明する。
(1)被確認ソフトウェアの内部状態がRUNモードへ遷移する。
(2)被確認ソフトウェアの出力値を代入する出力変数Demo_Oの値が300となる。
本例の動作コード30は、被確認ソフトウェアの内部状態である動作モードを表すモード変数modeと、入力値を代入する2つの入力変数Demo_I_x及びDemo_I_yと、出力値を代入する出力変数Demo_Oとを有する。
本例では、入力変数Demo_I_x及びDemo_I_yと、出力変数Demo_Oとがプログラム情報取得部15により抽出される。
本例において、動作コード30における目標到達箇所は、「動作モードがRUNモードに遷移した被確認ソフトウェアの内部状態」に相当する図14に示す動作コード30の19行目である。
本例における動作確認では、「出力変数の値が300となる」という条件を満たすため、この入出力条件35は「Demo_O=300」という出力変数の条件となる。
さらに、検査条件変換部17は、検査用コードをSATソルバが解析可能な論理式に変換して、検査用コードの論理式33を生成する。そして、処理はステップS105へ進む。
本例では、reach++;が挿入された検査用コードの20行目に到達し、目標到達条件式32である「reach>0」を真にする解である入力値が存在する。したがって、「Demo_O=300」という入出力条件35を満たし、かつ、動作コード30の19行目へ到達させる入力値として生成値34が生成される。そのため、処理はステップS107へ進む。
図15では、本例で生成される生成値34及び目標到達箇所へ到達するまでの被確認ソフトウェアの実行順序を示す。
具体的には、1周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値は、10と3である。また、2周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値も、10と3である。また、3周期目に入力変数Demo_I_x及びDemo_I_yへ代入される入力値も、10と3である。
具体的には、1周期目の開始時、出力変数Demo_Oは値をもたず、モード変数modeはSTARTである。入力変数Demo_I_x及びDemo_I_yへ10と3が代入されると、動作コード30の8行目及び9行目の処理が実行され、出力変数Demo_Oに100が、モード変数modeにRUNが代入される。そして、1周期目の終了時には出力変数Demo_Oは100となり、モード変数modeはRUNとなる。
また、2周期目の開始時、出力変数Demo_Oは100、モード変数modeはRUNである。入力変数Demo_I_x及びDemo_I_yへ10と3が代入されると、動作コード30の18行目及び19行目の処理が実行され、出力変数Demo_OにDemo_O+100が、モード変数modeにRUNが代入される。そして、1周期目の終了時には出力変数Demo_Oは200となり、モード変数modeはRUNとなる。
また、3周期目の開始時、出力変数Demo_Oは200、モード変数modeはRUNである。入力変数Demo_I_x及びDemo_I_yへ10と3が代入されると、動作コード30の18行目及び19行目の処理が実行され、出力変数Demo_OにDemo_O+100が、モード変数modeにRUNが代入される。そして、1周期目の終了時には出力変数Demo_Oは300となり、モード変数modeはRUNとなる。
したがって、3周期目の終了時点で被確認ソフトウェアの実行処理は本例の目標到達箇所を示す動作コード30の19行目に到達し、かつ、入出力条件35である「Demo_O=300」が満たされる。
このように、本実施の形態では、生成値34は、1周期分のみとは限らず、複数周期分の入力値列として生成されてもよい。
以上のように、担当者が被確認ソフトウェアの入出力値に関する入出力条件35を入力することで、被確認ソフトウェアの使用環境において取りえない入出力値を生じさせる生成値34の生成を除外することができる。
これにより、担当者は被確認ソフトウェアの使用環境において想定されない不要な処理動作の実行を除外し、動作確認を実行することが可能となる。しがたって、動作確認に要する工数を削減することができる。
実施の形態3では、プログラム情報取得部15は、動作コード30を取得する例を説明した。しかし、プログラム情報取得部15は、動作プログラムとしてノード又はブランチを含むAST(Abstract Syntax Tree)で作成されたASTプログラムを取得し、ASTプログラムのソースコードであるASTコードへと変換し、動作コード30としてASTコードを取得してもよい。
変形例1では、担当者は、入出力装置14を介して検査条件取得部16に直接、目標到達箇所を示すノード又はブランチに関する情報を、目標到達箇所情報として入力する。また、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示されたASTに含まれるノード又はブランチを視覚的に指定して入力する方法であってもよい。
図13のステップS301においてASTコードが取得された場合、図13のステップS102において、検査条件取得部16は、目標到達箇所を示すノード又はブランチに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。そして、図13のステップS104において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はブランチに対応するコードの行番号を抽出し、検査用コードの論理式33を生成してもよい。そして、図13のステップS105において、動作コード30の中の目標到達箇所を示すノード又はブランチに対応するコードの行番号へ到達したときに満たされる目標到達条件式32を生成してもよい。
変形例2として、プログラム情報取得部15は、動作プログラムとしてノード又はエッジを含む状態遷移図で作成された状態遷移プログラムを取得し、状態遷移プログラムのソースコードである状態遷移コードへと変換し、動作コード30として状態遷移コードを取得してもよい。
変形例2では、担当者は、入出力装置14を介して検査条件取得部16に直接、目標到達箇所を示すノード又はエッジに関する情報を、目標到達箇所情報として入力する。また、目標到達箇所情報の入力方法は、これに限らず、入出力装置14を介してディスプレイに表示された状態遷移図に含まれるノード又はエッジを視覚的に指定して入力する方法であってもよい。
図13のステップS301において状態遷移コードが取得された場合、図13のステップS102において、検査条件取得部16は、目標到達箇所を示すノード又はエッジに関する情報を検査条件31として、入出力装置14を介して外部装置から取得してもよい。
そして、図13のステップS104において、検査条件変換部17は、検査条件31に基づき動作コード30の中から目標到達箇所を示すノード又はエッジに対応するコードの行番号を抽出し、検査用コードの論理式33を生成してもよい。そして、図13のステップS105において、動作コード30の中の目標到達箇所を示すノード又はエッジに対応するコードの行番号へ到達したときに満たされる目標到達条件式32を生成してもよい。
Claims (10)
- 入力値を読み込んで動作する動作プログラムのソースコードである動作コードを取得するプログラム情報取得部と、
前記動作コードの目標到達箇所を含む目標到達箇所に関する情報を検査条件として取得する検査条件取得部と、
前記検査条件取得部が取得した前記検査条件に含まれる目標到達箇所へ到達したことを判定する判定式を生成する検査条件変換部と、
前記検査条件変換部が生成した前記判定式を用いて前記目標到達箇所へ到達させる前記入力値として生成値を生成する解析部とを備え、
前記検査条件変換部は、
前記判定式として前記目標到達箇所への到達判定に用いる論理式を生成し、前記目標到達箇所への到達判定に用いるコードを前記動作コードの前記目標到達箇所に追加した検査用コードを作成し、前記検査用コードを論理式へ変換して前記検査用コードの論理式を生成し、
前記解析部は、
前記判定式と前記検査用コードの論理式との論理積を充足する前記入力値を探索して、前記目標到達箇所へ到達させる前記入力値として生成値を生成する動作確認支援装置。 - 前記検査条件変換部は、
前記検査条件取得部が取得した検査条件を基に、前記目標到達箇所へ到達したことを判定する到達判定に用いられる目標到達箇所変数を定義し、
前記動作コードの実行時に前記目標到達箇所の行へ到達時に必ず実行される、目標到達箇所の行の前後の行のうちどちらか一方に、前記目標到達箇所変数の演算式で示されるコードを挿入したものを前記検査用コードとして作成する請求項1に記載の動作確認支援装置。 - 前記検査条件取得部は、
前記目標到達箇所を示す前記動作コードの行番号を前記検査条件として取得し、
前記検査条件変換部は、
前記判定式として、前記目標到達箇所を示す前記動作コードの行番号へ到達したときに満たされる目標到達条件式を生成する請求項1又は請求項2に記載の動作確認支援装置。 - 前記検査条件取得部は、
複数の目標到達箇所を示す前記動作コードの行番号と、前記複数の目標到達箇所の到達順序である目標到達順序とを前記検査条件として取得し、
前記検査条件変換部は、
前記判定式として、前記目標到達順序の通りに前記複数の目標到達箇所を示す前記動作コードの行番号へ到達したときに満たされる目標到達条件式を生成する請求項1から請求項3のいずれか1項に記載の動作確認支援装置。 - 動作確認支援装置は、更に、
前記入力値及び前記動作プログラムが出力する出力値の少なくともいずれか一方の値域又は値である入出力条件を取得する入出力条件取得部を備え、
前記解析部は、
前記検査条件変換部が生成した前記判定式を用いて、前記入出力条件を満たし、かつ、前記目標到達箇所へ到達させる前記入力値として生成値を生成する請求項1から請求項4のいずれか1項に記載の動作確認支援装置。 - 前記解析部は、
前記目標到達箇所へ到達させる前記入力値を生成できなかった場合に、生成できなかったことを通知する請求項1から請求項5のいずれか1項に記載の動作確認支援装置。 - 前記プログラム情報取得部は、
前記動作プログラムとしてノード又はブランチを含むAST(Abstract Syntax Tree)で作成されたASTプログラムを取得し、前記ASTプログラムを前記ASTプログラムのソースコードであるASTコードへと変換し、前記ASTコードを前記動作コードとして取得し、
前記検査条件取得部は、
前記目標到達箇所を示す前記ノード又はブランチを前記検査条件として取得し、
前記検査条件変換部は、
前記検査条件の前記ノード又はブランチに対応する前記動作コードの行番号を抽出し、
前記判定式として、前記動作コードの行番号へ到達したときに満たされる目標到達条件式を生成する請求項1から請求項6のいずれか1項に記載の動作確認支援装置。 - 前記プログラム情報取得部は、
前記動作プログラムとしてノード又はエッジを含む状態遷移図で作成された状態遷移プログラムを取得し、前記状態遷移プログラムを前記状態遷移プログラムのソースコードである状態遷移コードへと変換し、前記状態遷移コードを前記動作コードとして取得し、
前記検査条件取得部は、
前記目標到達箇所を示す前記ノード又はエッジを前記検査条件として取得し、
検査条件変換部は、
前記検査条件の前記ノード又はエッジに対応する前記動作コードの行番号を抽出し、
前記判定式として、前記動作コードの行番号へ到達したときに満たされる目標到達条件式を生成する請求項1から請求項6のいずれか1項に記載の動作確認支援装置。 - コンピュータが、
入力値を読み込んで動作する動作プログラムのソースコードである動作コードを取得し、
前記動作コードの目標到達箇所を含む目標到達箇所に関する情報を検査条件として取得し、
前記検査条件に含まれる目標到達箇所へ到達したことを判定する判定式を生成し、
前記判定式を用いて前記目標到達箇所へ到達させる前記入力値として生成値を生成する動作確認支援方法であって、
前記判定式として前記目標到達箇所への到達判定に用いる論理式を生成し、前記目標到達箇所への到達判定に用いるコードを前記動作コードの前記目標到達箇所に追加した検査用コードを作成し、前記検査用コードを論理式へ変換して前記検査用コードの論理式を生成し、
前記判定式と前記検査用コードの論理式との論理積を充足する前記入力値を探索して、前記目標到達箇所へ到達させる前記入力値として前記生成値を生成する動作確認支援方法。 - 入力値を読み込んで動作する動作プログラムのソースコードである動作コードを取得するプログラム情報取得処理と、
前記動作コードの目標到達箇所を含む目標到達箇所に関する情報を検査条件として取得する検査条件取得処理と、
前記検査条件取得処理により取得した前記検査条件に含まれる目標到達箇所へ到達したことを判定する判定式を生成する検査条件変換処理と、
前記検査条件変換処理により生成した前記判定式を用いて前記目標到達箇所へ到達させる前記入力値として生成値を生成する解析処理とをコンピュータに実行させる動作確認支援プログラムであって、
前記検査条件変換処理は、
前記判定式として前記目標到達箇所への到達判定に用いる論理式を生成し、前記目標到達箇所への到達判定に用いるコードを前記動作コードの前記目標到達箇所に追加した検査用コードを作成し、前記検査用コードを論理式へ変換して前記検査用コードの論理式を生成し、
前記解析処理は、
前記判定式と前記検査用コードの論理式との論理積を充足する前記入力値を探索して、前記目標到達箇所へ到達させる前記入力値として生成値を生成する動作確認支援プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/017102 WO2021214843A1 (ja) | 2020-04-20 | 2020-04-20 | 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6854994B1 true JP6854994B1 (ja) | 2021-04-07 |
JPWO2021214843A1 JPWO2021214843A1 (ja) | 2021-10-28 |
Family
ID=75267904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020570075A Active JP6854994B1 (ja) | 2020-04-20 | 2020-04-20 | 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6854994B1 (ja) |
WO (1) | WO2021214843A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306648A (ja) * | 2000-03-20 | 2001-11-02 | Nec Corp | テストベンチ生成装置とその自動テストベンチ生成方法、検証方法、評価方法 |
JP2010140407A (ja) * | 2008-12-15 | 2010-06-24 | Nomura Research Institute Ltd | ソースコード検査装置 |
JP2011159115A (ja) * | 2010-02-01 | 2011-08-18 | Fuji Electric Co Ltd | シーケンス監視自動プログラミング装置、自動プログラミング方法、およびプログラム |
JP2014063415A (ja) * | 2012-09-24 | 2014-04-10 | Mitsubishi Electric Corp | テストケース自動生成装置及びテストケース自動生成プログラム |
JP2015197868A (ja) * | 2014-04-02 | 2015-11-09 | トヨタ自動車株式会社 | コンピュータ・プログラムの検査装置 |
JP2016031622A (ja) * | 2014-07-29 | 2016-03-07 | 日立オートモティブシステムズ株式会社 | ソフトウェア検証システムおよび制御装置 |
-
2020
- 2020-04-20 WO PCT/JP2020/017102 patent/WO2021214843A1/ja active Application Filing
- 2020-04-20 JP JP2020570075A patent/JP6854994B1/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306648A (ja) * | 2000-03-20 | 2001-11-02 | Nec Corp | テストベンチ生成装置とその自動テストベンチ生成方法、検証方法、評価方法 |
JP2010140407A (ja) * | 2008-12-15 | 2010-06-24 | Nomura Research Institute Ltd | ソースコード検査装置 |
JP2011159115A (ja) * | 2010-02-01 | 2011-08-18 | Fuji Electric Co Ltd | シーケンス監視自動プログラミング装置、自動プログラミング方法、およびプログラム |
JP2014063415A (ja) * | 2012-09-24 | 2014-04-10 | Mitsubishi Electric Corp | テストケース自動生成装置及びテストケース自動生成プログラム |
JP2015197868A (ja) * | 2014-04-02 | 2015-11-09 | トヨタ自動車株式会社 | コンピュータ・プログラムの検査装置 |
JP2016031622A (ja) * | 2014-07-29 | 2016-03-07 | 日立オートモティブシステムズ株式会社 | ソフトウェア検証システムおよび制御装置 |
Non-Patent Citations (1)
Title |
---|
橋本 祐介: "ソフトウェアモデル検査とテストケース生成の統合ツールチェイン", 情報処理学会 シンポジウム ソフトウェアエンジニアリングシンポジウム 2011, JPN7020002126, JP, ISSN: 0004446098 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021214843A1 (ja) | 2021-10-28 |
WO2021214843A1 (ja) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8181134B2 (en) | Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design | |
US8996339B2 (en) | Incremental formal verification | |
US20150094997A1 (en) | Explaining partially illegal combinations in combinatorial models | |
US9002694B2 (en) | Verification of design derived from power intent | |
US8909579B2 (en) | Identifying invariant candidates based on proofs | |
US9218273B2 (en) | Automatic generation of a resource reconfiguring test | |
US8484591B2 (en) | Enhancing redundancy removal with early merging | |
US20130275939A1 (en) | Efficient file system object-based deduplication | |
US9378000B1 (en) | Determination of unreachable elements in a design | |
JP6854994B1 (ja) | 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム | |
EP3564836A1 (en) | Semiconductor lsi design device and design method | |
US8949766B2 (en) | Detecting corresponding paths in combinationally equivalent circuit designs | |
JP2009230677A (ja) | プロパティ生成システムおよびプロパティ検証システム | |
US10666255B1 (en) | System and method for compacting X-pessimism fixes for gate-level logic simulation | |
US11461079B2 (en) | Non-transitory computer-readable medium | |
JP2013003999A (ja) | 検証装置、検証方法及び検証プログラム | |
Khomenko et al. | Detecting state coding conflicts in stgs using integer programming | |
US8397189B2 (en) | Model checking in state transition machine verification | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
JP6818568B2 (ja) | 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム | |
US10635845B2 (en) | Method and apparatus for improving Boolean satisfiability solver generated based on input design with data qualifier signals | |
US8996435B2 (en) | Determining invariants in a model | |
Jayasena et al. | HIVE: Scalable Hardware-Firmware Co-Verification using Scenario-based Decomposition and Automated Hint Extraction | |
US8584063B1 (en) | Assertion-based design partitioning | |
US8782579B2 (en) | Connection verification method, recording medium thereof, and connection verification apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201215 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201215 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210105 |
|
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: 20210216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210316 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6854994 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |