JP6528465B2 - ソフトウェアテストのためのシンボリック実行における状態パラメータ化 - Google Patents
ソフトウェアテストのためのシンボリック実行における状態パラメータ化 Download PDFInfo
- Publication number
- JP6528465B2 JP6528465B2 JP2015041801A JP2015041801A JP6528465B2 JP 6528465 B2 JP6528465 B2 JP 6528465B2 JP 2015041801 A JP2015041801 A JP 2015041801A JP 2015041801 A JP2015041801 A JP 2015041801A JP 6528465 B2 JP6528465 B2 JP 6528465B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- states
- parametric
- execution
- symbolic
- 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
Images
Classifications
-
- 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
-
- 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
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
2a+b+c+1 (式1)
3+b+c+6a (式2)
6a+b+c+3 (式3)
(2i*a)+b+c+i (式4)
10a+b+c+5 (式5)
Claims (15)
- パラメトリック状態を使用して実行可能コードをシンボリック実行するコンピュータ実行方法であって、
記憶媒体にアクセス可能なプロセッサが、当該記憶媒体に記憶された前記実行可能コードに関連する、シンボリックパラメータを用いて表される複数の実行状態において共有される共有状態要素と前記複数の実行状態において互いに相異する相異状態要素とを特定し、
前記プロセッサが、状態抽象化を用いて前記相異状態要素を表し、
前記プロセッサが、前記状態抽象化に基づいて、パラメトリック制約を有し、かつ前記複数の実行状態の何れかを含む実行状態の群を無損失に表すパラメトリック状態を定義し、前記実行状態の群における実行状態が前記パラメトリック状態のインスタンスであり、
前記プロセッサが、前記パラメトリック状態を使用して前記実行可能コードをシンボリック実行する、
ことを含むコンピュータ実行方法。 - 状態抽象化を用いて前記相異状態要素を表すことは、
前記相異状態要素の少なくとも一部を簡約化し、
少なくとも一部が簡約化された前記相異状態要素を前記記憶媒体に格納された共通パターンとマッチングすることにより、前記相異状態要素における共通パターンを特定する、
ことを含む請求項1に記載のコンピュータ実行方法。 - 前記パラメトリック状態を定義することは、
前記特定された共通パターンに基づいて、前記パラメトリック状態を定義する、
ことを含む請求項2に記載のコンピュータ実行方法。 - 前記実行状態の群は、ループの繰返を表し、
前記ループのループ本体から前記パラメトリック状態のパス条件と値ストアとを定義することをさらに含み、
前記パラメトリック状態を定義することは、さらに前記ループのループヘッダに基づいて、前記パラメトリック制約を定義することを含む、
請求項1に記載のコンピュータ実行方法。 - 前記パラメトリック状態を使用して前記実行可能コードをシンボリック実行することは、
前記パラメトリック状態を用いてテストケースを生成し、
前記テストケースを用いて、前記実行状態の群においてバグチェックを実行する、
ことをさらに有する、
請求項1に記載のコンピュータ実行方法。 - 前記プロセッサが、前記実行状態の群を前記パラメトリック状態に置換して、前記実行可能コードに関連する前記実行状態の数を低減させる、
ことをさらに有する請求項1に記載のコンピュータ実行方法。 - 前記プロセッサが、前記実行状態の群を前記パラメトリック状態に置換して、前記シンボリック実行によって消費されるメモリ資源を低減させる、
請求項6に記載のコンピュータ実行方法。 - パラメトリック状態を使用して実行可能コードをシンボリック実行するためのプロセッサ実行可能命令であって、記憶媒体にアクセス可能なプロセッサによって実行されたときに、
前記記憶媒体に記憶された前記実行可能コードに関連する、シンボリックパラメータを用いて表される複数の実行状態において共有される共有状態要素と前記複数の実行状態において互いに相異する相異状態要素とを特定し、
前記プロセッサが、状態抽象化を用いて前記相異状態要素を表し、
前記プロセッサが、前記状態抽象化に基づいて、パラメトリック制約を有し、かつ前記複数の実行状態の何れかを含む実行状態の群を無損失に表すパラメトリック状態を定義し、前記実行状態の群における実行状態が前記パラメトリック状態のインスタンスであり、
前記プロセッサが、前記パラメトリック状態を使用して前記実行可能コードをシンボリック実行する、
ことを前記プロセッサに実行させるための前記命令を格納する一又は複数の非一時的なコンピュータ可読媒体。 - 状態抽象化を用いて前記相異状態要素を表すための前記命令は、
前記相異状態要素の少なくとも一部を簡約化し、
少なくとも一部が簡約化された前記相異状態要素を前記記憶媒体に格納された共通パターンとマッチングすることにより、前記相異状態要素における共通パターンを特定する
ための命令を含む請求項8に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記パラメトリック状態を定義するための前記命令は、前記特定された共通パターンに基づいて、前記パラメトリック状態を定義するための命令を含む、
請求項8に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記実行状態の群は、ループの繰返を表し、
前記ループのループ本体から前記パラメトリック状態のパス条件と値ストアとを定義するための命令をさらに含み、
前記パラメトリック状態を定義するための前記命令は、さらに前記ループのループヘッダに基づいて、前記パラメトリック制約を定義するための命令を含む、
請求項8に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記パラメトリック状態を使用して前記実行可能コードをシンボリック実行するための前記命令は、
前記パラメトリック状態を用いてテストケースを生成し、
前記テストケースを用いて、前記実行状態の群においてバグチェックを実行する
ための命令をさらに含む、
請求項8に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記プロセッサが、前記実行状態の群を前記パラメトリック状態に置換して、前記実行可能コードに関連する前記実行状態の数を低減させるための命令をさらに含む、
請求項8に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記実行状態の群を前記パラメトリック状態に置換するための前記命令は、実行されたときに、前記シンボリック実行によって消費されるメモリ資源を低減させる、
請求項13に記載の一又は複数の非一時的なコンピュータ可読媒体。 - 前記実行状態の群を前記パラメトリック状態に置換するための前記命令は、実行されたときに、前記シンボリック実行のための前記プロセッサの計算量を低減させる、
請求項13に記載の一又は複数の非一時的なコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/253,342 US9483380B2 (en) | 2014-04-15 | 2014-04-15 | Parameterized states in symbolic execution for software testing |
US14/253,342 | 2014-04-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015204109A JP2015204109A (ja) | 2015-11-16 |
JP6528465B2 true JP6528465B2 (ja) | 2019-06-12 |
Family
ID=54265170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015041801A Active JP6528465B2 (ja) | 2014-04-15 | 2015-03-03 | ソフトウェアテストのためのシンボリック実行における状態パラメータ化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9483380B2 (ja) |
JP (1) | JP6528465B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6316120B2 (ja) * | 2014-06-30 | 2018-04-25 | 日立オートモティブシステムズ株式会社 | テストケース生成システム及びテストケースを記録した記録媒体 |
US9892027B2 (en) * | 2014-07-09 | 2018-02-13 | Fujitsu Limited | Event-driven software testing |
US10503633B2 (en) | 2016-03-30 | 2019-12-10 | International Business Machines Corporation | Symbolic execution of alternative branches |
US10169217B2 (en) * | 2016-04-06 | 2019-01-01 | General Electric Company | System and method for test generation from software specification models that contain nonlinear arithmetic constraints over real number ranges |
US12086055B2 (en) * | 2020-10-07 | 2024-09-10 | Korea University Research And Business Foundation | Method for automatically pruning search space of symbolic execution via machine learning |
EP4068127A1 (en) * | 2021-03-31 | 2022-10-05 | Irdeto B.V. | Systems and methods for determining execution state |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513122A (en) * | 1994-06-06 | 1996-04-30 | At&T Corp. | Method and apparatus for determining the reachable states in a hybrid model state machine |
CA2153032A1 (en) * | 1994-09-16 | 1996-03-17 | William Martin Schell | Method of and apparatus for efficiently debugging programs given limited system resources |
US5784553A (en) * | 1996-01-16 | 1998-07-21 | Parasoft Corporation | Method and system for generating a computer program test suite using dynamic symbolic execution of JAVA programs |
JP2004213053A (ja) * | 2002-12-26 | 2004-07-29 | Toshiba Corp | オブジェクト状態分類方法とシステム、およびそのためのプログラム |
US7584455B2 (en) * | 2003-10-23 | 2009-09-01 | Microsoft Corporation | Predicate-based test coverage and generation |
US7149987B2 (en) * | 2004-03-08 | 2006-12-12 | Synopsys, Inc. | Method and apparatus for performing generator-based verification |
US7747985B2 (en) * | 2005-03-18 | 2010-06-29 | Microsoft Corporation | Conformance testing of multi-threaded and distributed software systems |
US7587636B2 (en) * | 2005-08-04 | 2009-09-08 | Microsoft Corporation | Unit test generalization |
US7797687B2 (en) * | 2005-08-04 | 2010-09-14 | Microsoft Corporation | Parameterized unit tests with behavioral purity axioms |
US8533680B2 (en) * | 2005-12-30 | 2013-09-10 | Microsoft Corporation | Approximating finite domains in symbolic state exploration |
US7949511B2 (en) * | 2007-11-12 | 2011-05-24 | Nec Laboratories America, Inc. | System and method for tunneling and slicing based BMC decomposition |
US8131768B2 (en) * | 2008-05-08 | 2012-03-06 | Nec Laboratories America, Inc. | Symbolic program analysis using term rewriting and generalization |
US20090300423A1 (en) * | 2008-05-28 | 2009-12-03 | James Michael Ferris | Systems and methods for software test management in cloud-based network |
US8402440B2 (en) * | 2008-07-07 | 2013-03-19 | Nec Laboratories America, Inc. | Program verification through symbolic enumeration of control path programs |
US8387021B2 (en) * | 2008-09-26 | 2013-02-26 | Microsoft Corporation | Symbolic runtime checking of quantified contracts |
US8719796B2 (en) * | 2010-01-26 | 2014-05-06 | The Board Of Trustees Of The University Of Illinois | Parametric trace slicing |
JP5440287B2 (ja) * | 2010-03-15 | 2014-03-12 | 富士通株式会社 | シンボリック実行支援プログラム、方法及び装置 |
US20120179935A1 (en) * | 2011-01-11 | 2012-07-12 | Nec Laboratories America, Inc. | Dynamic test generation for concurrent programs |
US8869113B2 (en) * | 2011-01-20 | 2014-10-21 | Fujitsu Limited | Software architecture for validating C++ programs using symbolic execution |
US20120192162A1 (en) * | 2011-01-20 | 2012-07-26 | Fujitsu Limited | Optimizing Handlers for Application-Specific Operations for Validating C++ Programs Using Symbolic Execution |
US8645924B2 (en) * | 2011-06-06 | 2014-02-04 | Fujitsu Limited | Lossless path reduction for efficient symbolic execution and automatic test generation |
US8656370B2 (en) * | 2011-08-26 | 2014-02-18 | Fujitsu Limited | Symbolic execution of javascript software using a control flow graph |
US9141354B2 (en) * | 2012-04-23 | 2015-09-22 | Ecole polytechnique fédérale de Lausanne (EPFL) | Advantageous state merging during symbolic analysis |
US8856751B2 (en) * | 2012-09-20 | 2014-10-07 | Fujitsu Limited | Abstract symbolic execution for scaling symbolic execution generation and automatic test generation |
US8856755B2 (en) * | 2013-01-27 | 2014-10-07 | International Business Machines Corporation | Dominant-state-based coverage metric |
-
2014
- 2014-04-15 US US14/253,342 patent/US9483380B2/en active Active
-
2015
- 2015-03-03 JP JP2015041801A patent/JP6528465B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015204109A (ja) | 2015-11-16 |
US20150293831A1 (en) | 2015-10-15 |
US9483380B2 (en) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6528465B2 (ja) | ソフトウェアテストのためのシンボリック実行における状態パラメータ化 | |
Alglave et al. | Software verification for weak memory via program transformation | |
Guo et al. | Exploiting community structure for floating-point precision tuning | |
Sen et al. | Multise: Multi-path symbolic execution using value summaries | |
Tristan et al. | Evaluating value-graph translation validation for LLVM | |
Pop et al. | GRAPHITE: Polyhedral analyses and optimizations for GCC | |
Mador-Haim et al. | An axiomatic memory model for POWER multiprocessors | |
US8732669B2 (en) | Efficient model checking technique for finding software defects | |
Wachter et al. | Verifying multi-threaded software with impact | |
US9292265B2 (en) | Method for convergence analysis based on thread variance analysis | |
JP2007528059A (ja) | ソフトウェアのモデル化、抽象、および分析のためのシステムと方法 | |
JP6342129B2 (ja) | 混合モードプログラムのソースコードエラー位置検出装置及び方法 | |
Biere et al. | The auspicious couple: Symbolic execution and WCET analysis | |
Garoche et al. | Incremental invariant generation using logic-based automatic abstract transformers | |
Geldenhuys et al. | Bounded lazy initialization | |
Leung et al. | C-to-verilog translation validation | |
WO2017015955A1 (en) | Application testing | |
Lindner et al. | Verification of safety functions implemented in Rust-a symbolic execution based approach | |
Demange et al. | Mechanizing conventional SSA for a verified destruction with coalescing | |
Li et al. | Scaling up symbolic analysis by removing z-equivalent states | |
Yang et al. | Model checking sequential software programs via mixed symbolic analysis | |
de Vos | Translation Validation for the LLVM Compiler | |
Sri et al. | A Holistic Approach to CPU Verification using Formal Techniques | |
Ivutin et al. | Low-level Code Auto-tuning for State-of-the-art Multicore Architectures | |
Atkinson et al. | Automated validation and verification of process models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190404 |
|
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: 20190416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190429 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6528465 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |