JP2013003854A - テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 - Google Patents
テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 Download PDFInfo
- Publication number
- JP2013003854A JP2013003854A JP2011134555A JP2011134555A JP2013003854A JP 2013003854 A JP2013003854 A JP 2013003854A JP 2011134555 A JP2011134555 A JP 2011134555A JP 2011134555 A JP2011134555 A JP 2011134555A JP 2013003854 A JP2013003854 A JP 2013003854A
- Authority
- JP
- Japan
- Prior art keywords
- program
- test data
- condition
- code
- codes
- 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
【解決手段】プログラムの仕様条件を変数を用いて表した複数の第1のコードが記憶された記憶部を参照して第1のコードを取得し、プログラムを入力とするシンボリック実行により抽出された、プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードが記憶された記憶部を参照して第2のコードを取得し、第1のコード各々と第2のコード各々と、を組み合わせて、仕様条件と実装条件との組み合わせ条件を表す複数の第3のコードを生成し、各第3のコードに基づき当該第3のコードに含まれる変数の充足解を求め、充足解を、プログラムのテストデータを記憶する記憶部に記憶する、テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置である。
【選択図】図2
Description
1)入力データaが0以下ならばエラーを表示
2)入力データaが0より大きく10より小さいとき入力データaを10倍して表示
3)入力データaが10以上ならばエラーを表示
1)〜3)を有する仕様を用いて作成されたプログラム例とモデル記述(論理式で記述)した仕様例を示す。
1 public void method(int a){
2 if (0<=a && a<4){
3 System.out.println(a*10);
4 } else if (4<a && a<10) {
5 System.out.println(a*10);
6 } else {
7 System.err.println(“error!”);
8 }
9 }
1 a<=0 → error
2 0<a<10 → a*10
3 a>=10 → error
a=-100, 0, 1, 5, 9, 10, 100
1 not(0<=a)
2 0<=a & a<4
3 0<=a & not(a<4) & not(4<a)
4 0<=a & not(a<4) & 4<a & a<10
5 0<=a & not(a<4) & 4<a & not(a<10)
条件を満たすテストデータ例
a=-1, 3, 4, 5, 10
また、仕様に基づいて作成したテストデータとシンボリック実行により抽出したテストデータを用いる方法がある。上記プログラム例の場合、テストデータ例と条件を満たすテストデータ例を合わせると、冗長なテストデータとなってしまうことがある。
a=-100, -1, 0, 1, 3, 4, 5, 9, 10, 100
また、関連する技術として、現実のシステムを反映する複雑な動作仕様や多様な事象を取り扱いつつ、規模を抑えたシステム状態遷移系ならびにテストケースを生成する技術が開示されている。この技術によれば、システム動作仕様記述に基づいて遷移事象を順次生起させてシステム状態遷移系を生成する。その際に、遷移事象の順序制約を表現するシナリオ状態遷移系も同時に遷移させ、順次生起させる遷移事象を、当該シナリオ状態遷移系で遷移可能なものに制限する。
プログラムの仕様条件を変数を用いて表した複数の第1のコードが記憶された記憶部を参照して上記第1のコードを取得する。
上記各第3のコードに基づき当該第3のコードに含まれる上記変数の充足解を求める。
上記充足解を、上記プログラムのテストデータを記憶する記憶部に記憶する。
その結果、仕様と異なる誤りを有するプログラムを用いて該プログラムのテストを行う場合であっても、必要十分なテストデータを生成することができる。
テストデータ生成装置1について説明する。
図1は、テストデータ生成装置のハードウェアの一実施例を示す図である。テストデータ生成装置1は、制御部2、記憶部3、記録媒体読取装置4、入出力インタフェース5(入出力I/F)、通信インタフェース6(通信I/F)などを備えている。また、上記各構成部はバス7によってそれぞれ接続されている。
図2は、テストデータ生成装置の制御部の一実施例を示す図である。制御部2は、抽出部201、生成部202、充足値生成部203を有する。
・足立正和,他、「充足可能性判定に基づくリアルタイムシステムのスケジューリング解析」、組込みシステムシンポジウム2008、平成20年10月
・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日
図3は、テストデータ生成装置の動作の一実施例を示すフロー図である。ステップS1では、生成部202が仕様に基づいてモデル記述した仕様条件を示すコード(第1のコード)が記憶されている記憶部3の仕様条件情報を参照して、未処理の仕様条件を特定する。仕様条件情報は、例えば、図4に示す仕様条件情報401などが考えられる。図4は、仕様条件情報とプログラム情報と実装条件情報のデータ構造の一実施例を示す図である。仕様条件情報401は、「No」「仕様条件」「処理済み」などの情報を有する。「No」は仕様条件に関連付けられる識別子で、本例では、識別子「1」「2」「3」などが記憶されている。「仕様条件」には、仕様条件が識別子「1」「2」「3」に関連付けて記憶されている。本例では、仕様に1)入力データである変数aが0以下ならばエラーを表示すること、2)変数aが0より大きく10より小さいとき変数aを10倍して表示すること、3)変数aが10以上ならばエラーを表示すること、が記載されている。そして、この記載に対してモデル記述した仕様条件を示すコードが、「No」に関連付けられて記憶されている。図4の例では、「a<=0」は1)の仕様に対応する仕様条件であり、「0<a&a<10」は2)の仕様に対応する仕様条件であり、「a>=10」は3)の仕様に対応する仕様条件である。「処理済み」には、現在選択されている仕様条件を示すコードに対して後述する実装条件と組み合わせた(例えば、論理積&で結合した)条件を生成したか否かを示す情報が記憶されている。本例では、「2」「1」「0」が記載されており、現在選択されている仕様条件に対して全ての実装条件と組合条件に対してステップS3の処理が実施されていれば、識別子「2」が記憶される。現在選択されている仕様条件に対してまだ組み合わされていない実装条件がまだある場合、識別子「1」が記憶される。まだ選択されていない仕様条件に対しては識別子「0」が記憶される。
実装条件について説明する。実装条件を示すコードは、例えば、抽出部201が図4のプログラム情報402を記憶部3から取得して、プログラム情報402に対してシンボリック実行を行って得られるコードである。本例では、プログラム情報402に対してシンボリック実行を行って得られる条件として、図4に示す実装条件情報403が得られる。プログラム情報402は、上記仕様1)〜3)に基づいて作成したプログラムであり、2行目と4行目に誤りがある。本来、仕様に基づいてプログラムを作成すると2行目の記載は、「if (0<a&&a<4){ 」でなければならない。また、4行目の記載は、「 } else if (4<=a&&a<10){ 」でなければならない。
なお、ステップS1の処理とステップS2の処理の順番はどちらが先でもよい。
なお、本例では組合条件を記憶部3に記憶しているが、組合条件は組合条件情報に記憶しなくてもよい。
なお、本実施の態様では、変数が1つの場合について説明したが、変数が複数ある場合でも必要十分なテストデータを生成できる。変数が複数の場合でも、仕様条件を示すコード各々と実装条件を示すコード各々とを組み合わせて組合条件を示すコードを作成する。その後、該組合条件を示すコード各々に対して、SMTソルバを用いて複数の変数を充足させる解を求め、求めた解を用いて必要十分なテストデータを生成できる。
なお、実施の形態で説明したテスト対象のプログラムは、例えば、業務アプリケーションなどに用いられるプログラムなどが考えられる。
2 制御部
3 記憶部
4 記録媒体読取装置
5 入出力インタフェース
6 通信インタフェース
7 バス
8 記録媒体
9 入出力部
201 抽出部
202 生成部
203 充足値生成部
401 仕様条件情報
402 プログラム情報
403 実装条件情報
501 組合条件情報
Claims (3)
- プログラムの仕様条件を変数を用いて表した複数の第1のコードが記憶された記憶部を参照して前記第1のコードを取得し、
前記プログラムを入力とするシンボリック実行により抽出された、前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードが記憶された記憶部を参照して前記第2のコードを取得し、
前記第1のコード各々と前記第2のコード各々と、を組み合わせて、前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
前記各第3のコードに基づき当該第3のコードに含まれる前記変数の充足解を求め、
前記充足解を、前記プログラムのテストデータを記憶する記憶部に記憶する、
処理をコンピュータに実行させるテストデータ生成プログラム。 - コンピュータによって実行されるテストデータ生成方法であって、
プログラムの仕様条件を変数を用いて表した複数の第1のコードが記憶された記憶部を参照して前記第1のコードを取得し、
前記プログラムを入力とするシンボリック実行により抽出された、前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードが記憶された記憶部を参照して前記第2のコードを取得し、
前記第1のコード各々と前記第2のコード各々と、を組み合わせて、前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、
前記各第3のコードに基づき当該第3のコードに含まれる前記変数の充足解を求め、
前記充足解を、前記プログラムのテストデータを記憶する記憶部に記憶する、
ことを特徴とするテストデータ生成方法。 - プログラムの仕様条件を変数を用いて表した複数の第1のコードが記憶された記憶部を参照して前記第1のコードを取得し、前記プログラムを入力とするシンボリック実行により抽出された、前記プログラムが実行し得るパス各々に対応する実装条件を変数を用いて表した複数の第2のコードが記憶された記憶部を参照して前記第2のコードを取得し、前記第1のコード各々と前記第2のコード各々と、を組み合わせて、前記仕様条件と前記実装条件との組み合わせ条件を表す複数の第3のコードを生成し、前記第3のコードに含まれる前記変数の充足解を充足値生成部から取得し、前記充足解を、前記プログラムのテストデータを記憶する記憶部に記憶する生成部と、
前記各第3のコードに基づき当該第3のコードに含まれる前記変数の充足解を求める前記充足値生成部と、
を備えることを特徴とするプログラム検査装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011134555A JP5672165B2 (ja) | 2011-06-16 | 2011-06-16 | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011134555A JP5672165B2 (ja) | 2011-06-16 | 2011-06-16 | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013003854A true JP2013003854A (ja) | 2013-01-07 |
JP5672165B2 JP5672165B2 (ja) | 2015-02-18 |
Family
ID=47672356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011134555A Active JP5672165B2 (ja) | 2011-06-16 | 2011-06-16 | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5672165B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013148968A (ja) * | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
WO2014125836A1 (ja) * | 2013-02-15 | 2014-08-21 | 独立行政法人産業技術総合研究所 | テストデータ生成装置 |
JP2014191652A (ja) * | 2013-03-27 | 2014-10-06 | Fujitsu Ltd | テストケース生成方法、テストケース生成装置、およびテストケース生成プログラム |
JP2021501953A (ja) * | 2017-11-02 | 2021-01-21 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016A (en) * | 1850-01-15 | Mill for grinding | ||
JP2009087354A (ja) * | 2007-10-01 | 2009-04-23 | Fujitsu Ltd | ウェブアプリケーションの自動テスト生成システム及び方法 |
-
2011
- 2011-06-16 JP JP2011134555A patent/JP5672165B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016A (en) * | 1850-01-15 | Mill for grinding | ||
JP2009087354A (ja) * | 2007-10-01 | 2009-04-23 | Fujitsu Ltd | ウェブアプリケーションの自動テスト生成システム及び方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013148968A (ja) * | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
WO2014125836A1 (ja) * | 2013-02-15 | 2014-08-21 | 独立行政法人産業技術総合研究所 | テストデータ生成装置 |
JP2014157473A (ja) * | 2013-02-15 | 2014-08-28 | National Institute Of Advanced Industrial & Technology | テストデータ生成装置 |
JP2014191652A (ja) * | 2013-03-27 | 2014-10-06 | Fujitsu Ltd | テストケース生成方法、テストケース生成装置、およびテストケース生成プログラム |
JP2021501953A (ja) * | 2017-11-02 | 2021-01-21 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
JP7262818B2 (ja) | 2017-11-02 | 2023-04-24 | シリコン モビリティ エスアエス | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 |
Also Published As
Publication number | Publication date |
---|---|
JP5672165B2 (ja) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454466B2 (en) | Explaining partially illegal combinations in combinatorial models | |
JP2017033562A (ja) | 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法 | |
CN109299530B (zh) | 一种仿真测试案例生成方法、系统、存储介质和终端 | |
JP5672165B2 (ja) | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 | |
JP2018147280A (ja) | データ分析装置及びデータ分析方法 | |
US8312400B2 (en) | Verification supporting system | |
JP5799823B2 (ja) | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 | |
US8850407B2 (en) | Test script generation | |
US10579761B1 (en) | Method and system for reconstructing a graph presentation of a previously executed verification test | |
US10546080B1 (en) | Method and system for identifying potential causes of failure in simulation runs using machine learning | |
JP5176869B2 (ja) | テストケース生成プログラムとテストケース生成装置およびテストケース生成方法 | |
JP2013077124A (ja) | ソフトウェアテストケース生成装置 | |
JP5321286B2 (ja) | プログラムモデル検査方法、プログラムモデル検査プログラム | |
JP6447111B2 (ja) | 共通化情報提供プログラム、共通化情報提供方法、および共通化情報提供装置 | |
GB2397905A (en) | Method for automatically generating and ordering test scripts | |
JP5568779B2 (ja) | 論理検証方法及び論理検証システム | |
KR101160482B1 (ko) | 테스트 스윗 생성 장치 및 방법 | |
JP5304470B2 (ja) | モデル検査プログラム、モデル検査方法、モデル検査装置 | |
CN111241766B (zh) | 测试方法与测试系统 | |
JP5228794B2 (ja) | モデル検査実施のための環境生成支援装置、環境生成支援方法、環境生成支援プログラム | |
JP7363164B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP4747036B2 (ja) | Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法 | |
WO2021157073A1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
US20210019446A1 (en) | Device and method for analyzing performances of a web application | |
JP5471971B2 (ja) | モデル検査におけるデータ生成方法、データ生成装置およびデータ生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141113 |
|
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: 20141125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5672165 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |