JP2013148968A - テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 - Google Patents
テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 Download PDFInfo
- Publication number
- JP2013148968A JP2013148968A JP2012007203A JP2012007203A JP2013148968A JP 2013148968 A JP2013148968 A JP 2013148968A JP 2012007203 A JP2012007203 A JP 2012007203A JP 2012007203 A JP2012007203 A JP 2012007203A JP 2013148968 A JP2013148968 A JP 2013148968A
- Authority
- JP
- Japan
- Prior art keywords
- condition
- test data
- codes
- program
- solution
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】仕様条件と実装条件とを組み合わせて組合条件を生成し、組合条件に含まれる変数の充足解を充足値生成部を用いて求め、仕様条件と実装条件に充足解を関連付けてテストデータ情報を生成する生成部と、2つの異なる仕様条件の組み合わせ条件を表す組合条件を生成し、組合条件に含まれる変数の充足解を充足値生成部を用いて求め、充足解をもたない組合条件を検出して排他的仕様条件とする排他的仕様条件検出部と、前記テストデータ情報を参照して、実装条件に対して排他的仕様条件に含まれる2つの仕様条件それぞれが充足解を有するか否かを検出するテストケース検出部と、を備えるテストデータ生成装置である。
【選択図】図2
Description
関連する技術として、自然言語の仕様とC言語のプログラムとGraphical User Interface(GUI)ベースの制御ロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができるクロス検証が開示されている。このクロス検証によれば、動作仕様、エンジン制御用のCコードおよびエンジン制御用のGUIロジックを作成する。そして、作成した動作仕様、CコードおよびGUIロジックに基づいてアサーションを生成し、生成したアサーションを当該Cコードおよび当該GUIロジックに挿入する。その後、生成したアサーション、アサーションが挿入された後のCコードおよびアサーションが挿入された後のGUIロジックをConjnctive Normal Form(CNF)へ変換する。そして、作成した動作仕様に基づいて、変換した後のCコードおよびGUIロジックのクロス検証を行い、その検証結果を表示する。
また、関連する技術として、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱いつつ、規模を抑えたシステム状態遷移系ならびにテストケースを生成する技術が開示されている。この技術によれば、システム動作仕様記述に基づいて遷移事象を順次生起させてシステム状態遷移系を生成する。その際に、遷移事象の順序制約を表現するシナリオ状態遷移系も同時に遷移させ、順次生起させる遷移事象を、当該シナリオ状態遷移系で遷移可能なものに制限する。
充足値生成部は、プログラムで用いられるコードに含まれる変数の充足解を求める。
テストデータ生成装置1について説明する。
図1は、テストデータ生成装置のハードウェアの一実施例を示す図である。テストデータ生成装置1は、制御部2、記憶部3、記録媒体読取装置4、入出力インタフェース5(入出力I/F)、通信インタフェース6(通信I/F)などを備えている。また、上記各構成部はバス7によってそれぞれ接続されている。
図2は、テストデータ生成装置の制御部の一実施例を示す図である。制御部2は、抽出部201、生成部202、充足値生成部203、排他的仕様条件検出部204、テストケース検出部205、テストケース提示部206を有する。
SMTソルバは、論理式が矛盾していないことを示すために、論理式全体を真とするような各部分論理式の真偽時の組み合わせが存在するか否かを判定する。なお、SMTソルバは、整数、実数、配列などを扱うことができるという利点がある。SMTソルバに関しては、例えば、次の非特許文献を参照されたい。
・Armin Biere, Marijn Heule, Hans Van Maaren, Toby Walsh, "Handbook of Satisfiability(Frontiers in Artificial Intelligence and Applications)",IOS Press, 2009年2月
・R.E. Bryant, Daniel Kroening, Ofer Strichman, "Decision Procedures: An Algorithmic Point of View (Texts in Theoretical Computer Science. An EATCS Series)", Springer, 2008年7月7日
排他的仕様条件検出部204は、2つの異なる仕様条件の組み合わせ条件を表す複数の組合条件(第4のコード)を生成し、組合条件各々に含まれる変数の充足解を充足値生成部を用いて求める。そして、充足解をもたない組合条件を検出して排他的仕様条件とする。
テストケース提示部206は、テストケース検出部205が検出した2つの異なる仕様条件と実装条件に不整合があることを提示する画面を生成する。
図3は、抽出部、生成部、充足値生成部の動作の一実施例を示すフロー図である。ステップS1では、生成部202が仕様に基づいてモデル記述した仕様条件を示すコードが記憶されている記憶部3の仕様条件情報を参照して、未処理の仕様条件を特定する。仕様条件情報は、例えば、図4に示す仕様条件情報402などが考えられる。
実装条件について説明する。実装条件を示すコードは、例えば、抽出部201が図4のプログラム情報403を記憶部3から取得して、プログラム情報403に対してシンボリック実行を行って得られるコードである。本例では、プログラム情報403に対してシンボリック実行を行って得られる条件として、図4に示す実装条件情報404が得られる。プログラム情報403は、上記仕様1〜3に基づいて作成したプログラムであり、5行目に誤りがある。本来、仕様に基づいてプログラムを作成すると5行目の記載は、「if (b>=0){ 」でなければならない。
ステップS3では、仕様条件と実装条件とを&で結合して組合条件を生成して、充足値生成部203に送信する。このとき、記憶部3に組合条件を記憶してもよい。なお、&は上述した&と同じように論理積を示す記号である。図5は、組合条件情報のデータ構造の一実施例を示す図である。図5の組合条件情報501は、「No」「組合条件」などに記憶される情報を有する。「No」は組合条件に関連付けられる識別子で、本例では、識別子「1」〜「12」が記憶されている。「組合条件」には、仕様条件を示すコードと実装条件を示すコードとを&で結合したコードが、識別子「No」に関連付けて記憶されている。本例では、組合条件情報501の識別子「1」〜「12」に関連付けられて、「a>=0 & a>=0 & b>0」〜「a<0 & b<0 & a<0 & b<=0」が記憶されている。
図7は、排他的仕様条件検出部の動作の一実施例を示すフロー図である。ステップS701では、排他的仕様条件検出部204が仕様に基づいてモデル記述した仕様条件を示すコードが記憶されている記憶部3の仕様条件情報を参照して、未処理の仕様条件を特定する。
仕様条件情報は、例えば、図8に示す仕様条件情報801などが考えられる。図8は、排他的仕様条件検出で用いる仕様条件情報と組合条件情報のデータ構造の一実施例を示す図である。仕様情報801は、例えば、仕様書の内容を示す情報である。本例では、仕様1として入力データである変数a>=0の場合にa×10が表示されること、仕様2として変数b>=0の場合にb×10が表示されること、仕様3として変数a<0かつ変数b<0の場合に何も表示されないこと、が記載されている。
図10は、テストケース検出部の動作の一実施例を示すフロー図である。ステップS1001では、テストケース検出部205が排他的仕様条件情報を参照して、未処理の排他的仕様条件を特定する。例えば、図9の排他的仕様条件情報902の場合であれば排他的仕様条件1または排他的仕様条件2が特定される。
ステップS1004では、テストケース検出部205が現在特定されている排他的仕様条件の仕様条件それぞれについて、現在の実装条件に対応するテストデータが両方の仕様条件に存在するか判定する。
ステップS1004、S1005では、図11の表1101に示すように、まず実装条件1に対応する仕様条件1と仕様条件3の両方にテストデータが存在するかを判定する。図11は、排他的仕様条件と実装条件の関係を示す図である。実装条件1の場合には、仕様条件1側にしかテストデータがないのでステップS1007に移行する。実装条件2の場合にも、仕様条件1側にしかテストデータがないのでステップS1007に移行する。実装条件3の場合には、仕様条件1と仕様条件3側にテストデータがないのでステップS1007に移行する。実装条件4の場合には、仕様条件3側にしかテストデータがないのでステップS1007に移行する。
続いて、ステップS1003で図6のテストケース生成情報の仕様条件2と仕様条件3に対応する実装条件1を特定する。
上記実施形態によれば、仕様と作成したプログラムの不整合を検出することができるという効果を奏する。
なお、実施の形態で説明したテスト対象のプログラムは、例えば、業務アプリケーションなどに用いられるプログラムなどが考えられる。
2 制御部
3 記憶部
4 記録媒体読取装置
5 入出力インタフェース
6 通信インタフェース
7 バス
8 記録媒体
9 入出力部
201 抽出部
202 生成部
203 充足値生成部
204 排他的仕様条件検出部
205 テストケース検出部
206 テストケース提示部
401 仕様情報
402 仕様条件情報
403 プログラム情報
404 実装条件情報
501 組合条件情報
601 テストデータ情報
801 仕様条件情報
802 組合条件情報
902 排他的仕様条件情報
Claims (6)
- プログラムで用いられるコードに含まれる変数の充足解を求める充足値生成部と、
前記プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、前記第3のコードに含まれる前記変数の充足解を前記充足値生成部を用いて求め、前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成する生成部と、
2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、前記第4のコード各々に含まれる前記変数の充足解を前記充足値生成部を用いて求め、充足解をもたない前記第4のコードを検出して排他的仕様条件とする排他的仕様条件検出部と、
前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出するテストケース検出部と、
を備えることを特徴とするテストデータ生成装置。 - 前記テストケース検出部が検出した2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件とに不整合があることを提示する画面を生成するテストケース提示部、を備えることを特徴とするテストデータ生成装置。
- プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
前記第3のコードに含まれる前記変数の充足解を求め、
前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成し、
2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、
前記第4のコード各々に含まれる前記変数の充足解を求め、
充足解をもたない前記第4のコードを検出し、
前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出する、
処理をコンピュータに実行させるテストデータ生成プログラム。 - 前記第2のコードに対してそれぞれが充足解を有する2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件に不整合があることを提示する画面を生成する、処理を前記コンピュータに実行させることを特徴とする請求項3に記載のテストデータ生成プログラム。
- コンピュータによって実行されるテストデータ生成方法であって、
プログラムの仕様条件を変数を用いて表した複数の第1のコードと、前記プログラムを入力とするシンボリック実行により抽出された前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードと、を組み合わせて前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
前記第3のコードに含まれる前記変数の充足解を求め、
前記仕様条件と前記実装条件に充足解を関連付けてテストデータ情報を生成し、
2つの異なる前記第1のコードの組み合わせ条件を表す複数の第4のコードを生成し、
前記第4のコード各々に含まれる前記変数の充足解を求め、
充足解をもたない前記第4のコードを検出し、
前記テストデータ情報を参照して、前記第2のコードに対して前記排他的仕様条件に含まれる2つの前記第1のコードそれぞれが充足解を有するか否かを検出する、
ことを特徴とするテストデータ生成方法。 - 前記コンピュータが、前記第2のコードに対してそれぞれが充足解を有する2つの異なる前記第1のコードに対応する前記仕様条件と前記実装条件に不整合があることを提示する画面を生成し、前記画面を出力部に出力させる、ことを特徴とする請求項5に記載のテストデータ生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012007203A JP5799823B2 (ja) | 2012-01-17 | 2012-01-17 | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012007203A JP5799823B2 (ja) | 2012-01-17 | 2012-01-17 | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013148968A true JP2013148968A (ja) | 2013-08-01 |
JP5799823B2 JP5799823B2 (ja) | 2015-10-28 |
Family
ID=49046436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012007203A Expired - Fee Related JP5799823B2 (ja) | 2012-01-17 | 2012-01-17 | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5799823B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017037494A (ja) * | 2015-08-10 | 2017-02-16 | 富士通株式会社 | テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置 |
JP2018092374A (ja) * | 2016-12-02 | 2018-06-14 | 株式会社日立製作所 | テストケース生成装置、及びテストケース生成方法 |
JP2021501953A (ja) * | 2017-11-02 | 2021-01-21 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
CN113568838A (zh) * | 2021-08-02 | 2021-10-29 | 工银科技有限公司 | 测试数据生成方法、装置、设备、存储介质和程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168988A1 (en) * | 2006-01-11 | 2007-07-19 | International Business Machines Corporation | Software verification using hybrid explicit and symbolic model checking |
JP2010267022A (ja) * | 2009-05-13 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | テストデータ生成方法及び装置及びプログラム |
JP2013003854A (ja) * | 2011-06-16 | 2013-01-07 | Fujitsu Ltd | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
-
2012
- 2012-01-17 JP JP2012007203A patent/JP5799823B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168988A1 (en) * | 2006-01-11 | 2007-07-19 | International Business Machines Corporation | Software verification using hybrid explicit and symbolic model checking |
JP2010267022A (ja) * | 2009-05-13 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | テストデータ生成方法及び装置及びプログラム |
JP2013003854A (ja) * | 2011-06-16 | 2013-01-07 | Fujitsu Ltd | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017037494A (ja) * | 2015-08-10 | 2017-02-16 | 富士通株式会社 | テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置 |
JP2018092374A (ja) * | 2016-12-02 | 2018-06-14 | 株式会社日立製作所 | テストケース生成装置、及びテストケース生成方法 |
JP2021501953A (ja) * | 2017-11-02 | 2021-01-21 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
JP7262818B2 (ja) | 2017-11-02 | 2023-04-24 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
CN113568838A (zh) * | 2021-08-02 | 2021-10-29 | 工银科技有限公司 | 测试数据生成方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
JP5799823B2 (ja) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928772B (zh) | 一种测试方法及装置 | |
Rahman et al. | Source code properties of defective infrastructure as code scripts | |
CN103946809B (zh) | 为测试服务器产生产品服务器负载活动 | |
JP2018147280A (ja) | データ分析装置及びデータ分析方法 | |
US9703683B2 (en) | Software testing coverage | |
JP5799823B2 (ja) | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 | |
JP6438084B2 (ja) | ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム | |
JP5672165B2 (ja) | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 | |
US20130318499A1 (en) | Test script generation | |
JP6120607B2 (ja) | 要件検出装置及び要件検出プログラム | |
US10546080B1 (en) | Method and system for identifying potential causes of failure in simulation runs using machine learning | |
JP2013077124A (ja) | ソフトウェアテストケース生成装置 | |
JP2011034274A (ja) | テスト自動実行システム | |
JP5176869B2 (ja) | テストケース生成プログラムとテストケース生成装置およびテストケース生成方法 | |
JP6447111B2 (ja) | 共通化情報提供プログラム、共通化情報提供方法、および共通化情報提供装置 | |
JP7116313B2 (ja) | 修正候補特定プログラム | |
JP2011008628A (ja) | プログラムモデル検査方法、プログラムモデル検査プログラム | |
JP5568779B2 (ja) | 論理検証方法及び論理検証システム | |
WO2014054233A1 (ja) | 情報システムの性能評価装置、方法およびプログラム | |
JP5304470B2 (ja) | モデル検査プログラム、モデル検査方法、モデル検査装置 | |
JP7363164B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6949441B2 (ja) | ベクタ適正化装置及びベクタ適正化用プログラム | |
JP5228794B2 (ja) | モデル検査実施のための環境生成支援装置、環境生成支援方法、環境生成支援プログラム | |
JP2013012082A (ja) | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 | |
US20210019446A1 (en) | Device and method for analyzing performances of a web application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140904 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150709 |
|
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: 20150728 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150810 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5799823 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |