JP2007193586A - プログラムテスト支援システム、方法及びプログラム - Google Patents

プログラムテスト支援システム、方法及びプログラム Download PDF

Info

Publication number
JP2007193586A
JP2007193586A JP2006011271A JP2006011271A JP2007193586A JP 2007193586 A JP2007193586 A JP 2007193586A JP 2006011271 A JP2006011271 A JP 2006011271A JP 2006011271 A JP2006011271 A JP 2006011271A JP 2007193586 A JP2007193586 A JP 2007193586A
Authority
JP
Japan
Prior art keywords
test
program
execution
range
variable
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
Application number
JP2006011271A
Other languages
English (en)
Other versions
JP4872357B2 (ja
Inventor
Yoshiharu Nishimura
祥治 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006011271A priority Critical patent/JP4872357B2/ja
Publication of JP2007193586A publication Critical patent/JP2007193586A/ja
Application granted granted Critical
Publication of JP4872357B2 publication Critical patent/JP4872357B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】被テストプログラムのうち所望の部分だけをテストすることができ、被テストプログラムが編集された場合においてもその編集に左右されずにテストすることができ、テストを行うために必要となる変数の設定や検証のための手間をかけずにテストする。
【解決手段】テストプログラム151に従って、被テストプログラム161のテストを実行する範囲を指定するとともに、被テストプログラム161の指定される範囲に付与する変数の値を設定するテストプログラム実行部110と、被テストプログラム161の指定された範囲を実行し、指定される範囲にて参照される変数の値、並びに指定された範囲を実行した結果である変数の値を管理する被テストプログラム実行部120とを有し、テストプログラム実行部110は、指定された範囲を実行した結果である変数の値をテストプログラム151にて予め設定された値と比較することにより検証する。
【選択図】図1

Description

本発明は、プログラムテストを支援するプログラムテスト支援システム、方法及びプログラムに関し、特に、プログラムのうち指定した部分だけのプログラムテストを支援するプログラムテスト支援システム、方法及びプログラムに関する。
従来より、プログラムテストを支援するための様々な方法が考えられている。
図16は、プログラムテストを支援する従来のデバック方法の一例を説明するための機能構成図である。
本従来例は図16に示すように、被テストプログラム実行部1100と、変数値入力部1120とから構成され、被テストプログラム実行部1100は、変数参照管理部1101を備えている。このように構成されたシステムにおいては、被テストプログラム実行部1100によって被テストプログラム1110を実行させる。被テストプログラム実行部1100は、変数への参照があった場合に変数参照管理部1101を参照し、変数参照管理部1101にてその変数が設定されていなければ、ユーザに変数入力部1120を介してその値の入力を促し、その値をその変数の値として実行を継続する(例えば、特許文献1参照。)。
図17は、従来のプログラムテスト支援方法の他の例を説明するための図である。
本従来例は図17に示すように、テスト範囲指定部1200と、テストプログラム生成部1210とから構成されている。このように構成されたシステムにおいては、被テストプログラム1220のうち所望の部分をテスト範囲指定部1200により指定すると、テスト範囲指定部1200において、その指定された範囲の命令列及びその命令列により参照されている変数定義を抽出し、命令列、変数定義抽出ファイル1230を生成する。そして、テストプログラム生成部1210において、命令列、変数定義抽出ファイル1230とテストデータ1240を入力として、テストプログラム1250を生成する(例えば、特許文献2参照。)。
図18は、プログラムテストを支援する従来のプログラムデバックシステムの他の例を説明するための図である。
本従来例は図18に示すように、ブロック区切り設定部1801と、ブロック実行部1802とから構成されている。このように構成されたシステムにおいては、ブロック区切り設定部1801にて被テストプログラム1810のブロック区切り1811,1812を設定し、ブロック実行部1802によって、被テストプログラム1810の実行開始行1815から次のブロック区切り1812までを実行する(例えば、特許文献3参照。)。
特開2001−229044号公報 特開2000−339192号公報(第9頁、図1) 特開2002−278791号公報
しかしながら、上述した従来の技術においては、以下のような問題点がある。
(1)被テストプログラムを任意の点から開始する機能がないため、テストしたい場所からテストを開始することができない。特に、実装が複雑になりそうな部分を集中的に網羅する際、被テストプログラムに適切な入力を与え、その部分まで遷移させるようにすることは、手間がかかり、効率が悪い。
(2)テストプログラムを作成に必要な情報を被テストプログラムから取得する場合、被テストプログラムを修正する度にテストプログラムを作り直すことになり、テストプログラムの作成を効率的に行うことができない。さらに、被テストプログラムから取得した情報を元にテストプログラムを生成し、そのテストプログラムに編集を加えてテストプログラムを完成させる場合、再生成する度にテストプログラムを編集する必要があり、開発の手間がかかる上に、テストプログラム自身にバグを混入させてしまう可能性がある。
(3)プログラムテストを行うために必要となる変数の設定や検証を、テストを行う度に行わなければならず、そのための手間がかかってしまう。
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、被テストプログラムのうち所望の部分だけをテストすることができ、かつ、被テストプログラムが編集された場合においてもその編集に左右されずにテストすることができ、かつ、テストを行うために必要となる変数の設定や検証のための手間をかけずにテストすることができるプログラムテスト支援システム、方法及びプログラムを提供することを目的とする。
上記目的を達成するために本発明は、
被テストプログラムのテストを行うためのテストプログラムに従って、前記被テストプログラムのテストを実行する範囲を指定するとともに、前記被テストプログラムのうち前記指定される範囲に付与する変数の値を設定するテストプログラム実行手段と、
前記被テストプログラムについて前記テストプログラム実行手段にて指定された範囲を実行し、該指定される範囲にて参照される変数の値、並びに前記指定された範囲を実行した結果である変数の値を管理する被テストプログラム実行手段とを有し、
前記テストプログラム実行手段は、前記被テストプログラム実行手段にて管理される、前記指定された範囲を実行した結果である変数の値を取得し、該変数の値を前記テストプログラムにて予め設定された値と比較することにより検証する。
上記のように構成された本発明においては、テストプログラム実行手段において、テストプログラムに従って、被テストプログラムのテストを実行する範囲が指定されるとともに、被テストプログラムのうち指定される範囲に付与する変数の値が設定される。被テストプログラム実行手段においては、テストプログラム実行手段にて指定された範囲に基づいて、被テストプログラムのテストの実行を開始する場所が制御され、テストプログラム実行手段の制御によって被テストプログラムが実行される。被テストプログラムの実行状態においては、被テストプログラム実行手段において、被テストプログラムについて指定される範囲にて参照される変数の値、並びに指定された範囲を実行した結果である変数の値が管理される。そして、指定された範囲の終了点で被テストプログラムの実行が停止する。その後、テストプログラム実行手段において、被テストプログラムについて指定された範囲を実行した結果である変数の値が被テストプログラム実行手段から取得され、その変数の値がテストプログラムにて予め設定された値と比較することにより検証される。
本発明は、以上説明したように構成されているので、以下のような効果を奏する。
(1)テストプログラムにおいて、被テストプログラム中でテストをしたい範囲の選択、そのテスト範囲に対する入力となる変数値の設定及び出力となる変数値の検証が記述でき、かつ、被テストプログラム実行手段が、テストプログラムで指定された被テストプログラムのテスト範囲のみを実行でき、かつ、そのテスト範囲における変数の値を取得することができるため、被テストプログラムのうち所望の部分だけをテストすることができる。
(2)被テストプログラムの修正に応じてテストプログラムを作り直さなくて済むだけでなく、テストプログラムのコードを固定させることができることでテストプログラムへのバグ混入させる機会を減らすことができ、テストプログラムの作成、実施を効率的に行うことができる。
(3)被テストプログラムを動作させる範囲、変数値の設定、検証をテストプログラムに集約でき、かつ、それをテストプログラム実行手段により実行できるため、被テストプログラムの実行を常時監視する必要がなく、そのテスト実行結果を見るだけでテストの成功可否が可能となる。
以下に、本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
図1は、本発明のプログラムテスト支援システムの第1の実施の形態を示す図である。
本形態は図1に示すように、プログラム制御により動作する、中央処理装置やプロセッサ、データ処理装置等となるコンピュータ100と、テストプログラム151が格納されたテストプログラム格納部150と、被テストプログラム161が格納された被テストプログラム格納部160とから構成されている。
コンピュータ100は、テストプログラム格納部150からテストプログラム151を取り出し、テストプログラム151に従って被テストプログラム161のテストを実行するテストプログラム実行部110と、被テストプログラム格納手段160から被テストプログラム161を取り出し、テストプログラム実行部110の制御によって被テストプログラム161を実行する被テストプログラム実行部120とを含む。
テストプログラム151は、被テストプログラム161中のどの部分をテストの対象とするか、そして、そのテスト対象部分にどんな変数値を付与するのか、そして、そのテスト対象部分を実行した結果、どんな変数値になっていることを期待するかを含んでいる。
テストプログラム実行部110は、テストプログラム151に従って、被テストプログラム161のテストを実行する範囲を指定する実行範囲指定部111と、テストプログラム151に従って、被テストプログラム161のうち実行範囲指定部111にて指定される範囲に付与する変数の値を設定する変数値設定部112と、被テストプログラム161について実行範囲指定部111にて指定された範囲を実行した結果である変数の値を、テストプログラム151にて予め設定された値と比較することにより検証する変数値検証部113とを有している。
被テストプログラム実行部120は、実行範囲指定部111により指定された範囲に基づいて、被テストプログラム161のテストの実行を開始する場所を制御する実行位置制御部121と、実行範囲指定部111により指定された範囲の終了点で被テストプログラム161の実行を停止させる実行停止部122と、被テストプログラム161について実行範囲指定部111にて指定される範囲にて参照される変数の値、並びに実行範囲指定部111にて指定された範囲を実行した結果である変数の値を管理する変数管理部123とを有しており、実行位置制御手段121により被テストプログラム161中の指定された場所から被テストプログラム161の実行を始め、実行停止手段122により被テストプログラム161を指定された場所で被テストプログラム161の実行を終了する。
以下に、上記のように構成されたプログラムテスト支援システムにおける処理について説明する。
図2は、図1に示したプログラムテスト支援システムにおける処理を説明するためのフローチャートである。
まず、テストプログラム実行部110の実行範囲指定部111において、テストプログラム格納部150から取り出したテストプログラム151の内容に従って、被テストプログラム格納部160から取り出した被テストプログラム161の実行範囲を設定し、その実行開始位置を被テストプログラム実行部120の実行位置制御部121に対して指定するとともに、実行終了位置を被テストプログラム実行部120の実行停止部122に対して指定する(ステップA1)。なお、上述したように、テストプログラム151には、被テストプログラム161中のどの部分をテストの対象とするかが含まれているため、実行範囲指定部111においては、テストプログラム151の内容に従って被テストプログラム161の実行範囲を設定することができる。
次に、テストプログラム実行部110の変数値設定部112において、テストプログラム格納部150から取り出したテストプログラム151の内容に従って、被テストプログラム格納部160から取り出した被テストプログラム161のうち、実行範囲指定部111にて指定された範囲に付与する変数値を設定し、被テストプログラム実行部120の変数管理部123に通知する(ステップA2)。なお、上述したように、テストプログラム151には、テスト対象部分にどんな変数値を付与するのかが含まれているため、変数値設定部112においては、テストプログラム151の内容に従って被テストプログラム161に付与する変数値を設定することができる。
次に、被テストプログラム実行部120において、実行範囲指定部111から指定され、実行位置制御部121にて制御される実行開始位置から被テストプログラム161をステップ実行する(ステップA3)。
そして、被テストプログラム161の実行中において、変数値設定部112にて設定され、変数管理手段123で保持されていない変数の値が取得されれば(ステップA4)、テストは失敗とみなし終了する(ステップA5)。
一方、被テストプログラム161が実行されていき、実行範囲指定部111から指定された実行終了位置に達した場合は(ステップA6)、実行停止部122によって被テストプログラム161の実行が停止し、テストプログラム実行部110の変数値検証部113において、変数管理部123から検証対象の変数値を取得し、その変数値が期待通りか検証して終了する(ステップA7)。なお、上述したように、テストプログラム151には、テスト対象部分を実行した結果、どんな変数値になっていることを期待するかが含まれているため、変数値検証部113においては、変数管理部123から取得した変数の値を、テストプログラム151にて予め設定された値と比較することにより検証することになる。
上述したように本形態においては、被テストプログラムの実行開始位置、終了位置及び参照可能な変数をテストプログラムから制御できるように構成されているため、被テストプログラム中の所望の部分だけをテストすることができる。さらに、被テストプログラムからテストプログラムが生成される構成ではないため、被テストプログラムを編集してもテストプログラムを再生成する必要がない。この結果、テストプログラムを固定化することができ、テスト作成、実施にかかる時間を短くすることができる。
(第2の実施の形態)
図3は、本発明のプログラムテスト支援システムの第2の実施の形態を示す図である。
本形態は図3に示すように、プログラム制御により動作する、中央処理装置やプロセッサ、データ処理装置等となるコンピュータ200と、テストプログラム251が格納されたテストプログラム格納部250と、被テストプログラム261が格納された被テストプログラム格納部260とから構成されている。
コンピュータ200は、テストプログラム格納部250からテストプログラム251を取り出し、テストプログラム251に従って被テストプログラム261のテストを実行するテストプログラム実行部210と、被テストプログラム格納手段260から被テストプログラム261を取り出し、テストプログラム実行部210の制御によって被テストプログラム261を実行する被テストプログラム実行部220とを含む。
テストプログラム251は、被テストプログラム261中のどの部分をテストの対象とするか、そして、そのテスト対象部分にどんな変数値を付与するのか、そして、そのテスト対象部分を実行した結果、どんな変数値になっていることを期待するかを含んでいる。
テストプログラム実行部210は、テストプログラム251に従って、被テストプログラム261のテスト実行範囲を解析し、被テストプログラム261の実行フロー上、条件分岐やループ、例外送出等、被テストプログラム261に誤りがあったとき、遷移しうる到達すべきでない実行位置のリストを抽出し、被テストプログラム261の誤りによってテスト終了点へ遷移しないパスを導出する実行範囲解析部214と、テストプログラム251に従って、被テストプログラム261のテストの実行開始位置及び成功終了位置を指定するとともに、実行範囲解析部214にて導出されたパスに基づいて、被テストプログラム261のテストの失敗終了位置を指定する実行範囲指定部211と、テストプログラム251に従って、被テストプログラム261のうち実行範囲指定部211にて指定される範囲に付与する変数の値を設定する変数値設定部212と、被テストプログラム261について実行範囲指定部211にて指定された範囲を実行した結果である変数の値を、テストプログラム251にて予め設定された値と比較することにより検証する変数値検証部213とを有している。
被テストプログラム実行部220は、実行範囲指定部211により指定された範囲に基づいて、被テストプログラム261のテストの実行を開始する場所を制御する実行位置制御部221と、実行範囲指定部211により指定された範囲の終了点で被テストプログラム261の実行を停止させる実行停止部222と、被テストプログラム261について実行範囲指定部211にて指定される範囲にて参照される変数の値、並びに実行範囲指定部211にて指定された範囲を実行した結果である変数の値を管理する変数管理部223とを有しており、実行位置制御手段221により被テストプログラム261中の指定された場所から被テストプログラム261の実行を始め、実行停止手段222により被テストプログラム261を指定された場所で被テストプログラム261の実行を終了する。この際、実行範囲指定部211にて指定された失敗終了位置にて被テストプログラム261の実行を終了する場合は、テストが失敗したことをテストプログラム実行部210に報告して終了する。
以下に、上記のように構成されたプログラムテスト支援システムにおける処理について説明する。
図4は、図3に示したプログラムテスト支援システムにおける処理を説明するためのフローチャートである。
まず、テストプログラム実行部210の実行範囲解析部214において、テストプログラム格納部250から取り出したテストプログラム251の内容に従って、被テストプログラム格納部260から取り出した被テストプログラム261の実行範囲を解析し、被テストプログラム261の誤り等によりテスト範囲から外れた実行位置に遷移しうる実行位置を抽出する(ステップB1)。
次に、テストプログラム実行部210の実行範囲指定部211において、テストプログラム格納部250から取り出したテストプログラム251の内容に従って、被テストプログラム261の実行開始位置を被テストプログラム実行部220の実行位置制御部221に対して指定し、また、被テストプログラム実行部220の実行停止部222に対して、被テストプログラム261のテストの成功終了位置を指定するとともに、実行範囲解析部214にて導出されたパスに基づいて、被テストプログラム261のテストの失敗終了位置を指定する(ステップB2)。なお、上述したように、テストプログラム251には、被テストプログラム261中のどの部分をテストの対象とするかが含まれているため、実行範囲解析部214においては、テストプログラム251の内容に従って被テストプログラム261の実行範囲を解析することができる。
次に、テストプログラム実行部210の変数値設定部212において、テストプログラム格納部250から取り出したテストプログラム251の内容に従って、被テストプログラム格納部260から取り出した被テストプログラム261のうち、実行範囲指定部211にて指定された範囲に付与する変数値を設定し、被テストプログラム実行部220の変数管理部223に通知する(ステップB3)。なお、上述したように、テストプログラム251には、テスト対象部分にどんな変数値を付与するのかが含まれているため、変数値設定部212においては、テストプログラム251の内容に従って被テストプログラム261に付与する変数値を設定することができる。
次に、被テストプログラム実行部220において、実行範囲指定部211から指定され、実行位置制御部221にて制御される実行開始位置から被テストプログラム261をステップ実行する(ステップB4)。
そして、被テストプログラム261の実行中において、変数値設定部212にて設定され、変数管理手段223で保持されていない変数の値が取得されたり(ステップB5)、実行範囲指定部211から実行停止部222に指定された失敗終了位置に到達したりした場合は(ステップB6)、テストは失敗とみなし終了する(ステップB7)。
一方、被テストプログラム261が実行されていき、実行範囲指定部211から指定された成功終了位置に達した場合は(ステップB8)、実行停止部222によって被テストプログラム261の実行が停止し、テストプログラム実行部210の変数値検証部213において、変数管理部223から検証対象の変数値を取得し、その変数値が期待通りか検証して終了する(ステップB9)。なお、上述したように、テストプログラム251には、テスト対象部分を実行した結果、どんな変数値になっていることを期待するかが含まれているため、変数値検証部213においては、変数管理部223から取得した変数の値を、テストプログラム251にて予め設定された値と比較することにより検証することになる。
上述したように本形態においては、第1の実施の形態による効果に加えて、テストとしては到達すべきではないが、被テストプログラムの誤りなどにより到達しうる実行位置に失敗として終了できるように構成されているため、被テストプログラムに誤りがあった場合、直ちに実行を終了させることができる。これにより、テスト作成、実施の効率をさらに向上させることが可能である。
以下に、上述した実施の形態の動作について、具体的な実施例を用いて説明する。
(実施例1)
図5は、図1に示したプログラムテスト支援システムの一実施例を示す図である。
本発明のプログラムテスト支援システムは、例えば図5に示すように、コンピュータ1000のメモリ1002上に読み込まれ、CPU1002を操作して動作するプログラム1010として実施される。また、本実施例においては、テストプログラム及び被テストプログラムは、記憶装置1003やメモリ1002上に格納されている。被テストプログラムとしては、例えば、WS−BPELなどのビジネスプロセス実行言語で書かれたものや、JavaやC、C++等のプログラミング言語で書かれたものに適用可能である。そして、マウスやキーボード、タッチパネルなどの入力装置1004を通じて、テストの作成および実施の開始を指令する。
図6は、テストプログラムの具体例を示す図であり、図7は、被テストプログラムの具体例を示す図である。
以下に、図6に示したようなテストプログラムによって、図7に示したような被テストプログラムを対象に実施例を説明する。
テストプログラムの内容としては、テスト範囲の識別子として“test1”で指定されるもので、そのテスト範囲へと入力となるのは、変数yで、その値は“<a><b>1</b><a>”であり、実行した結果、変数cには、1が設定されている。
図8及び図9は、図7に示した被テストプログラムに図6に示したテストプログラムを埋め込んだ状態を示す図である。
被テストプログラムでは、そのテストプログラムによって検証したい範囲を図8の4行目及び11行目のように注釈として場所をあらわすラベルを埋め込んだり、図9のようにプログラムの実行には影響を与えない要素を埋め込んだりして実現する。つまり、被テストプログラム中の場所を一意に特定できる手段でかつ、プログラムの実行には影響を与えない方法であれば、どのようなものでもよい。
テストプログラム実行部によりテストプログラムが読み込まれ、図6の1行目でテスト範囲を指示する命令があれば、実行位置制御部に“test1”として識別される開始位置から実行することを設定する。実行開始位置を制御する方法としては、被テストプログラムの先頭から、当該開始場所までの命令列を実行せずに読み飛ばす方法、もしくは、当該開始場所へのジャンプ命令を被テストプログラムの先頭に暗黙的に追加もしくは実行する方法として実現する。また、実行停止部の実現方法としては、被テストプログラムに実行停止位置となる場所にブレークポイントを設定する方法や、被テストプログラム実行部により、暗黙的に実行停止位置となる場所に実行ストップ命令を挿入する方法として実現される。
そして、テストプログラム実行部が図6の2行目で変数yへの値を設定する指示を読み込むと、被テストプログラム実行部に変数yの値を通知する。
図10は、変数管理の具体例を示す図である。
変数管理部としては、例えば、図10に示すように、変数名とその値のペアとして、メモリや記憶装置に格納することで実現する。また、変数管理部は、ブロッキングキューなどの変数値の設定と変数値の参照を待ち合わせる機構を用いて実現してもよい。次に、図6の3行目にあるテストプログラムが変数値を検証する指示する命令があると、被テストプログラムの実行が完了後に、その検証を実施する。
以下に、図8に示したような形式で場所を特定するように書かれた被テストプログラムの実行処理について説明する。
テストプログラムからの指定により、被テストプログラムは、5行目から実行が開始される。すると7行目で変数yが参照される。ここで、テストプログラムにより変数yの値が“<a><b>1</b><a>”であると設定されているため、この値を用いて実行され、その結果、8行目で変数cに“1”が設定される。
図11は、誤りが含まれた被テストプログラムの一例を示す図である。
もし、被テストプログラムが図11の7行目のように、変数yを参照すべきところ、変数xを参照していた場合、テストプログラムにより変数xの設定はされていないため、このテストは、失敗として終了する。
最後に、図8に示した11行目で、テスト範囲の終端であることがわかり、被テストプログラムの実行はここで打ち切られ、テストプログラムの3行目の変数cの検証が実施され終了する。
(実施例2)
本実施例においては、第1の実施例との差分として、第2の実施の形態にて示した実行範囲解析部の実現例について説明する。
図12は、図7に示した被テストプログラムに図6に示したテストプログラムを埋め込んだ状態を示す図である。また、図13及び図14は、実行範囲解析の具体例を示す図である。
図12に示した被テストプログラムにおける実行範囲解析の実現方法としては、テストプログラムで指定されたテスト範囲に関する情報と、被テストプログラムの構造から、図13に示したような解析木を構築する。
図13に示した解析木中の矢印をたどることで、被テストプログラムの誤りにより、switchからotherwiseへと遷移する可能性があることを検出する。これを元に図14に示すように、終了点として指定されたものには成功終了点、成功終了点に至らないパスについては、その入り口に失敗終了点が必要であることを導出する。そして、図14に示した解析木に従って、被テストプログラムの実行停止位置を設定する。
図15は、誤りが含まれた被テストプログラムの一例を示す図である。
例えば、被テストプログラムが、図15の13行目のように、c==1とすべきところ、c==0となっていた場合、17行目のotherwiseを実行しようとする時点で実行が停止され、失敗と報告される。
本発明のプログラムテスト支援システムの第1の実施の形態を示す図である。 図1に示したプログラムテスト支援システムにおける処理を説明するためのフローチャートである。 本発明のプログラムテスト支援システムの第2の実施の形態を示す図である。 図3に示したプログラムテスト支援システムにおける処理を説明するためのフローチャートである。 図1に示したプログラムテスト支援システムの一実施例を示す図である。 テストプログラムの具体例を示す図である。 被テストプログラムの具体例を示す図である。 図7に示した被テストプログラムに図6に示したテストプログラムを埋め込んだ状態を示す図である。 図7に示した被テストプログラムに図6に示したテストプログラムを埋め込んだ状態を示す図である。 変数管理の具体例を示す図である。 誤りが含まれた被テストプログラムの一例を示す図である。 、図7に示した被テストプログラムに図6に示したテストプログラムを埋め込んだ状態を示す図である。 実行範囲解析の具体例を示す図である。 実行範囲解析の具体例を示す図である。 誤りが含まれた被テストプログラムの一例を示す図である。 プログラムテストを支援する従来のデバック方法の一例を説明するための機能構成図である。 従来のプログラムテスト支援方法の他の例を説明するための図である。 プログラムテストを支援する従来のプログラムデバックシステムの他の例を説明するための図である。
符号の説明
100,200 コンピュータ
110,210 テストプログラム実行部
111,211 実行範囲指定部
112,212 変数値設定部
113,213 変数値検証部
120,220 被テストプログラム実行部
121,221 実行位置制御部
122,222 実行停止部
123,223 変数管理部
150,250 テストプログラム格納部
151,251 テストプログラム
160,260 被テストプログラム格納部
161,261 被テストプログラム
214 実行解析部
1000 コンピュータシステム
1001 CPU
1002 メモリ
1003 記憶装置
1004 入力装置
1005 出力装置
1010 部分テスト作成実施プログラム

Claims (7)

  1. 被テストプログラムのテストを行うためのテストプログラムに従って、前記被テストプログラムのテストを実行する範囲を指定するとともに、前記被テストプログラムのうち前記指定される範囲に付与する変数の値を設定するテストプログラム実行手段と、
    前記被テストプログラムについて前記テストプログラム実行手段にて指定された範囲を実行し、該指定される範囲にて参照される変数の値、並びに前記指定された範囲を実行した結果である変数の値を管理する被テストプログラム実行手段とを有し、
    前記テストプログラム実行手段は、前記被テストプログラム実行手段にて管理される、前記指定された範囲を実行した結果である変数の値を取得し、該変数の値を前記テストプログラムにて予め設定された値と比較することにより検証するプログラムテスト支援システム。
  2. 前記テストプログラム実行手段は、
    前記テストプログラムに従って、前記被テストプログラムのテストを実行する範囲を指定する実行範囲指定手段と、
    前記テストプログラムに従って、前記被テストプログラムのうち前記実行範囲指定手段にて指定される範囲に付与する変数の値を設定する変数値設定手段と、
    前記被テストプログラム実行手段にて管理される、前記実行範囲指定手段にて指定された範囲を実行した結果である変数の値を取得し、該変数の値を前記テストプログラムにて予め設定された値と比較することにより検証する変数値検証手段とを具備し、
    前記被テストプログラム実行手段は、
    前記実行範囲指定手段により指定された範囲に基づいて、前記被テストプログラムのテストの実行を開始する場所を制御する実行位置制御手段と、
    前記実行範囲指定手段により指定された範囲の終了点で前記被テストプログラムの実行を停止させる実行停止手段と、
    前記被テストプログラムについて前記実行範囲指定手段にて指定される範囲にて参照される変数の値、並びに前記実行範囲指定手段にて指定された範囲を実行した結果である変数の値を管理する変数管理手段とを具備することを特徴とする請求項1に記載のプログラムテスト支援システム。
  3. 前記テストプログラム実行手段は、前記テストプログラムに従って、前記被テストプログラムのテスト実行範囲を解析し、前記被テストプログラムの誤りによってテスト終了点へ遷移しないパスを導出する実行範囲解析手段を有し、
    前記実行範囲指定手段は、前記テストプログラムに従って、前記被テストプログラムのテストの成功終了位置を指定するとともに、前記実行範囲解析手段にて導出されたパスに基づいて、前記被テストプログラムのテストの失敗終了位置を指定することを特徴とする請求項2に記載のプログラムテスト支援システム。
  4. テストプログラムに従って被テストプログラムのテストを実行するテストプログラム実行手段と、前記テストプログラム実行手段の制御によって前記被テストプログラムを実行する被テストプログラム実行手段とを有してなるプログラムテスト支援システムを用いて前記被テストプログラムのテストを実行する方法であって、
    前記テストプログラム実行手段が、前記テストプログラムに従って、前記被テストプログラムのテストを実行する範囲を指定する処理と、
    前記テストプログラム実行手段が、前記テストプログラムに従って、前記被テストプログラムのうち前記指定される範囲に付与する変数の値を設定する処理と、
    前記被テストプログラム実行手段が、前記指定された範囲に基づいて、前記被テストプログラムのテストの実行を開始する場所を制御する処理と、
    前記被テストプログラム実行手段が、前記テストプログラム実行手段の制御によって前記被テストプログラムのうち前記指定された範囲を実行する処理と、
    前記被テストプログラム実行手段が、前記被テストプログラムについて前記指定される範囲にて参照される変数の値、並びに前記被テストプログラムについて前記指定された範囲を実行した結果である変数の値を管理する処理と、
    前記被テストプログラム実行手段が、前記指定された範囲の終了点で被テストプログラムの実行を停止させる処理と、
    前記テストプログラム実行手段が、前記被テストプログラム実行手段にて管理される、前記被テストプログラムについて前記指定された範囲を実行した結果である変数の値を取得し、該変数の値を前記テストプログラムにて予め設定された値と比較することにより検証する処理とを有する方法。
  5. 前記テストプログラム実行手段が、前記テストプログラムに従って、前記被テストプログラムのテスト実行範囲を解析し、前記被テストプログラムの誤りによってテスト終了点へ遷移しないパスを導出する処理と、
    前記テストプログラム実行手段が、前記テストプログラムに従って、前記被テストプログラムのテストの成功終了位置を指定するとともに、前記導出されたパスに基づいて、前記被テストプログラムのテストの失敗終了位置を指定する処理とを有することを特徴とする請求項4に記載の方法。
  6. テストプログラムに従って被テストプログラムのテストを実行するコンピュータに、
    前記テストプログラムに従って、前記被テストプログラムのテストを実行する範囲を指定する手順と、
    前記テストプログラムに従って、前記被テストプログラムのうち前記指定される範囲に付与する変数の値を設定する手順と、
    前記テストプログラムの制御によって前記被テストプログラムのうち前記指定された範囲を実行する手順と、
    前記指定された範囲に基づいて、前記被テストプログラムのテストの実行を開始する場所を制御する手順と、
    前記被テストプログラムについて前記指定される範囲にて参照される変数の値、前記被テストプログラムについて前記指定された範囲を実行した結果である変数の値を管理する手順と、
    前記指定された範囲の終了点で被テストプログラムの実行を停止させる手順と、
    前記被テストプログラムについて前記指定された範囲を実行した結果である変数の値を前記テストプログラムにて予め設定された値と比較することにより検証する手順とを実行させるプログラム。
  7. コンピュータに、
    前記テストプログラムに従って、前記被テストプログラムのテスト実行範囲を解析し、前記被テストプログラムの誤りによってテスト終了点へ遷移しないパスを導出する手順と、
    前記テストプログラムに従って、前記被テストプログラムのテストの成功終了位置を指定するとともに、前記導出されたパスに基づいて、前記被テストプログラムのテストの失敗終了位置を指定する手順とを実行させることを特徴とする請求項6に記載のプログラム。
JP2006011271A 2006-01-19 2006-01-19 プログラムテスト支援システム、方法及びプログラム Expired - Fee Related JP4872357B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006011271A JP4872357B2 (ja) 2006-01-19 2006-01-19 プログラムテスト支援システム、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006011271A JP4872357B2 (ja) 2006-01-19 2006-01-19 プログラムテスト支援システム、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2007193586A true JP2007193586A (ja) 2007-08-02
JP4872357B2 JP4872357B2 (ja) 2012-02-08

Family

ID=38449237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006011271A Expired - Fee Related JP4872357B2 (ja) 2006-01-19 2006-01-19 プログラムテスト支援システム、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4872357B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204954A (ja) * 2009-03-03 2010-09-16 Nec Corp プログラム検証装置、プログラム検証方法、及び検証機能実行用プログラム
JP2012103869A (ja) * 2010-11-09 2012-05-31 Internatl Business Mach Corp <Ibm> ソフトウエア開発支援方法とソフトウエア開発支援装置とソフトウエア開発支援プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520060A (ja) * 1991-07-16 1993-01-29 Matsushita Electric Ind Co Ltd プログラム部分実行方法およびプログラム部分実行装置
JPH05216721A (ja) * 1992-02-06 1993-08-27 Nec Corp 電子計算機
JPH05233349A (ja) * 1992-02-21 1993-09-10 Fuji Electric Co Ltd プログラムモジュールの自動試験ツール
JPH0695914A (ja) * 1992-09-11 1994-04-08 Toshiba Corp プログラム監視装置
JPH07311694A (ja) * 1994-05-16 1995-11-28 Hitachi Ltd プログラム実行パスの解析方法
JP2001229044A (ja) * 2000-02-16 2001-08-24 Hitachi Ltd デバッグ方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520060A (ja) * 1991-07-16 1993-01-29 Matsushita Electric Ind Co Ltd プログラム部分実行方法およびプログラム部分実行装置
JPH05216721A (ja) * 1992-02-06 1993-08-27 Nec Corp 電子計算機
JPH05233349A (ja) * 1992-02-21 1993-09-10 Fuji Electric Co Ltd プログラムモジュールの自動試験ツール
JPH0695914A (ja) * 1992-09-11 1994-04-08 Toshiba Corp プログラム監視装置
JPH07311694A (ja) * 1994-05-16 1995-11-28 Hitachi Ltd プログラム実行パスの解析方法
JP2001229044A (ja) * 2000-02-16 2001-08-24 Hitachi Ltd デバッグ方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204954A (ja) * 2009-03-03 2010-09-16 Nec Corp プログラム検証装置、プログラム検証方法、及び検証機能実行用プログラム
JP2012103869A (ja) * 2010-11-09 2012-05-31 Internatl Business Mach Corp <Ibm> ソフトウエア開発支援方法とソフトウエア開発支援装置とソフトウエア開発支援プログラム
US8875104B2 (en) 2010-11-09 2014-10-28 International Business Machines Corporation Efficiently developing software using test cases to check the conformity of the software to the requirements
US8875105B2 (en) 2010-11-09 2014-10-28 International Business Machines Corporation Efficiently developing software using test cases to check the conformity of the software to the requirements

Also Published As

Publication number Publication date
JP4872357B2 (ja) 2012-02-08

Similar Documents

Publication Publication Date Title
JP4901075B2 (ja) コンピュータ読取可能な媒体、方法及びコンピューティングデバイス
JP4950454B2 (ja) テスト自動化のスタック階層化
US8356282B1 (en) Integrated development environment for the development of electronic signal testing strategies
JP6096414B2 (ja) バッチ構成を試験するための方法、装置、およびプログラム
JPH08272648A (ja) デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
US20150212923A1 (en) Nontransitory processor readable recording medium having fault injection program recorded therein and fault injection method
US9063819B2 (en) Extensible patch management
WO2013007068A1 (zh) 一种面向硬件设备功能的自动测试系统及方法
CN111258561A (zh) 一种软件自动化编译部署启动监控的方法
Aho et al. Automated java gui modeling for model-based testing purposes
JP2004164554A (ja) プログラム実行監視装置および方法
US20190073292A1 (en) State machine software tester
JP4872357B2 (ja) プログラムテスト支援システム、方法及びプログラム
CN111984524A (zh) 故障注入方法、故障模拟方法、故障注入装置及存储介质
JP2004326337A (ja) コード解析プログラム、コード解析自動化プログラム及び自動コード解析システム
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JP2007079651A (ja) プログラマブルコントローラのプログラミング装置
JP5481267B2 (ja) 制御プログラム作成装置および制御プログラム作成装置の駆動方法
JP7479188B2 (ja) デバッグ支援装置、デバッグ支援方法およびプログラム
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP2005174045A (ja) ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体
KR20080052261A (ko) 내장형 시스템 오류 수정을 위한 비정지 디버깅 장치 및방법
JPH10177590A (ja) 論理回路モデルのデバッグ装置およびデバッグ方法
JP2004287869A (ja) プログラム実行監視装置および方法
CN112698881B (zh) Android图片加载行为缺陷动态检测方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110426

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: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4872357

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