JP5440287B2 - シンボリック実行支援プログラム、方法及び装置 - Google Patents
シンボリック実行支援プログラム、方法及び装置 Download PDFInfo
- Publication number
- JP5440287B2 JP5440287B2 JP2010057094A JP2010057094A JP5440287B2 JP 5440287 B2 JP5440287 B2 JP 5440287B2 JP 2010057094 A JP2010057094 A JP 2010057094A JP 2010057094 A JP2010057094 A JP 2010057094A JP 5440287 B2 JP5440287 B2 JP 5440287B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- block
- storage unit
- symbolic execution
- path condition
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出するステップと、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する変換処理ステップと、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するステップと、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成して前記シンボリック実行部の管理データに追加登録するステップと、
を、コンピュータに実行させるためのシンボリック実行支援プログラム。
前記変換処理が、
前記述語関数の宣言を前記分析対象のプログラムに追加する処理と、
前記繰り返し制御変数で今回のケースを特定するためのカレントデータ設定文を、前記繰り返し制御変数を固定の値に設定したカレントデータ設定文に置換する処理と、
を含む付記1記載のシンボリック実行支援プログラム。
前記パターンが、前記特定の処理において繰り返し制御変数を使用していないという条件を含むパターンである
付記1又は2記載のシンボリック実行支援プログラム。
前記変換処理ステップが、
前記分析対象のプログラムから、前記繰り返し制御変数で今回のケースを特定するためのカレントデータ設定文と、抽出された前記繰り返しブロックに含まれる前記特定の処理のブロックと、抽出された前記繰り返しブロックの直後のブロックとを抽出し、対応付けて存在チェックテーブルに登録するステップと、
前記存在チェックテーブルに対応付けられているデータで前記二分岐構造を生成するステップと、
を含む付記1乃至3のいずれか1つ記載のシンボリック実行支援プログラム。
プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出するステップと、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する変換処理ステップと、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するステップと、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成して前記シンボリック実行部の管理データに追加登録するステップと、
を含み、コンピュータに実行されるシンボリック実行支援方法。
プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出する処理対象特定部と、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する二分岐ブロック生成部と、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するパスコンディションテーブル生成部と、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成して前記シンボリック実行部の管理データに追加登録するパスコンディション動的追加部と、
を有するシンボリック実行支援装置。
103 処理対象特定部 104 チェックパターン格納部
105 存在チェックテーブル格納部 106 二分岐構造生成部
107 変換後プログラム格納部
108 パスコンディションテーブル格納部
1031 ループ抽出部 1033 パターンチェック部
1061 ifブロック生成部
1063 パスコンディションテーブル生成部
151 パスコンディション動的追加部
200 シンボリック実行部
Claims (6)
- プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出するステップと、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する変換処理ステップと、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するステップと、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成してシンボリック実行部の管理データに追加登録するステップと、
を、コンピュータに実行させるためのシンボリック実行支援プログラム。 - 前記変換処理が、
前記述語関数の宣言を前記分析対象のプログラムに追加する処理と、
前記繰り返し制御変数で今回のケースを特定するためのカレントデータ設定文を、前記繰り返し制御変数を固定の値に設定したカレントデータ設定文に置換する処理と、
を含む請求項1記載のシンボリック実行支援プログラム。 - 前記パターンが、前記特定の処理において繰り返し制御変数を使用していないという条件を含むパターンである
請求項1又は2記載のシンボリック実行支援プログラム。 - 前記変換処理ステップが、
前記分析対象のプログラムから、前記繰り返し制御変数で今回のケースを特定するためのカレントデータ設定文と、抽出された前記繰り返しブロックに含まれる前記特定の処理のブロックと、抽出された前記繰り返しブロックの直後のブロックとを抽出し、対応付けて存在チェックテーブルに登録するステップと、
前記存在チェックテーブルに対応付けられているデータで前記二分岐構造を生成するステップと、
を含む請求項1乃至3のいずれか1つ記載のシンボリック実行支援プログラム。 - プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出するステップと、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する変換処理ステップと、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するステップと、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成してシンボリック実行部の管理データに追加登録するステップと、
を含み、コンピュータに実行されるシンボリック実行支援方法。 - プログラムデータ格納部に格納されている分析対象のプログラムから、繰り返し制御変数を変化させて特定のケースを探索して当該特定のケースにおいて特定の処理を実施するというパターンに合致する繰り返しブロックを抽出する処理対象特定部と、
前記分析対象のプログラムにおいて、抽出された前記繰り返しブロック及び当該繰り返しブロックの直後のブロックを、真の場合に前記特定の処理を実施し且つ偽の場合に前記直後のブロックの処理を実施し且つ当該真偽に関する述語関数を含む二分岐構造に置換する変換処理を実施し、変換処理後のプログラムを変換後プログラム格納部に格納する二分岐ブロック生成部と、
前記二分岐構造に含まれる前記述語関数について論理制約を生成し、パスコンディションデータ格納部に格納するパスコンディションテーブル生成部と、
前記変換後プログラム格納部に格納された前記変換処理後のプログラムのシンボリック実行時に、前記パスコンディションデータ格納部に格納されている前記述語関数を処理していることを検出すると、当該述語関数に対応付けられている論理制約から、前記述語関数の出現位置におけるパスコンディションを生成してシンボリック実行部の管理データに追加登録するパスコンディション動的追加部と、
を有するシンボリック実行支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010057094A JP5440287B2 (ja) | 2010-03-15 | 2010-03-15 | シンボリック実行支援プログラム、方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010057094A JP5440287B2 (ja) | 2010-03-15 | 2010-03-15 | シンボリック実行支援プログラム、方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011191985A JP2011191985A (ja) | 2011-09-29 |
JP5440287B2 true JP5440287B2 (ja) | 2014-03-12 |
Family
ID=44796829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010057094A Expired - Fee Related JP5440287B2 (ja) | 2010-03-15 | 2010-03-15 | シンボリック実行支援プログラム、方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5440287B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5772607B2 (ja) * | 2012-01-12 | 2015-09-02 | 富士通株式会社 | 生成装置、生成方法、および生成プログラム |
JPWO2014168164A1 (ja) * | 2013-04-10 | 2017-02-16 | 日本電気株式会社 | ネットワーク検証装置、ネットワーク検証方法及びプログラム |
US9483380B2 (en) * | 2014-04-15 | 2016-11-01 | Fujitsu Limited | Parameterized states in symbolic execution for software testing |
JP6547345B2 (ja) * | 2015-03-17 | 2019-07-24 | 富士通株式会社 | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 |
JP6574151B2 (ja) * | 2016-08-19 | 2019-09-11 | 日本電信電話株式会社 | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3418544B2 (ja) * | 1998-03-24 | 2003-06-23 | 日立ソフトウエアエンジニアリング株式会社 | プログラムのテストデータ自動生成装置 |
JP2000259401A (ja) * | 1999-03-05 | 2000-09-22 | Ntt Communicationware Corp | ソースプログラム標準化装置およびソースプログラムを標準化する方法 |
US20090089759A1 (en) * | 2007-10-02 | 2009-04-02 | Fujitsu Limited | System and Method for Providing Symbolic Execution Engine for Validating Web Applications |
-
2010
- 2010-03-15 JP JP2010057094A patent/JP5440287B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011191985A (ja) | 2011-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5440287B2 (ja) | シンボリック実行支援プログラム、方法及び装置 | |
JP5505227B2 (ja) | 繰返しシンボリック実行方法、プログラム及び装置 | |
WO2016190869A1 (en) | Determining potential test actions | |
KR20190020363A (ko) | 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 | |
CN107977304B (zh) | 一种系统调试方法和装置 | |
JP6665576B2 (ja) | 支援装置、支援方法及びプログラム | |
US11366742B2 (en) | Automated identification of lines of code related to errors field | |
JP5414633B2 (ja) | アプリケーション実行装置及びアプリケーション実行方法 | |
WO2021205589A1 (ja) | テストスクリプト生成装置、テストスクリプト生成方法及びプログラム | |
JP6036089B2 (ja) | データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム | |
JP5900212B2 (ja) | テストデータ生成装置、該プログラム、及び該方法 | |
CN102411534A (zh) | 一种断点调试方法和调试器 | |
KR101673151B1 (ko) | 프로그램 소스 및 db 스키마의 연관 관계 변화 분석 방법 및 장치 | |
JP5755861B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP6547345B2 (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 | |
JP2016051367A (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
US20090235223A1 (en) | Program generation apparatus and program generation method | |
JP6437396B2 (ja) | トレース情報管理システム、方法、及びプログラム | |
CN104731949B (zh) | 识别网页跳转的方法和装置 | |
JP2013206310A (ja) | モデル検査装置、モデル検査方法、およびプログラム | |
WO2022249256A1 (ja) | Api検出装置、api検出方法及びプログラム | |
JP6974707B2 (ja) | テストプログラム、テスト装置及びテスト方法 | |
JP2007200240A (ja) | 情報処理装置及び情報処理方法 | |
JP2018049492A (ja) | 解析装置、解析プログラムおよび解析方法 | |
JP2011113298A (ja) | 流用ソースコード解析システム及びプログラム並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131029 |
|
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: 20131119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131202 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5440287 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |