JP2015146178A - テストコンテキストの生成 - Google Patents
テストコンテキストの生成 Download PDFInfo
- Publication number
- JP2015146178A JP2015146178A JP2014230964A JP2014230964A JP2015146178A JP 2015146178 A JP2015146178 A JP 2015146178A JP 2014230964 A JP2014230964 A JP 2014230964A JP 2014230964 A JP2014230964 A JP 2014230964A JP 2015146178 A JP2015146178 A JP 2015146178A
- Authority
- JP
- Japan
- Prior art keywords
- context
- test
- variable
- current test
- test context
- 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
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
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】テスト対象関数用のテストプロキシにおいて、ヒューマンフレンドリーなテストコンテキストを生成するための方法は、テスト対象関数の初期テストコンテキストを生成することを含んでもよい。また、方法は、新しいコンテキスト機能拡張とともに現在のテストコンテキストを増強することを含んでもよい。また、方法は、ヒントを現在のテストコンテキストに追加することを含んでもよい。現在のテストコンテキストは、初期テストコンテキストを含んでもよく、或いは、初期テストコンテキストから導出されてもよい。
【選択図】図3
Description
Claims (20)
- テスト対象関数用のテストプロキシにおいて、ヒューマンフレンドリーなテストコンテキストを生成するための方法であって、前記方法は、
前記テスト対象関数の初期テストコンテキストを生成し、
新しいコンテキスト機能拡張とともに現在のテストコンテキストを増強し、
ヒントを前記現在のテストコンテキストに追加することを含み、
前記現在のテストコンテキストは、前記初期テストコンテキストを含むか、又は、前記初期テストコンテキストから導出される方法。 - 前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施し、前記新しいコンテキスト機能拡張及び前記ヒントを識別することをさらに含む、請求項1に記載の方法。
- 前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施することは、
前記テスト対象関数の分岐に到達するまで前記テスト対象関数をシンボリックに実行し、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の一部分に含まれる実体変数の依存関係をトレースし、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の前記一部分の制約を解決し、
前記制約及び前記現在のテストコンテキストに基づいて前記分岐が実行可能ではないと判定し、
前記分岐が実行可能ではなく、且つ、前記実体変数が従属実体変数であることを判定することに応答して、前記実体変数をシンボリック変数としてマーキングし、
前記シンボリック変数が前記テスト対象関数に対してアクセス可能であることを判定することに応答して、前記シンボリック変数を前記新しいコンテキスト機能拡張として識別することを含み、
前記新しいコンテキスト機能拡張とともに前記現在のテストコンテキストを増強することは、前記現在のテストコンテキストにおいて、前記実体変数をシンボリックにすることを含む、請求項2に記載の方法。 - 前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の前記一部分の制約を解決することは、前記分岐の経路条件を満たす前記実体変数の値を識別することを含み、
前記制約及び前記現在のテストコンテキストに基づいて前記分岐が実行可能ではないと判定することは、前記経路条件を満たす前記実体変数の前記値が、前記現在のテストコンテキストにおいて、前記の特定された実体変数の値と等しくないこと又は前記の特定された実体変数の値と矛盾していることを判定することを含む、請求項3に記載の方法。 - 前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施することは、前記シンボリック変数の1つ又は複数の事前条件を判定することをさらに含み、
前記新しいコンテキスト機能拡張とともに前記現在のテストコンテキストを増強することは、前記シンボリック変数の前記1つ又は複数の事前条件を前記現在のテストテキストに追加することをさらに含む、請求項3に記載の方法。 - 前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施することは、前記シンボリック変数としてマーキングされた前記実体変数が前記テスト対象関数に対してアクセス可能ではないことを判定することに応答して、前記シンボリック変数としてマーキングされた前記実体変数を前記ヒントとして識別することをさらに含み、
前記ヒントを前記現在のテストコンテキストに追加することは、ユーザが前記現在のテストコンテキストにおいて、前記シンボリック変数としてマーキングされた前記実体変数をシンボリックとするための示唆を、前記現在のテストコンテキストに追加することを含む、請求項3に記載の方法。 - 前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施することは、前記シンボリック変数としてマーキングされた前記実体変数が、前記現在のテストコンテキストにおいて、ユーザによって特定された変数を含むことを判定することに応答して、前記シンボリック変数としてマーキングされないように、前記シンボリック変数としてマーキングされた前記実体変数をマーキング解除することをさらに含む、請求項3に記載の方法。
- 前記ヒントは、ユーザが前記現在のテストコンテキストを修正するための示唆を含み、前記方法は、
前記現在のテストコンテキストにおけるユーザによって特定された変数の指定によって前記現在のテストコンテキストを増強するために有効であるユーザ入力を受信し、
前記現在のテストコンテキストにおいて、前記ユーザによって特定された変数を識別し、
前記現在のテストコンテキストに対する後続の自動的な機能拡張によって前記ユーザによって特定された変数が上書きされないように、前記ユーザによって特定された変数を優先することをさらに含む、請求項1に記載の方法。 - 前記現在のテストコンテキストにおいて、前記ユーザによって特定された変数を識別することは、前記ユーザによって特定された変数の前記指定の前に存在している直前のテストコンテキストと、前記ユーザによって特定された変数の前記指定の後に存在している前記現在のテストコンテキストとの間におけるテキストの差分を判定することを含む、請求項8に記載の方法。
- 前記テスト対象関数の前記初期テストコンテキストを生成することは、前記初期テストコンテキストにおいて、前記テスト対象関数の関数引数を一定値に等しくなるように設定することを含む、請求項1に記載の方法。
- プロセッサと、前記プロセッサに通信可能に結合され、コンピュータ命令を格納して有する非一時的なコンピュータ読み取り可能な媒体とを有する装置であって、
前記コンピュータ命令は、
テスト対象関数の初期テストコンテキストを生成し、
新しいコンテキスト機能拡張とともに現在のテストコンテキストを増強し、
ヒントを前記現在のテストコンテキストに追加するように前記プロセッサが実行可能であるテストコンテキストモジュールを含み、
前記現在のテストコンテキストは、前記初期テストコンテキストを含むか、又は、前記初期テストコンテキストから導出される装置。 - 前記コンピュータ命令は、前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施し、前記新しいコンテキスト機能拡張及び前記ヒントを識別するように前記プロセッサが実行可能である拡張シンボリック実行モジュールをさらに含み、
前記拡張シンボリック実行モジュールは、
前記テスト対象関数の分岐に到達するまで前記テスト対象関数をシンボリックに実行し、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の一部分に含まれた実体変数の依存関係をトレースし、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の前記一部分の制約を解決し、
前記制約及び前記現在のテストコンテキストに基づいて前記分岐が実行可能ではないと判定し、
前記分岐が実行可能ではないという判定と、前記実体変数が従属実体変数であるという判定とに応答して、前記実体変数をシンボリック変数としてマーキングし、
前記シンボリック変数が前記テスト対象関数に対してアクセス可能であるという判定に応答して、前記シンボリック変数を前記新しいコンテキスト機能拡張として識別するように前記プロセッサが実行可能であることにより、前記現在のテストコンテキストを使用し、前記テスト対象関数の拡張シンボリック実行を実行するように前記プロセッサが実行可能であり、
前記テストコンテキストモジュールは、前記現在のテストコンテキストにおいて、前記実体変数をシンボリックにするように前記プロセッサが実行可能であることにより、前記新しいコンテキスト機能拡張とともに前記現在のテストコンテキストを増強するように前記プロセッサが実行可能である、請求項11に記載の装置。 - 前記ヒントは、ユーザが前記現在のテストコンテキストを修正するための示唆を含み、
前記コンピュータ命令は、
前記ヒントを含む前記現在のテストコンテキストを表示し、
前記現在のテストコンテキストにおけるユーザによって特定された変数の指定によって前記現在のテストコンテキストを増強するために有効であるユーザ入力を受信するように前記プロセッサが実行可能であるユーザインターフェイスモジュールをさらに含み、
前記コンピュータ命令は、前記現在のテストコンテキストにおいて、前記ユーザによって特定された変数を識別するように前記プロセッサが実行可能である差分モジュールをさらに含み、
前記コンピュータ命令は、前記現在のテストコンテキストに対する後続の自動的な機能拡張によって、前記ユーザによって特定された変数が上書きされないように、前記ユーザによって特定された変数を優先するように前記プロセッサが実行可能である拡張シンボリック実行モジュールをさらに含む、請求項11に記載の装置。 - 前記差分モジュールは、前記ユーザによって特定された変数の指定の前に存在している直前のテストコンテキストと、前記ユーザによって特定された変数の前記指定の後に存在している前記現在のテストコンテキストとの間におけるテキストの差分を判定するように前記プロセッサが実行可能であることにより、前記現在のテストコンテキストにおいて、前記ユーザが特定された変数を識別するように前記プロセッサが実行可能である、請求項13に記載の装置。
- 前記テストコンテキストモジュールは、前記初期テストコンテキストにおいて、前記テスト対象関数の関数引数を一定値に等しくなるように設定するように前記プロセッサが実行可能であることにより、前記テスト対象関数の前記初期テストコンテキストを生成するように前記プロセッサが実行可能である、請求項11に記載の装置。
- テスト対象関数の初期テストコンテキストを生成し、
新しいコンテキスト機能拡張とともに現在のテストコンテキストを増強し、
ヒントを前記現在のテストコンテキストに追加することを含む動作を実行するようにプロセッサが実行可能に格納されたコンピュータ命令を有する非一時的なコンピュータ読み取り可能な媒体であって、
前記現在のテストコンテキストは、前記初期テストコンテキストを含むか、又は、前記初期テストコンテキストから導出される、コンピュータ読み取り可能な媒体。 - 前記動作は、前記現在のテストコンテキストを使用することにより、前記テスト対象関数の拡張シンボリック実行を実施し、前記新しいコンテキスト機能拡張及び前記ヒントを識別することをさらに含み、該動作は、
前記テスト対象関数の分岐に到達するまで前記テスト対象関数をシンボリックに実行し、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の一部分に含まれた実体変数の依存関係をトレースし、
前記分岐に到達するまでシンボリックに実行される前記テスト対象関数の前記一部分の制約を解決し、
前記分岐が前記制約及び前記現在のテストコンテキストに基づいて実行可能ではないと判定し、
前記分岐が実行可能ではなく、且つ、前記実体変数が従属実体変数であることを判定することに応答して、前記実体変数をシンボリック変数としてマーキングし、
前記シンボリック変数が前記テスト対象関数に対してアクセス可能であることを判定することに応答して、前記シンボリック変数を前記新しいコンテキスト機能拡張として識別することを含み、
前記新しいコンテキスト機能拡張とともに前記現在のテストコンテキストを増強することは、前記現在のテストコンテキストにおいて、前記実体変数をシンボリックにすることを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記ヒントは、ユーザが前記現在のテストコンテキストを修正するための示唆を含み、前記動作は、
前記現在のテストコンテキストにおけるユーザによって特定された変数の指定によって前記現在のテストコンテキストを増強するために有効であるユーザ入力を受信し、
前記現在のテストコンテキストにおいて、前記ユーザによって特定された変数を識別し、
前記現在のテストコンテキストに対する後続の自動的な機能拡張によって、前記ユーザによって特定された変数が上書きされないように、前記ユーザによって特定された変数を優先することをさらに含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記現在のテストコンテキストにおいて、前記ユーザによって特定された変数を識別することは、前記ユーザによって特定された変数の前記指定の前に存在している直前のテストコンテキストと、前記ユーザによって特定された変数の前記指定の後に存在している前記現在のテストコンテキストとの間におけるテキストの差分を判定することを含む、請求項18に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記テスト対象関数の前記初期テストコンテキストを生成することは、前記初期テストコンテキストにおいて、前記テスト対象関数の関数引数を一定値に等しくなるように設定することを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/170,217 | 2014-01-31 | ||
US14/170,217 US9436587B2 (en) | 2014-01-31 | 2014-01-31 | Test context generation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015146178A true JP2015146178A (ja) | 2015-08-13 |
JP6476777B2 JP6476777B2 (ja) | 2019-03-06 |
Family
ID=53754926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014230964A Active JP6476777B2 (ja) | 2014-01-31 | 2014-11-13 | テストコンテキストの生成 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9436587B2 (ja) |
JP (1) | JP6476777B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017142733A (ja) * | 2016-02-12 | 2017-08-17 | 富士通株式会社 | ドライバ生成プログラム、装置、及び方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697109B2 (en) * | 2014-06-26 | 2017-07-04 | Parasoft Corporation | Dynamically configurable test doubles for software testing and validation |
US10521335B2 (en) * | 2018-01-29 | 2019-12-31 | T-Mobile Usa, Inc. | Context-based device testing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229044A (ja) * | 2000-02-16 | 2001-08-24 | Hitachi Ltd | デバッグ方法 |
JP2007122207A (ja) * | 2005-10-26 | 2007-05-17 | Fujitsu Ltd | プログラム分析プログラム、プログラム分析装置、プログラム分析方法 |
JP2012150811A (ja) * | 2011-01-20 | 2012-08-09 | Fujitsu Ltd | 記号的実行を用いてc++プログラムを検証するための方法及びシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017119A1 (en) * | 2010-07-16 | 2012-01-19 | Fujitsu Limited | Solving Hybrid Constraints to Generate Test Cases for Validating a Software Module |
US8645924B2 (en) * | 2011-06-06 | 2014-02-04 | Fujitsu Limited | Lossless path reduction for efficient symbolic execution and automatic test generation |
US9038185B2 (en) * | 2011-12-28 | 2015-05-19 | Microsoft Technology Licensing, Llc | Execution of multiple execution paths |
WO2014035463A1 (en) * | 2012-08-31 | 2014-03-06 | Oregon State Board Of Higher Education On Behalf Of Portland State University | System and methods for generating and managing a virtual device |
US10031841B2 (en) * | 2013-06-26 | 2018-07-24 | Sap Se | Method and system for incrementally updating a test suite utilizing run-time application executions |
-
2014
- 2014-01-31 US US14/170,217 patent/US9436587B2/en active Active
- 2014-11-13 JP JP2014230964A patent/JP6476777B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229044A (ja) * | 2000-02-16 | 2001-08-24 | Hitachi Ltd | デバッグ方法 |
JP2007122207A (ja) * | 2005-10-26 | 2007-05-17 | Fujitsu Ltd | プログラム分析プログラム、プログラム分析装置、プログラム分析方法 |
JP2012150811A (ja) * | 2011-01-20 | 2012-08-09 | Fujitsu Ltd | 記号的実行を用いてc++プログラムを検証するための方法及びシステム |
Non-Patent Citations (1)
Title |
---|
道本 健二: "「プログラム解析による自動テスト生成の可能性」", 日経エレクトロニクス4月20日号, vol. 第1002号, JPN6018022637, 20 April 2009 (2009-04-20), JP, pages 第89頁-第100頁 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017142733A (ja) * | 2016-02-12 | 2017-08-17 | 富士通株式会社 | ドライバ生成プログラム、装置、及び方法 |
Also Published As
Publication number | Publication date |
---|---|
US9436587B2 (en) | 2016-09-06 |
US20150220425A1 (en) | 2015-08-06 |
JP6476777B2 (ja) | 2019-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9038032B2 (en) | Symbolic execution and automatic test case generation for JavaScript programs | |
US10152406B2 (en) | Software program repair | |
JP6264964B2 (ja) | ソフトウェア検証方法及びプロセッサ | |
JP6520074B2 (ja) | テストダブルの生成 | |
US9710370B2 (en) | Automated testing of shell scripts | |
Garn et al. | Eris: A tool for combinatorial testing of the Linux system call interface | |
US9639343B2 (en) | Method for altering execution of a program, debugger, and computer-readable medium | |
US9058427B2 (en) | Iterative generation of symbolic test drivers for object-oriented languages | |
US9396095B2 (en) | Software verification | |
JP6476777B2 (ja) | テストコンテキストの生成 | |
WO2014134990A1 (en) | Method, device and computer-readable storage medium for closure testing | |
JP2018060525A (ja) | イベント駆動型ソフトウェアテストシーケンス決定 | |
US9218273B2 (en) | Automatic generation of a resource reconfiguring test | |
US20110131031A1 (en) | Dynamic generation of tests | |
EP2913758A1 (en) | Loop abstraction for model checking | |
US8661421B2 (en) | Methods and apparatuses for endian conversion | |
JP6375649B2 (ja) | ソフトウェアプログラムの効率を高める方法及びプロセッサ | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
JPWO2020157795A1 (ja) | 試験装置、試験方法および試験プログラム | |
US20110225400A1 (en) | Device for Testing a Multitasking Computation Architecture and Corresponding Test Method | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP2005174045A (ja) | ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体 | |
JP2018124710A (ja) | 並列化方法、並列化ツール、及び車載制御装置 | |
US9830174B2 (en) | Dynamic host code generation from architecture description for fast simulation | |
CN117251298B (zh) | 一种流水线任务循环执行方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180731 |
|
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: 20190108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6476777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |