JP2007241432A - ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム - Google Patents
ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム Download PDFInfo
- Publication number
- JP2007241432A JP2007241432A JP2006059779A JP2006059779A JP2007241432A JP 2007241432 A JP2007241432 A JP 2007241432A JP 2006059779 A JP2006059779 A JP 2006059779A JP 2006059779 A JP2006059779 A JP 2006059779A JP 2007241432 A JP2007241432 A JP 2007241432A
- Authority
- JP
- Japan
- Prior art keywords
- function
- test
- data
- function information
- module
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】試験対象モジュール61と同等の機能を備えた同機能保持モジュール51の処理実行時に、実行ソフトウェアの関数情報が格納されたメモリ52を解析して、同機能保持モジュール51の関数情報に関するアドレス情報を取得するメモリ解析部11と、取得されたアドレス情報に基づき同機能保持モジュール51の関数情報を取得する関数情報収集部12と、取得された関数情報から、出力対象を定義した出力対象定義データ102に基づき、試験入力データ111及び期待値データ112を生成するデータ生成部13とを備える。
【選択図】図1
Description
図1はこの発明の実施の形態1によるソフトウェア試験装置の構成を示すブロック図である。このソフトウェア試験装置は、メモリ解析部11及び関数情報収集部12により構成されたデータ抽出部10、データ生成部13、処理実行部21並びに評価部22を備えており、試験の対象となるモジュールである試験対象モジュール61を評価する際に使用する試験の手順や引数値を含む試験仕様を定義した試験入力データ111及び試験対象モジュール61の処理結果である実行結果113の期待値を表す期待値データ112を、試験対象モジュール61と同等の機能を備えたモジュールである同機能保持モジュール51を含むソフトウェア50を使用して自動生成するものである。
例えば、ソフトウェアのバージョンアップを行う際の古いバージョンが同機能保持モジュール51に相当し、新しいバージョンが試験対象モジュール61に相当する。
このように、試験入力データ111及び期待値データ112は試験対象モジュール61の関数情報に対応する同機能保持モジュール51の関数情報に基づいて生成される。
関数情報の取得処理の流れは以下のとおりである。
最初に、関数情報を出力したい同機能保持モジュール51内の関数から、データ抽出部10内のメモリ解析部11を呼び出す(詳細は後述)。次に、呼び出されたメモリ解析部11は、実行ソフトウェアの関数情報が格納されたメモリ52を解析して、関数情報の取得に必要な関数アドレス、関数の戻りアドレス、関数の使用しているスタック範囲を示すアドレス(以下、これらを総称してアドレス情報とする)を抽出して、関数情報収集部12を呼び出す。最後に、関数情報収集部12は、抽出されたアドレス情報に基づき、コンパイラが提供するシンボル検索機能を使用して、呼び出し元の同機能保持モジュール51内の関数の関数情報を取得する。このシンボル検索機能は、シンボル情報へアクセスする機能であり、一般的に使用されている。
このプロファイル機能とは、実行コード内に存在する関数(正確にはオプションを指定してコンパイルされたソースコード内にある関数)の処理の前後にそれぞれ特定の関数(以下、プロファイル関数とする)を挿入する機能である。例えば、Microsoft社のMicrosoft Visual C++のプロファイル機能を利用することができる。
このプロファイル関数にメモリ解析部11を呼び出すコードを実装することで、同機能保持モジュール51からメモリ解析部11を呼び出せるようにすることができる。
メモリ解析部11は、このようにしてアドレス情報を取得し、関数情報収集部12を呼び出す。
このシンボル検索機能には、アドレス情報からの関数名の検索、関数引数情報の検索、関数自動変数の情報の取得、基本型情報及び構造体等のユーザ定義型情報の取得等の機能が含まれている。関数情報収集部12は、これらの機能を使用することで、容易にアドレス情報から同機能保持モジュール51の関数情報を取得することができる。シンボル検索機能としては、例えば開発環境がMicrosoft社のMicrosoft Visual C++の場合、デバッグ支援ツールのAPI(application program interface)を利用する方法がある。その他の開発環境においても、一般的に同様の手段は提供されているので、必要な関数情報を検索して取得することができる。
図3は出力対象定義データ102の例を示す図である。出力対象定義データ102は、図3に示すように、関数名、関数の型、引数の型情報を、C++のような関数宣言211,212により表しても良い。
ステップST11において、同機能保持モジュール51内の関数情報を出力する関数を指定するための出力対象定義データ102が設定され、また、コンパイラのプロファイル機能を利用してプロファイル関数の埋め込みが行われる。
ステップST12において、同機能保持モジュール51を含むソフトウェア50の処理を実行するための入力データ101がインタフェースを介して同機能保持モジュール51に入力される。
ステップST14において、同機能保持モジュール51内の関数が実行されると、最初に、関数処理の先頭に埋め込まれた先頭用のプロファイル関数が実行される。先頭用のプロファイル関数内でメモリ解析部11を呼び出す。
ステップST15において、メモリ解析部11は、メモリ52を解析して関数情報の出力対象の関数のアドレス情報を抽出し、抽出したアドレス情報を入力して関数情報収集部12を呼び出す。
ステップST17において、データ生成部13は、関数情報の関数名に基づき出力対象定義データ102内で出力指定された関数かどうかを判断し、出力指定されたデータならば試験入力データ111を作成し、指定外のデータならば破棄する。
ステップST18において、同機能保持モジュール51の関数処理の末尾において、埋め込まれた末尾用のプロファイル関数が実行される。末尾用のプロファイル関数でメモリ解析部11を呼び出す。
ステップST20において、関数情報収集部12はステップST19で抽出されたアドレス情報を入力してシンボル検索機能により同機能保持モジュール51の関数情報を抽出し、抽出した関数情報を入力してデータ生成部13を呼び出す。
ステップST21において、データ生成部13は、関数情報の関数名に基づき出力対象定義データ102内で出力指定された関数かどうかを判断し、出力指定されたデータならば、関数情報から期待値データ112を生成し、指定外のデータならば破棄する。
ステップST23において、必要な試験入力データ111及び期待値データ112が揃っていれば、ステップST24へ移行し、揃っていなければ、ステップST12へ移行する。
ステップST24において、処理実行部21はステップST17で生成された試験入力データ111を入力して試験対象モジュール61を呼び出す。処理実行部21内では、試験入力データ111で指定された引数値を入力し、試験入力データ111で指定された試験対象モジュール61の関数を呼び出す。
ステップST26において、処理実行部21は、試験対象モジュール61の関数の処理結果(戻り値、引数値)及び試験入力データ111から、試験の実行結果113を生成する。
ステップST27において、評価部22は、ステップST26で生成された実行結果113と、ステップST21で生成された期待値データ112を比較して、評価結果114を生成する。
ステップST28において、デバッグ等により試験を繰り返す場合は、ステップST24へ移行し、試験が完了した場合は処理を終了する。
図9はこの発明の実施の形態2によるソフトウェア試験装置の構成を示すブロック図である。このソフトウェア試験装置は、メモリ解析部11及び関数情報収集部12により構成されたデータ抽出部10、データ変換部14、データ生成部13、処理実行部21並びに評価部22を備えており、上記実施の形態1の図1に示す構成に、関数情報収集部12により取得された関数情報をマッピングデータ103によりデータ変換するデータ変換部14を追加したものである。
ステップST31において、同機能保持モジュール51内の関数情報を出力する関数を指定するための出力対象定義データ102が設定され、試験対象モジュール61の試験対象関数と同機能保持モジュール51の関数における関数情報に差異がある場合に、データの対応付けを示すマッピングデータ103が設定され、コンパイラのプロファイル機能を利用してプロファイル関数の埋め込みが行われる。(コンパイラ作業)
ステップST32において、同機能保持モジュール51を含むソフトウェア50の処理を実行するための入力データ101がインタフェースを介して同機能保持モジュール51に入力される。
ステップST34において、同機能保持モジュール51内の関数が実行されると、最初に、関数処理の先頭に埋め込まれた先頭用のプロファイル関数が実行され、先頭用のプロファイル関数内でメモリ解析部11が呼び出される。
ステップST35において、メモリ解析部11は、メモリ52を解析して関数情報の出力対象の関数のアドレス情報を抽出し、抽出したアドレス情報を入力して関数情報収集部12を呼び出す。
ステップST37において、データ変換部14は、マッピングデータ103に基づき、ステップST36で取得された同機能保持モジュール51の関数情報を対応する試験対象モジュール61の関数の関数情報に変換し、変換後の関数情報を入力してデータ生成部13を呼び出す。
ステップST38において、データ生成部13は、関数情報の関数名に基づき出力対象定義データ102内で出力指定された関数かどうかを判断し、出力指定されたデータならば試験入力データ111を作成し、指定外のデータならば破棄する。
ステップST40において、メモリ解析部11は、メモリ52を解析して、関数情報の出力対象のアドレス情報を抽出し、抽出した関数のアドレス、関数の戻りアドレス、関数の使用しているスタック範囲を示すアドレスを入力して関数情報収集部12を呼び出す。
ステップST41において、ステップST40で抽出されたアドレス情報を入力してシンボル検索機能により関数情報を抽出し、抽出した関数情報を入力しデータ変換部14を呼び出す。
ステップST43において、データ生成部13は、関数情報の関数名に基づき出力対象定義データ102内で出力指定された関数かどうかを判断し、出力指定されたデータならば、関数情報から期待値データ112を生成し、指定外のデータならば破棄する。
ステップST44において、同機能保持モジュール51の処理が終了していれば、ステップST45へ移行し、同機能保持モジュール51の処理が終了していなければ、ステップST34へ移行する。
ステップST46において、処理実行部21はステップST38で生成された試験入力データ111を入力して試験対象モジュール61を呼び出す。このとき、処理実行部21は、試験入力データ111で指定された引数値を入力し、試験入力データ111で指定された試験対象モジュール61の関数を呼び出す。
ステップST47において、処理実行部21は試験対象モジュール61を実行し、試験対象モジュール61は、その処理結果(戻り値、引数値)を呼び出し元へ返す。
ステップST49において、評価部22はステップST48で生成された実行結果113とステップST43で生成された期待値データ112を比較して評価結果114を生成する。
ステップST50において、デバッグ等により試験を繰り返す場合は、ステップST46へ移行し、試験が完了した場合は処理を終了する。
図12はこの発明の実施の形態3によるソフトウェア試験装置の構成を示すブロック図である。このソフトウェア試験装置は、メモリ解析部11及び関数情報収集部12により構成されたデータ抽出部10、データ管理部15を含むデータ変換部14、データ生成部13、処理実行部21並びに評価部22を備えており、上記実施の形態2の図9に示す構成に、データ抽出部10より受け取った関数情報のうち必要な関数情報を関数情報104として保存したり、必要に応じて保存した関数情報104を検索するデータ管理部15を追加したものである。
試験対象モジュール61の関数に必要な関数情報を抽出するのに、同機能保持モジュール51の複数の関数情報を必要とする場合もあるが、この実施の形態3では、このような場合にも試験入力データ111及び期待値データ112を生成するものである。
Claims (5)
- 試験対象モジュールの試験の手順や引数値を含む試験仕様を定義した試験入力データ及び上記試験対象モジュールの実行結果の期待値を表す期待値データを使用して上記試験対象モジュールを評価するソフトウェア試験装置において、
上記試験対象モジュールと同等の機能を備えた同機能保持モジュールの処理実行時に、実行ソフトウェアの関数情報が格納されたメモリを解析して、上記同機能保持モジュールの関数情報に関するアドレス情報を取得するメモリ解析部と、
該メモリ解析部により取得されたアドレス情報に基づき上記同機能保持モジュールの関数情報を取得する関数情報収集部と、
該関数情報収集部により取得された関数情報から、出力対象を定義した出力対象定義データに基づき、上記試験入力データ及び上記期待値データを生成するデータ生成部とを備えたことを特徴とするソフトウェア試験装置。 - 関数情報収集部により取得された同機能保持モジュールの関数情報を、同機能保持モジュールと試験対象モジュールの関数間の対応付けを記述したマッピングデータに基づき、試験対象モジュールの関数情報に変換するデータ変換部を備え、
データ生成部は上記データ変換部により変換された関数情報から、出力対象定義データに基づき、上記試験入力データ及び上記期待値データを生成することを特徴とする請求項1記載のソフトウェア試験装置。 - 関数情報収集部により取得された関数情報を保存し、必要に応じて保存した関数情報を検索して抽出するデータ管理部を備え、
データ変換部は、関数情報収集部により取得された関数情報と上記データ管理部により抽出された関数情報を、マッピングデータに基づき試験対象モジュールの関数情報に変換することを特徴とする請求項2記載のソフトウェア試験装置。 - 試験対象モジュールの試験の手順や引数値を含む試験仕様を定義した試験入力データ及び上記試験対象モジュールの実行結果の期待値を表す期待値データを使用して上記試験対象モジュールを評価するソフトウェア試験方法において、
メモリ解析部が、上記試験対象モジュールと同等の機能を備えた同機能保持モジュールの処理実行時に、実行ソフトウェアの関数情報が格納されたメモリを解析して、上記同機能保持モジュールの関数情報に関するアドレス情報を取得するステップと、
関数情報収集部が、上記メモリ解析部により取得されたアドレス情報に基づき、上記同機能保持モジュールの関数情報を取得するステップと、
データ生成部が、上記関数情報収集部により取得された関数情報から、出力対象を定義した出力対象定義データに基づき、上記試験入力データ及び上記期待値データを生成するステップとを備えたことを特徴とするソフトウェア試験方法。 - 試験対象モジュールの試験の手順や引数値を含む試験仕様を定義した試験入力データ及び上記試験対象モジュールの実行結果の期待値を表す期待値データを使用して上記試験対象モジュールを評価する機能を備え、
コンピュータを
上記試験対象モジュールと同等の機能を備えた同機能保持モジュールの処理実行時に、実行ソフトウェアの関数情報が格納されたメモリを解析して、上記同機能保持モジュールの関数情報に関するアドレス情報を取得するメモリ解析部と、
該メモリ解析部により取得されたアドレス情報に基づき上記同機能保持モジュールの関数情報を取得する関数情報収集部と、
該関数情報収集部により取得された関数情報から、出力対象を定義した出力対象定義データに基づき、上記試験入力データ及び上記期待値データを生成するデータ生成部と
して機能させるためのソフトウェア試験用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059779A JP2007241432A (ja) | 2006-03-06 | 2006-03-06 | ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059779A JP2007241432A (ja) | 2006-03-06 | 2006-03-06 | ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007241432A true JP2007241432A (ja) | 2007-09-20 |
Family
ID=38586948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006059779A Pending JP2007241432A (ja) | 2006-03-06 | 2006-03-06 | ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007241432A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011215760A (ja) * | 2010-03-31 | 2011-10-27 | Hitachi Ltd | 計算機システム、及び、モジュール実行方法 |
KR101400396B1 (ko) * | 2012-09-05 | 2014-05-27 | 재단법인대구경북과학기술원 | 메모리 주소를 이용한 임베디드 소프트웨어의 실시간 디버깅 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212108A (ja) * | 1995-02-08 | 1996-08-20 | Kokusai Electric Co Ltd | ソフトウェアのテスト方法及び装置 |
JPH10320234A (ja) * | 1997-05-21 | 1998-12-04 | Hitachi Ltd | ソフトウェアの自動テスト方法 |
JPH11259288A (ja) * | 1998-03-10 | 1999-09-24 | Nec Corp | デグレードチェック装置 |
JP2002157144A (ja) * | 2000-11-17 | 2002-05-31 | Mitsubishi Electric Corp | ソフトウェア自動試験方式 |
JP2004118403A (ja) * | 2002-09-25 | 2004-04-15 | Fujitsu Ltd | ソフトウェア機能テストデータ生成プログラムおよびソフトウェア機能テストデータ生成方法 |
JP2006031248A (ja) * | 2004-07-14 | 2006-02-02 | Canon Inc | 関数呼び出しをフックしてログを生成するソフトウェア評価システム |
-
2006
- 2006-03-06 JP JP2006059779A patent/JP2007241432A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212108A (ja) * | 1995-02-08 | 1996-08-20 | Kokusai Electric Co Ltd | ソフトウェアのテスト方法及び装置 |
JPH10320234A (ja) * | 1997-05-21 | 1998-12-04 | Hitachi Ltd | ソフトウェアの自動テスト方法 |
JPH11259288A (ja) * | 1998-03-10 | 1999-09-24 | Nec Corp | デグレードチェック装置 |
JP2002157144A (ja) * | 2000-11-17 | 2002-05-31 | Mitsubishi Electric Corp | ソフトウェア自動試験方式 |
JP2004118403A (ja) * | 2002-09-25 | 2004-04-15 | Fujitsu Ltd | ソフトウェア機能テストデータ生成プログラムおよびソフトウェア機能テストデータ生成方法 |
JP2006031248A (ja) * | 2004-07-14 | 2006-02-02 | Canon Inc | 関数呼び出しをフックしてログを生成するソフトウェア評価システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011215760A (ja) * | 2010-03-31 | 2011-10-27 | Hitachi Ltd | 計算機システム、及び、モジュール実行方法 |
KR101400396B1 (ko) * | 2012-09-05 | 2014-05-27 | 재단법인대구경북과학기술원 | 메모리 주소를 이용한 임베디드 소프트웨어의 실시간 디버깅 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389849B2 (en) | Test case pattern matching | |
US9170918B2 (en) | Model verification system, model verification method, and recording medium | |
US20020091968A1 (en) | Object-oriented data driven software GUI automated test harness | |
US20080148235A1 (en) | Runtime inspection of user interfaces | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
US20090100299A1 (en) | Methods and Apparatus for Patternizing Device Responses | |
JP2003044275A (ja) | 変更危険度測定システム、変更危険度測定方法及び変更危険度測定プログラム | |
US10846059B2 (en) | Automated generation of software bindings | |
JP2000232516A (ja) | 妥当性検査規則を作成するための方法、生成モジュール、サーバ、制御モジュール、および記憶手段 | |
CN103049504A (zh) | 基于源代码查询的半自动插桩方法 | |
JP2007241432A (ja) | ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム | |
CN110286882B (zh) | 一种基于模型检测的前台系统设计与验证方法 | |
JP5067317B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
CN111813648A (zh) | 一种应用于App的自动化测试方法、装置、存储介质及电子设备 | |
CN115454702A (zh) | 日志故障分析方法、装置、存储介质及电子设备 | |
CN114398278A (zh) | 程序依赖图引导修复模板的空指针引用自动修复方法 | |
CN111078548B (zh) | 测试用例解析方法、装置、存储介质及验证平台 | |
JPH11224211A (ja) | ソフトウェア検査支援装置 | |
JP2011215998A (ja) | プログラム検証装置 | |
JP4387324B2 (ja) | プロパティ変換装置 | |
CN110134435A (zh) | 一种代码修复案例获取方法、装置、设备及存储介质 | |
CN109408395A (zh) | 基于txt文件的解析测试系统 | |
CN116880826B (zh) | 一种可视化代码生成方法 | |
JP2008204187A (ja) | 情報処理装置及び情報処理方法 | |
JPH06290039A (ja) | プログラム変更方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070926 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080324 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080627 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110308 |