JP4190610B2 - ロードモジュールの試験ルート決定装置 - Google Patents
ロードモジュールの試験ルート決定装置 Download PDFInfo
- Publication number
- JP4190610B2 JP4190610B2 JP03587998A JP3587998A JP4190610B2 JP 4190610 B2 JP4190610 B2 JP 4190610B2 JP 03587998 A JP03587998 A JP 03587998A JP 3587998 A JP3587998 A JP 3587998A JP 4190610 B2 JP4190610 B2 JP 4190610B2
- Authority
- JP
- Japan
- Prior art keywords
- route
- test
- pattern
- paths
- route pattern
- 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 - Lifetime
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/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)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明はロードモジュールの試験ルート決定装置に係り、特に、ロードモジュール(プログラム)の試験を実施する際、実行済試験ルートパスを蓄積すると同時に、未試験ルートパスを効率的に実行するロードモジュールの試験ルート決定装置に関する。
【0002】
【従来の技術】
1つの大きな問題を解決するプログラムを作成するには、通常、問題解決プログラムの設計段階でいくつかの処理に分割し、例えば、入力処理関係、レコードの更新処理関係あるいは出力処理関係などのように所定の論理の集まりで分割し(モジュール化し)、分割により得られた各モジュールを一人あるいは何人かのプログラマがそれぞれ別々にプログラミングし、出来上がった各モジュールのプログラムを連係編集プログラムで結合して問題解決のプログラムとする。
このような分割共同作業によるプログラミング手法によれば、
(1) プログラム作成に要する時間を短縮できる、
(2) 各モジュール毎に分離テストを行った上で全体を結合すれば良いので、デバッキングが容易になり、しかも、正確なテストを行える、
(3) テストの都度、全プログラムを翻訳し直す必要がなく、不完全なモジュールだけを取り出して翻訳チェックするだけで良い、
などの利点がある。
【0003】
図38は上記プログラミングの説明図であり、ある問題をA〜Dの4つのモジュールに分割し、各モジュールをプログラマA〜Dが担当してプログラミングし(プログラムモジュール)、それらプログラムモジュールを結合して問題解決プログラムを作成する。
以上より、プログラムモジュールは、他のプログラム部分に影響を与えることなく修正や置換が可能なプログラム部分又は完全なプログラムである。かかるプログラムモジュールには、図39に示すように(1) 原始モジュール(ソースモジュール)、(2) 目的モジュール(オブジェクトモジュール)、(3) ロードモジュールの3種類が存在する。原始モジュールは、言語翻訳プログラム(コンパイラ)への入力単位となるもので、プログラマが書いた一連のステートメントで構成されているもの、目的モジュールはコンパイラの出力結果である機械語のモジュール、ロードモジュールは連係編集プログラムによって作り出されるもので、1以上の目的モジュールを結合して、あるいは、目的モジュールとロードモジュールを結合して作成される。
【0004】
【発明が解決しようとする課題】
プログラムの品質を保証するために、ロードモジュールの全ルートパスの試験が不可欠であり、全ルートパスを如何に早く網羅して実行するかが要求される。ここで、ルートパスとは、ロードモジュールを構成するソースモジュールをコンパイルした時に生成される最小分岐条件節である。
しかし、複数のソースモジュールから構成される大規模なロードモジュールの試験では、該ロードモジュールに多くの分岐命令、サブルーチン実行命令等が存在して試験ルートが複雑になる。このため、ルート試験に長時間を要し、しかも、特定のルートパスのみが複数回実行されたりする場合が生じる。
このため、全ルートパスを効率的に実行して試験するための情報を抽出して試験実行手段に提供する必要がある。しかし、従来、最短時間、最小試験項目でロードモジュールを試験する仕組みは存在しない。ただ、従来技術では、実行済試験ルートパスを蓄積し、全試験ルートパスに対する実行済試験ルートパスの網羅率(=実行済試験ルートパス数/全試験ルートパス数)を測定し、この網羅率情報に基づいて試験担当者が未試験ルートパスを経験または、無作為に実行している。
【0005】
従って、本発明の目的は、ロードモジュールの試験において、全試験ルートパスを効率的に実行できる試験ルート決定方法を提供することである。
本発明の別の目的は、サブルーチンを呼び出して実行する処理を含むロードモジュールの試験において、サブルーチンを含めて試験ルートパスを効率的に実行できる試験ルート決定方法を提供することである。
本発明の別の目的は、ロードモジュールの試験において、最小ルートパターン単位で試験が行われたか否かを管理することにより、より品質の良い試験を実施できる試験ルート決定方法を提供することである。
本発明の別の目的は、ロードモジュールの一部を修正した場合、修正部分を効果的に短時間で試験できる試験ルート決定方法を提供することである。
本発明の別の目的は、未実行ルートパスの実行のために、該ルートパスの手前で実行される既実行ルートパスの選択に偏りが出ないようにルートパスを自動的に選択し、分岐網羅率を高め、より品質の良い試験を実施できる試験ルート決定方法を提供することである。
【0007】
【課題を解決するための手段】
本発明によれば、サブルーチンを呼び出して実行するルートパスを含むルートパターンについて、該ルートパスを除いた未実行ルートパス数及び該サブルーチンにおける未実行ルートパス数をそれぞれ管理し、これら未実行ルートパスの和をルートパターンの未実行ルートパス数として求め、未実行ルートパス数が最大のルートパターンを次に試験すべき試験ルートパターンとして決定する。このようにすれば、サブルーチンを呼び出して実行する処理を含むロードモジュールの試験において、サブルーチンを含めて試験ルートパスを効率的に実行することができる。
本発明によれば、(1) ロードモジュールを修正した場合、修正によって影響を受けないルートパスをまとめてブロック化し、該ブロック内の分岐条件をブロック入力条件とするルートブロックを定義し、(2) ルートパターンをルートパスと該ルートブロックを用いて特定し、(3) 未実行ルートパス及び未実行ルートブロックの数が最大の未実行ルートパターンを次に試験すべき試験ルートパターンとして決定し、(4) 未実行ルートパス、未実行ルートブロックが存在しなくなるまで試験ルートパターンを順次決定して試験を行う。このようにすれば、ロードモジュールの一部を修正した場合、修正部分と非修正部分の結合を考慮しながら、修正部分の試験を効果的に短時間でおこなうことができる。
【0008】
本発明によれば、(1) 連続する2つのルートパスを最小ルートパターンと定義し、(2) 未実行ルートパターンの試験実行により該ルートパターンを実行済みとして全ルートパターンの試験実行状況を管理し、かつ、未実行ルートパターンの試験実行により該ルートパターンを特定するルートパスで定義される最小ルートパターンを実行済みとして全最小ルートパターンの実行状況を管理し、かつ、未実行ルートパターンにおける未実行の最小ルートパターン数を管理し、(3) 未実行の最小ルートパターン数が最大の未実行ルートパターンを次に実行すべき試験ルートパターンとして決定し、(4) 未実行の最小ルートパターンが存在しなくなるまで次の試験ルートパターンを決定して試験を行う。このようにすれば、前後の2つのルートパスを組にしてそれらの実行状況を管理できるため、品質の良い試験を実施することができる。
【0010】
【発明の実施の形態】
(A)第1実施例
図1は本発明の第1実施例のロードモジュール試験システムの構成図である。図中、11a,11bはソースモジュール、12はコンパイラ及び連係編集プログラムを用いてソースモジュール11a、11bを翻訳及び連係編集して作成されたロードモジュール、13は試験データや入力条件等を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成される全ての最小分岐条件節(全ルートパス)、▲2▼ロードモジュールの開始から終了までの間に存在する全ルートを特定する全ルートパターン、▲3▼試験ルートの実行により通過したルートパスなどを格納するものである。15はロードモジュール試験装置で、ルートパターン情報作成部15a、ルートパターン実行状況反映部15b、ルートパターン情報データベース15c、試験ルートパターン決定部15dを有している。
【0011】
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されているデータを用いて図2に示すルートパス情報RPHやルートパターン情報RPTを作成してルートパターン情報データベース15cに格納する。ルートパス情報RPHは、ロードモジュールの全ルートパスと実行フラグの対応を示すものである。初期時ルートパスはまだ試験により通過(実行)してないからその初期値はOFFである。図3はルートパスをエレメントとしたロードモジュールの処理フロー図であり、a〜jはルートパスで、図2のルートパス名欄にリストされている。ルートパターン情報RPTは、ロードモジュールに存在する開始から終了までの全ルートを特定するルートパターンと、その実行の有無を示す実行フラグと、ルートパターンに含まれる未実行ルートパスの数などの対応を示すものである。図3のロードモジュールには6個のルート(ルートパターン)
abdefhj
abdeghj
abdij
acdefhj
acdeghj
acdij
が存在し、これがが図2のルートパターン名欄にリストされている。
【0012】
ルートパターン実行状況反映部15bは、所定の試験ルートパターンの試験実行により、試験実行トレース情報格納部14に格納されている実行ルートパターン名、通過ルートパス名を参照して、試験実行状況をルートパターン情報データベース15cに反映するものである。例えば、ルートパターンabdefhjの試験実行により、ルートパス情報RPH及びルートパターン情報RPTは図4に示すようになる。試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行ルートパス数の大きい順に並び変え、未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する。例えば、図2の初期時にはルートパターン
abdefhj,abdeghj,acdefhi,acdeghi
のいずれかを次の試験ルートパターンとして決定する。又、図4の場合には、
acdeghj,acdij
のいずれかを次の試験ルートパターンとして決定する。
【0013】
図5は第1実施例の試験ルート決定及び実行処理フローである。
ロードモジュールを構成する全ソースモジュールをコンパイルした時に生成される全ルートパス、ルートパスで特定される全ルートパターンを試験実行トレース情報格納部14に格納する(ステップ101)。
ついで、ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されているデータを用いて図2に示すルートパス情報RPHやルートパターン情報RPTを作成してルートパターン情報データベース15cに格納する(ステップ102)。
しかる後、試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行ルートパス数の大きい順に並び変え、未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ103)。
【0014】
これにより、決定したルートパターンにそってロードモジュールが実行されるように各分岐条件を設定してロードモジュールを起動する。ロードモジュールはルートパターンにそって実行され、通過したルートパスが試験実行トレース情報格納部14に格納される(ステップ104)。
ルートパターン実行状況反映部15bは、試験実行トレース情報格納部14に格納されている実行ルートパターン名、通過ルートパス名を参照して、試験実行状況をルートパターン情報データベース15cに反映する。すなわち、ルートパターン実行状況反映部15bは、図4に示すように、(1) 実行したルートパターンを実行済み(実行フラグON)にすると共に、(2) 実行ルートパターンを構成する各ルートパスを実行済み(実行フラグON)とし、かつ、(3) 実行したルートパターンの未実行ルートパス数を0にする(ステップ105)。
【0015】
ついで、ルートパターン実行状況反映部15bは、未実行ルートパターンを構成する未実行ルートパスの数を算出してルートパターン情報RPTの未実行ルートパス数を更新する(ステップ106)。
未実行ルートパス数が更新されれば、試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行ルートパス数の多い順に並び変え、未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ107)。
しかる後、試験実行部はルートパス情報RPHを参照して全ルートパスの実行フラグがONになったかチェックし(ステップ108)、すべてオンでなければステップ104以降の処理を繰り返し、オンであればロードモジュールの試験を終了する。
第1実施例によれば未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとするから、実行済みルートパスの網羅率を高めることができ効率良く全ルートパスの試験を行うことが可能になる。
【0016】
(B)第2実施例
第1実施例では未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとし、未実行ルートパス数が最大のルートパターンが複数存在すれば、任意のルートパターンを次の試験ルートパターンとする。しかし、第2実施例では各ルートパターンにそった命令のステップ数を求め、該ステップ数が最小のルートパターンを次の試験ルートパターンとする。
図6は本発明の第2実施例のロードモジュール試験システムの構成図であり、図1の第1実施例と同一部分には同一符号を付している。図中、11a,11bはソースモジュール、12はロードモジュール、13は試験データや入力条件等を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成されるルートパス及びそのステップ数、▲2▼ロードモジュールの開始から終了までの間に存在する全ルートを特定するルートパターン、▲3▼所定のルートパターンにそったロードモジュールの試験実行により通過したルートパス、などを格納するものである。例えば、ロードモジュール12の処理フロー(ルートパスをエレメントとした処理フロー)が図7に示すものとすれば、各ルートパスのルートパス名a〜mとそれぞれのステップ数が図8に示すように試験実行トレース情報格納部14に格納される。
【0017】
15はロードモジュール試験装置で、ルートパターン情報作成部15a、ルートパターン実行状況反映部15b、ルートパターン情報データベース15c、試験ルートパターン決定部15dを有している。
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いてルートパス情報RPHやルートパターン情報RPTを作成してルートパターン情報データベース15cに格納する。ルートパス情報RPHは、第1実施例と同様にロードモジュールの全ルートパスと実行フラグの対応(図2参照)を示すものである。ルートパターン情報RPTは、図9(a)に示すように▲1▼ロードモジュールに存在する全ルートを特定するルートパターンと、▲2▼その実行の有無を示す実行フラグと、▲3▼ルートパターンを構成する未実行ルートパスの数と、▲4▼ルートパターンの実行ステップ数、などの対応を示すものである。ルートパターン実行ステップ数は、ルートパターンを構成するルートパスのステップ数の総和である。例えば、ルートパターンabdijmn及びacdijmnのステップ数は
“abdijmn”=500+600+700+300+600+600+200=3500
“acdijmn”=500+300+700+300+600+600+200=3200
である。
【0018】
ルートパターン実行状況反映部15bは、所定の試験ルートパターンの試験実行により試験実行トレース情報格納部14に格納される実行ルートパターン名、通過ルートパス名を参照して、試験実行状況をルートパターン情報データベース15cに反映するものである。例えば、2つのルートパターンacdeghjln及びabdefhjkn(図7(a)の点線参照)の試験実行により、ルートパターン情報RPTは図9(a)に示すようになる。又、図示しないがルートパス情報RPHにおけるルートパスa,b,c,d,e,f,g,h,j,k,l,nの実行フラグがONになる。
試験ルートパターン決定部15dは、図9(b)に示すようにルートパターンを未実行ルートパス数の多い順に並び替えるルートパターン入れ替え部21と、図9(c)に示すように未実行ルートパス数が同数のルートパターンを実行ステップ数の少ない順に並び替える未実行ルートパターン入れ替え部22を備え、未実行ルートパス数が最大で、かつ、実行ステップ数が最小のルートパターンacdijmn(図7(b)点線)を次の試験ルートパターンとして決定する。
【0019】
図10は第2実施例の試験ルート決定及び実行処理フローである。
ロードモジュールを構成する全ソースモジュールをコンパイルした時に生成される全ルートパス及び各ルートステップのステップ数、ルートパスで特定される全ルートパターンを試験実行トレース情報格納部14に格納する(ステップ201)。
ついで、ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いてルートパス情報RPHやルートパターン情報(未実行ルートパス数、実行ステップ数を含む)RPTを作成してルートパターン情報データベース15cに格納する(ステップ202)。
しかる後、試験ルートパターン決定部15dは、ルートパターン情報データベース15cに格納されているルートパターンを未実行ルートパス数の大きい順に並び変えると共に、未実行ルートパス数が同数のルートパターンは実行ステップ数が少ない順に並び替え、未実行ルートパス数が最大で、かつ、実行ステップ数が最小のルートパターンを次の試験ルートパターンとして決定する(ステップ203)。
【0020】
これにより、決定したルートパターンにそってロードモジュールが実行されるように各分岐条件を設定してロードモジュールを起動する。ロードモジュールはルートパターンにそって実行され、通過したルートパスが試験実行トレース情報格納部14に格納される(ステップ204)。
ルートパターン実行状況反映部15bは、試験実行トレース情報格納部14に格納されている実行ルートパターン名、通過ルートパス名を参照して、試験実行状況をルートパターン情報データベース15cに反映する。すなわち、ルートパターン実行状況反映部15bは、(1) 図9(a)に示すように実行したルートパターンを実行済み(実行フラグON)にすると共に、(2) 実行ルートパターンを特定する各ルートパスを実行済み(実行フラグON)とし、かつ、(3) 実行したルートパターンの未実行ルートパス数を0にする(ステップ205)。
【0021】
ついで、ルートパターン実行状況反映部15bは、未実行ルートパターンを構成する未実行ルートパス数を算出してルートパターン情報RPTの未実行ルートパス数を更新する。しかる後、試験ルートパターン決定部15dはルートパターンを未実行ルートパス数の大きい順に並び変える(ステップ206)。
また、試験ルートパターン決定部15dは未実行ルートパス数が同数のルートパターンを実行ステップ数が少ない順に並び替え(ステップ207)、未実行ルートパス数が最大で、かつ、実行ステップ数が最小のルートパターンを次の試験ルートパターンとして決定する(ステップ208)。
しかる後、試験実行部はルートパス情報RPHを参照して全ルートパスの実行フラグがONになったかチェックし(ステップ209)、すべてオンでなければステップ204以降の処理を繰り返し、オンであればロードモジュールの試験を終了する。
第2実施例によれば、未実行ルートパス数が最大で、かつ、実行ステップ数が最小のルートパターンを次の試験ルートパターンとするから、実行済みルートパスの網羅率を高めることができ、しかも、より効率良く全ルートパスの試験を行うことができる。
【0022】
(B)第3実施例
サブルーチン(サブプログラム)を作成しておき、メインプログラムにおいて該サブルーチンを呼び出して実行し、サブルーチン実行後、メインプログラムに戻って処理を継続するプログラミング手法は一般的である。図11はかかるメインプログラムとサブルーチンの関係説明図であり、MPはメインプログラム(モジュールA)、SUB A,SUB Bはサブルーチンである。メインプログラムの所定位置にはサブルーチン呼出し命令(CALL+サブルーチン名)が挿入され、サブルーチンSUB A,SUB Bが呼び出されて実行されるようになっている。各サブルーチンSUB A,SUB Bの先頭にはメインプログラムMPが使用していたレジスタ類の内容を保存する命令SAVEが挿入され、末尾には保存してある元の状態を復元するためのRETURN命令が挿入されている。プログラミングに際しては、メインプログラムMP、各サブルーチンSUB A,SUB Bを別個に作成し(ソースモジュール)、各ソースモジュールをコンパイル、連係編集して実行可能なロードモジュールに組み立てる。なお、サブルーチンはC言語における関数と同等であり、従って、以下ではサブルーチンを関数と呼ぶことにする。又、メインプログラムを自関数、自関数内の関数を参照先関数という。
【0023】
関数を呼出して実行する構成を備えたロードモジュールの試験ルートパターン決定に際して、自関数内の未実行ルートパス数だけを参照するのでは不十分であり、参照先関数内の未実行ルートパス数も考慮する必要がある。第3実施例は参照先関数内の未実行ルートパス数も考慮して次の試験ルートパターンを決定して試験する。
図12は本発明の第3実施例のロードモジュール試験システムの構成図であり、図1の第1実施例と同一部分には同一符号を付している。図中、11a〜11cは関数名func-A, func-B, func-Cのソースモジュール(モジュールA〜モジュールC)、12はコンパイラ及び連係編集プログラムを用いてソースモジュールA〜Cを翻訳及び連係編集して作成されたロードモジュールである。各ソースモジュールA〜Cは、図13(a)〜(c)に示す処理フローを有している。ソースモジュールA(関数func-A)において、A-a〜A-gはルートパスであり、ルートパスA-bは関数func Bを呼び出して実行するもの、ルートパスA-c, A-fはそれぞれ関数func Cを呼び出して実行するものである。ソースモジュールB(関数func-B)及びソースモジュールC(関数func-C)はソースモジュールAにより参照されるモジュールであり、B-a〜B-d及びC-a〜C-cはルートパスである。
【0024】
13は試験データや入力条件等を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成されるルートパス、▲2▼ルートパスと関数の対応関係、▲3▼ロードモジュールの開始から終了までの間に存在する全ルートを特定するルートパターン、▲4▼ロードモジュールの試験実行により通過したルートパス、などを格納するものである。
15はロードモジュール試験装置で、ルートパターン情報作成部15a、ルートパターン実行状況反映部15b、ルートパターン情報データベース15c、試験ルートパターン決定部15dを有している。
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いてルートパス情報RPHやルートパターン情報RPTを作成してルートパターン情報データベース15cに格納する。
【0025】
ルートパス情報RPHは、図14の上段に示すようにロードモジュールの全ルートパスA-a〜A-gと関数呼出しフラグと実行フラグの対応を示す。関数呼出しフラグは、ルートパスが関数を呼び出して実行するルートパスであるか否かを識別するもの、実行フラグはルートパスの未実行/実行を識別するものである。関数を呼び出して実行するルートパスA-b, A-c, A-fについては、実行フラグのオン/オフを記入する必要がなく、その実行/未実行はルートパターン情報RPTにおいて管理される。ルートパターン情報RPTは、図14の下段に示すように、▲1▼ロードモジュールに存在する全ルートパターン、▲2▼自関数内の未実行ルートパス数、▲3▼参照先関数の関数名、▲4▼参照先関数の実行の有無を示す実行フラグ、▲5▼未実行参照先ルートパス数、▲6▼未実行ルートパスの総数など、の対応を示す。図15は図13のロードモジュールにおけるルートパターンの組み合わせを示すもので、カッコ内は参照先関数のルートパスを示す。
【0026】
ルートパターン実行状況反映部15bは、所定のルートパターンにそってロードモジュールの試験が行われた時、試験実行状況をルートパターン情報データベース15cに反映する。すなわち、ルートパターン実行状況反映部15bは、▲1▼ルートパス情報RPHにおける実行フラグ、▲2▼ルートパターン情報RPTにおける自関数の未実行ルートパス数、▲3▼参照先関数の実行フラグ、▲4▼未実行参照先ルートパス数、▲5▼自関数及び参照先関数における未実行ルートパスの総数、などを計算して更新する。たとえば、ルートパターン
A-a,A-b, (B-a,B-c,B-d),A-d,A-f, (C-a,C-c),A-g
に沿ってロードモジュールの試験を実行すると、各関数内の未実行ルートパスは図16に示すようになる。この結果、ルートパターン実行状況反映部15bは、ルートパス情報RPH及びルートパターン情報RPTを図17に示すように更新する。
【0027】
試験ルートパターン決定部15dは、ルートパターンを未実行ルートパスの総数の多い順に並び替え、該未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する。例えば、図17の場合、
A-a,A-b, (B-a,B-b,B-d),A-d,A-f, (C-a,C-b),A-g
の未実行ルートパス数(=5)が最大になり、次の試験ルートパターンとなる。
【0028】
図18は第3実施例の試験ルート決定及び実行処理フローである。
ロードモジュールを構成する全ソースモジュールをコンパイルした時に生成される全ルートパス、ルートパスで特定される全ルートパターン、ルートパスと参照関数の対応、参照関数のルートパターン、などを試験実行トレース情報格納部14に格納する(ステップ301)。
ついで、ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いてルートパス情報RPHやルートパターン情報(図14参照)RPTを作成してルートパターン情報データベース15cに格納する(ステップ302)。
【0029】
しかる後、試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行ルートパスの総数順に並び変え、未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ303)。
これにより、決定したルートパターンにそってロードモジュールが実行されるように各分岐条件を設定してロードモジュールを起動する。ロードモジュールはルートパターンにそって実行され、通過したルートパスが試験実行トレース情報格納部14に格納される(ステップ304)。
ルートパターン実行状況反映部15bは、試験実行トレース情報格納部14に格納されている実行ルートパターン、通過ルートパスを参照して、試験実行状況をルートパターン情報データベース15cに反映する。すなわち、ルートパターン実行状況反映部15bは、(1) 実行ルートパターンを構成するルートパス(関数呼出しルートパスは除く)の実行フラグをonとし、かつ、参照先関数内のルートパスの実行フラグをonにする(ステップ305)。
【0030】
ついで、ルートパターン実行状況反映部15bは、未実行ルートパターンを構成する未実行ルートパスの数、参照先関数内の未実行ルートパスの数、これら未実行ルートパス数の和を計算し、ルートパターン情報RPTの内容を更新する(ステップ306)。
しかる後、試験ルートパターン決定部15dは未実行ルートパスの合計値が大きい順にルートパターンを並び変え、該合計値が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ307)。
しかる後、試験実行部はルートパス情報RPH及びルートパターン情報RPTを参照して全ルートパスの実行フラグがONになったかチェックし(ステップ308)、すべてオンでなければステップ304以降の処理を繰り返し、オンであればロードモジュールの試験を終了する。
第3実施例によれば、サブルーチン(関数)を含めて試験ルートパスを効率的に実行することができる。
【0031】
(d)第4実施例
以上では、全ルートパスを効率良く実行するように試験ルートパターンを決定するものである。このため、前後の2つのルートパスが密接に関係する場合であっても、個々に試験してよければ問題なしとするものであった。例えば、図19に示すようなルートにおいてab,cb,ad,cdの4通の試験を行なう必要がある場合、第1〜第3実施例では例えばab,adのルート試験を行なうだけであった。第4実施例では前後の2つのルートパスを最小ルートパターンとし、全最小ルートパターンを効率良く実行するように試験ルートパターンを決定することにより、試験品質を向上する。
図20は最小ルートパターンを説明するロードモジュールの処理フローであり、a〜jはルートパスである。最小ルートパターンは前後に隣接する2つのルートパスよりなるもので、図20の場合、最小ルートパターンは
a-b,a-c,b-d,c-d,d-e,d-i,e-f,e-g,f-h,g-h,h-j,i-j
である。
【0032】
図21は本発明の第4実施例のロードモジュール試験システムの構成図である。図中、11a,11bはソースモジュール、12はコンパイラ及び連係編集プログラムを用いてソースモジュール11a、11bを翻訳及び連係編集して作成されたロードモジュール、13は試験データや分岐条件等を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成される全ルートパス、▲2▼前後のルートパスよりなる最小ルートパターン、▲3▼ロードモジュールの開始から終了までの間に存在する全ルートを特定するルートパターン、▲4▼試験ルートの実行により通過したルートパスなどを格納するものである。
15はロードモジュール試験装置で、ルートパターン情報作成部15a、ルートパターン実行状況反映部15b、ルートパターン情報データベース15c、試験ルートパターン決定部15dに加えて、最小ルートパターン情報作成部16a、最小ルートパターン実行状況反映部16b、最小ルートパターン実行済み情報反映部17aを有している。
【0033】
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いて図22に示すルートパターン情報RPTを作成してルートパターン情報データベース15cに格納する。ルートパターン情報RPTは、ロードモジュールに存在するルートパターンと、その実行の有無を示す実行フラグと、ルートパターンに含まれる未実行の最小ルートパターン数を示すものである。図20のロードモジュールの場合、6個のルートパターン
abdefhj
abdeghj
abdij
acdefhj
acdeghj
acdij
が存在し、これが図22のルートパターン名欄にリストされている。初期時、ルートパターンの試験は行われていないから全てのルートパターンの実行フラグは0ffになっている。
【0034】
最小ルートパターン情報作成部16aは、試験実行トレース情報格納部14に格納されている情報を用いて図22に示す最小ルートパターン情報MRPTを作成してルートパターン情報データベース15cに格納する。この最小ルートパターン情報MRPTは最小ルートパターンと実行フラグの対応を示すもので、実行フラグの初期値はOFFである。前述のように図20の場合、最小ルートパターンは
a-b,a-c,b-d,c-d,d-e,d-i,e-f,e-g,f-h,g-h,h-j,i-j
である。
【0035】
最小ルートパターン実行状況反映部16bは、所定の試験ルートパターンの実行により試験実行状況を最小ルートパターン情報MRPTに反映する。例えば、ルートパターンabdefhj(図20(b)の点線参照)の試験実行により、最小ルートパターン実行状況反映部16bは図23に示すように最小ルートパターン情報MRPTの最小ルートパターン
a-b,b-d,d-e,e-f,f-h,h-j
の実行フラグをONにする。
ルートパターン実行状況反映部15bは、所定の試験ルートパターンの実行により試験実行状況をルートパターン情報RPTに反映する。すなわち、ルートパターン実行状況反映部15bは、試験実行トレース情報格納部14に格納されている実行ルートパターンを参照して図23に示すようにルートパターン情報RPTにおける試験実行ルートパターンの実行フラグをONにする。又、最小ルートパターン実行済み情報反映部17aは、各ルートパターンに含まれる未実行の最小ルートパターン数を計算し、図23に示すようにルートパターン情報RPTの未実行数を更新する。
【0036】
試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行数(未実行最小ルートパターン数)の大きい順に並び変え(図23参照)、未実行最小ルートパターン数が最大のルートパターンを次の試験ルートパターンとして決定する。例えば、図22の初期時にはルートパターン
abdefhj,abdeghj,acdefhj,acdeghj
のいずれかを次の試験ルートパターンとして決定する。又、図23の場合には、
acdeghj,acdij
のいずれかを次の試験ルートパターンとして決定する。
【0037】
図24は第4実施例の試験ルート決定及び実行処理フローである。
ロードモジュールを構成する全ソースモジュールをコンパイルした時に生成される全ルートパス、全最小ルートパターン、全ルートパターンを試験実行トレース情報格納部14に格納する(ステップ401)。
ついで、ルートパターン情報作成部15a及び最小ルートパターン情報作成部15bは、試験実行トレース情報格納部14に格納されているデータを用いて図22に示すルートパターン情報RPT及び最小ルートパターン情報MRPTをそれぞれ作成してルートパターン情報データベース15cに格納する(ステップ402)。
しかる後、試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行最小ルートパターン数の大きい順に並び変え、最大の未実行最小ルートパターン数を有するルートパターンを次の試験ルートパターンとして決定する(ステップ403)。
【0038】
これにより、決定したルートパターンにそってロードモジュールが実行されるように各分岐条件を設定してロードモジュールを起動する。ロードモジュールはルートパターンにそって実行され、通過したルートパスが試験実行トレース情報格納部14に格納される(ステップ404)。
最小ルートパターン実行状況反映部16b試験ルートパターンの実行により試験実行状況を最小ルートパターン情報MRPTに反映する。すなわち、最小ルートパターン実行状況反映部16bは、実行した最小ルートパターンのの実行フラグをONにする。また、ルートパターン実行状況反映部15bは、試験実行トレース情報格納部14に格納されている情報を参照して試験実行ルートパターンの実行フラグをONにする(ステップ405)。又、最小ルートパターン実行済み情報反映部17aは、各ルートパターンに含まれる未実行の最小ルートパターン数を計算して書き替える(ステップ406)。
【0039】
未実行最小ルートパターン数が更新されれば、試験ルートパターン決定部15dは、ルートパターン情報RPTのルートパターンを未実行最小ルートパターン数の多い順に並び変え、未実行最小ルートパターン数が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ407)。
しかる後、試験実行部は最小ルートパターン情報MRPTを参照して全最小ルートパターンの実行フラグがONになったかチェックし(ステップ408)、すべてオンでなければステップ404以降の処理を繰り返し、オンであればロードモジュールの試験を終了する。
第4実施例によれば前後の2つのルートパスを最小ルートパターンとし、全最小ルートパターンを効率良く実行するように試験ルートパターンを決定するから、試験時間を短縮でき、しかも、試験品質を向上することができる。
【0040】
(e)第5実施例
ロードモジュールを修正した場合、修正によって影響を受けない元のルートパス(非修正部分のルートパス)は厳密な試験を行う必要はなく、修正部分と非修正部分間が問題なく結合されていることを確認するだけでよい。たとえば、第25(a)のような分岐ツリーを持つ試験済みソースモジュールの、ルートパスa,b,c,dのみを修正した場合の試験を考える。ルートパスe,f,g,h,i,jは既に十分試験されており、ルートパスa〜dに加えた修正がこれらのルートパスe〜jに影響する可能性は低い。かかる場合、ルートパス群e〜jを論理的にブロック化し(点線参照)、その入力条件を設定する。図25(a)では、2つの入力条件を設定し、第1入力条件によってルートブロックB1を作成し、第2入力条件によってルートブロックB2を作成している。
【0041】
入力条件は、非修正部分に含まれる分岐条件を考慮して設定される。例えば、図25(a)のロードモジュールにおいて、ルートパスiへの分岐条件が1≦num<10、ルートパスeへの分岐条件がnum<1,10≦num、ルートパスfへの分岐条件がnum<1、ルートパスgへの分岐条件が10≦numであるとすれば、第1、第2入力条件はそれぞれ
(1) num<1,10≦num
(2) 1≦num<10
となる。これらルートブロックB1,B2を図25(a)に当てはめると、同図(b)に示すようにルートパスa〜dとルートブロックB1,B2で構成された新たな論理的分岐ツリーが得られる。図25(b)のルートブロックB1,B2をルートパスとみなして第1実施例を適用すれば、修正されたルートパスのみを厳密に試験でき、しかも、修正部分と非修正部分の結合試験を行える。
図26は新旧ルートパターン情報及びルートブロック情報の説明図、図27は新旧ルートパス情報の説明図である。
【0042】
旧ルートパターン情報RPT及び旧ルートパス情報RPHは共に第1実施例のルートパターン情報RPT、ルートパス情報RPHと同一の構成を備えている。すなわち、旧ルートパターン情報RPTは図26(a)に示すように全ルートパターンについて、▲1▼ルートパターン名、▲2▼実行フラグ、▲3▼未実行ルートパス数を示すようになっている。又、旧ルートパス情報RPHは、図27(a)に示すように全ルートパスについて、▲1▼ルートパス名、▲2▼実行フラグを示すようになっている。
ルートブロック情報RBLは図26(b)に示すように、作成された全ルートブロックB1,B2(図25(b)参照)について、▲1▼ルートブロック名、▲2▼該ルートブロックに包含されるルートパス、▲3▼ルートブロックへの入力条件を示すようになっている。
【0043】
新ルートパターン情報NRPTは図26(c)に示すように、図25(b)のロードモジュールに含まれる全ルートパターンについて、▲1▼ルートパターン名、▲2▼実行フラグ、▲3▼未実行ルートパス数を示すようになっている。又、新ルートパス情報NRPHは図27(b)に示すように、図25(b)のロードモジュールに含まれる全ルートパスについて、▲1▼ルートパス名、▲2▼実行フラグを示すようになっている。
旧ルートパターン情報RPTには6つのルートパターンが含まれているが、新ルートパターン情報NRPTには4つのルートパターンが含まれるだけである。この結果、ルートパターン数を削減でき、また、それらの未実行ルートパス数も減少できる。これにより、効率的に試験すべきルートパスを重点的に試験するようにルートパターンを抽出できる。
【0044】
図28は本発明の第5実施例のロードモジュール試験システムの構成図である。図中、11a,11bはソースモジュール、12はコンパイラ及び連係編集プログラムを用いてソースモジュール11a、11bを翻訳及び連係編集して作成されたロードモジュール、13は入力条件を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成される全ルートパス、▲2▼ロードモジュールの開始から終了までの間に存在する全ルートパターン、▲3▼試験ルートの実行により通過したルートパス、ルートブロックなどを格納するものである。15はロードモジュール試験装置で、ルートパターン情報作成部15a、実行状況反映部15b′、データベース15c、試験ルートパターン決定部15d、ルートブロック情報作成部18、ルートパターン情報変換部19を有している。
【0045】
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いて図27(a)、図26(a)に示す旧ルートパス情報RPHや旧ルートパターン情報RPTを作成してデータベース15cに格納する。
ルートブロック情報作成部18は、試験実行トレース情報格納部14に格納されている情報及び設定された入力条件を用いて図26(b)に示すルートブロック情報RBLを作成してデータベース15cに格納する。
ルートパターン情報変換部19は、ルートブロック情報RBLを用いて旧ルートパス情報RPH及び旧ルートパターン情報RPTをそれぞれ図27(b)、図26(c)に示す新ルートパス情報NRPH及び新ルートパターン情報NRPTに変換する。
【0046】
実行状況反映部15b′は、試験ルートパターンの実行により、試験実行トレース情報格納部14に格納されている情報(実行ルートパターン、通過ルートパス、通過ルートブロック名)を参照して、新ルートパターン情報NRPT及び新ルートパス情報NRPHに反映するものである。例えば、ルートパターンabdB1の試験実行により、新ルートパス情報NRPH及び新ルートパターン情報NRPTは図29に示すようになる。
試験ルートパターン決定部15dは、新ルートパターン情報NRPTにおけるルートパターンを未実行ルートパス数の大きい順に並び変え、最大の未実行ルートパス数のルートパターンを次の試験ルートパターンとして決定する。例えば、図29の場合、ルートパターンacdB2を次の試験ルートパターンとして決定する。
【0047】
図30は第5実施例の試験ルートパターン決定及び実行処理フローである。
ロードモジュールを構成するソースモジュールをコンパイルした時に生成される全ルートパス、全ルートパターンを試験実行トレース情報格納部14に格納する(ステップ501)。又、ブロックB1,B2の入力条件を入力する(ステップ502)。
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いて旧ルートパス情報RPHや旧ルートパターン情報RPTを作成してデータベース15cに格納する(ステップ503)。又、ルートブロック情報作成部18は、試験実行トレース情報格納部14に格納されている情報及び設定された入力条件を用いてルートブロック情報RBLを作成してデータベース15cに格納する(ステップ504)。
【0048】
ルートパターン情報変換部19はルートブロック情報RBLを用いて旧ルートパス情報RPH、旧ルートパターン情報RPTをそれぞれ新ルートパス情報NRPH(図27(b))、新ルートパターン情報NRPT(図26(c))に変換する(ステップ505)。
しかる後、試験ルートパターン決定部15dは、新ルートパターン情報NRPTのルートパターンを未実行ルートパス数の大きい順に並び替え、未実行ルートパス数が最大のルートパターンを次の試験ルートパターンとして決定する(ステップ506)。これにより、決定したルートパターンにそってロードモジュールが実行されるように各分岐条件を設定してロードモジュールを起動する。ロードモジュールはルートパターンにそって実行され、通過したルートパスが試験実行トレース情報格納部14に格納される(ステップ507)。
【0049】
実行状況反映部15b′は、試験実行トレース情報格納部14に格納されている実行ルートパターン、通過ルートパス(通過ルートブロックを含む)を参照して、試験実行状況をデータベース15cに反映する。すなわち、実行状況反映部15b′は、(1) 実行したルートパターンを実行済み(実行フラグON)にすると共に、(2) 実行ルートパターンを構成する各ルートパスを実行済み(実行フラグ ON)とし、かつ、(3) 実行したルートパターンの未実行ルートパス数を0にする(ステップ508)。ついで、実行状況反映部15b′は、未実行ルートパターンに含まれる未実行ルートパス数(未実行ルートパス及び未実行ルートブロックの数)を算出して新ルートパターン情報NRPTの未実行ルートパス数を更新する(ステップ509)。
【0050】
未実行ルートパス数が更新されれば、試験ルートパターン決定部15dは、新ルートパターン情報NRPTのルートパターンを未実行ルートパス数の多い順に並び変え、最大の未実行ルートパス数を有するルートパターンを次の試験ルートパターンとして決定する(ステップ510)。
しかる後、試験実行部は新ルートパス情報NRPHを参照して全ルートパス(ルートブロックを含む)の実行フラグがONになったかチェックし(ステップ511)、すべてオンでなければステップ507以降の処理を繰り返し、オンであればロードモジュールの試験を終了する。
第5実施例によれば、試験済みのロードモジュールを一部修正した場合、修正したルートパスのみを厳密に試験でき、しかも、修正部分と非修正部分の結合試験を行うことができる。
【0051】
(f)第6実施例
全ルートパスを実行するように試験ルートパターンを選択すると、いくつかのルートパスは何回も実行され、各ルートパスの実行回数に偏りが出てしまう。未実行ルートパスの実行のために、該ルートパスの前後で実行される既実行ルートパスの選択に偏りが出ないようにルートパターンを選択できれば、分岐網羅率を高め、より品質の良い試験を実施することができる。
そこで、第6実施例では、(1) それまでの試験ルート決定に際して、各分岐点で選択した分岐ルートパスの選択回数を管理し、(2) 次の試験ルート選択に際して、各分岐点で選択回数が最小の分岐ルートパスを選択することにより次の試験ルートを決定し、(3)未選択の分岐ルートパスが存在しなくなるまで試験ルートを決定して試験を行う。
【0052】
図31は本発明の第6実施例のロードモジュール試験システムの構成図である。図中、11a,11bはソースモジュール、12はコンパイラ及び連係編集プログラムを用いてソースモジュール11a、11bを翻訳及び連係編集して作成されたロードモジュール、13は試験データや入力条件等を入力するデータ入力部、14は試験実行トレース情報格納部で、▲1▼ソースモジュールをコンパイルした時に生成される全ルートパス、▲2▼分岐点の番号(分岐処理群名)と該分岐点における分岐ルートパス、▲3▼試験ルートの実行により通過したルートパスなどを格納するものである。15はロードモジュール試験装置で、ルートパターン情報作成部15a、ルートパターン実行状況反映部15b、ルートパターン情報データベース15c、試験ルートパターン決定部15dを有している。
ルートパターン情報作成部15aは、試験実行トレース情報格納部14に格納されている情報を用いてルートパターン情報BRPTを作成してルートパターン情報データベース15cに格納する。ルートパターン情報BRPTは、▲1▼実行回数、▲2▼分岐処理群名、▲3▼各分岐ルートパスの実行回数を示す分岐ルート実行状況などを含んでいる。ルートパターン実行状況反映部15bは試験実行状況を反映したルートパターン情報BRPTを作成するもので、試験実行ルートを構成する分岐ルートパスの実行回数を歩進する。試験ルートパターン決定部15dは、各分岐点において選択回数が最小の分岐ルートパスを選択することにより次の試験ルートを決定する。
【0053】
図32はC言語によるソースモジュールにおけるステップ番号、処理内容、分岐処理群名、ルートパス、分岐ルートパス名の対応を示すものである。ソースモジュールの分岐命令単位に対応して分岐処理群(A1,B1,B2,C1)が明示され、かつ、各分岐処理群を構成する分岐ルートパスが明示されている。ステップ2〜5は分岐処理群A1、ステップ7〜17は分岐処理群B1、ステップ9〜12は分岐処理群B2、ステップ19〜25は分岐処理群C1を構成する。分岐処理群A1,B1,C1にはそれぞれ分岐ルートパスA1-1,A1-2;B1-1,B1-2;C1-1,C1-2,C1-3,C1-4,C1-5があり、更に、分岐ルートパスB1-1内には分岐ルートパスB2-1,B2-2がある。
このソースプログラムの処理フロー図をルートパスを用いて作成すると、図33に示すようになる。ルートパスa,d,j,pはどのようなルートパターンでも必ず通過するルートパスであり、また、dからeへ分岐した場合、ルートパスhは、f,gいずれに分岐しても必ず通過するルートパスである。
実際にはルートパスを組み合わせてルートパターンを設定するが、分岐網羅のためにはルートパスより分岐ルートパスを用いてルートパターンを選択する方が簡便である。そこで、第6実施例では分岐ルートパスによりルートパターンを選択する。図34はルートパスによる処理フロー(図33)を分岐ルートパスで置き換えた場合の処理フロー図である。
【0054】
ロードモジュールLMを実行すると、ルートパターン実行状況反映部15bは該ロードモジュールの各分岐処理群における分岐ルートパスの実行回数をカウントし、ルートパターン情報BRPTに反映する。ルートパターン情報BRPTにおいて、分岐処理群名及び各ルートパスの通過回数(実行回数)を示す情報は以下の形式
を有している。なお、直前の試験で実行された分岐ルートパスの実行回数の末尾に“+”を付加する。図32の分岐処理群A1〜C1に上記形式を適用すると、ルートパターン情報BRTPは以下の形式
で各分岐処理群の分岐ルートパスの実行回数を管理する。
【0055】
ルートパターン決定部15dは各分岐点で実行回数が最小の分岐ルートパスを選択して次回の試験ルートを決定するが、その詳細は以下の通りである。すなわち、ルートパターン決定部15dは、以下のルールにより各分岐処理群の中から所定の分岐ルートパスを選択して次回の試験ルートを決定する。
1) 各分岐処理群において、実行回数が最小の分岐ルートパスを選択する。着目している分岐処理群において複数の分岐ルートパスの実行回数が同数ならば次の優先順位へすすむ。
2) 着目している分岐処理群より直前に他の分岐処理群があるかチェックする。直前に他の分岐処理群が存在すれば、該直前の分岐処理群における次回の分岐ルートパスが前回の分岐ルートパスと異なるかチェックする(ただし、初期状態は除く)。異なる場合には着目分岐処理群の分岐ルートパスを前回の分岐ルートパスと同じにする。
一方、直前に他の分岐処理群が存在しなければ、あるいは、直前の分岐処理群における次回の分岐ルートパスが前回の分岐ルートパスと同じであれば(初期状態を含む)は次の優先順位へすすむ。
3) 実行回数の末尾に“+"がついていないものの中から最も若い番号の分岐ルートパスを選択する。
以上の処理により、試験ルートを決定して試験を行い、全分岐ルートパスが実行されれば、ロードモジュールの試験が終了する。
【0056】
図35は以上のルールに従って分岐ルートパスを決定した結果である。図中、実行回数欄51はロードモジュールを所定の試験パターンに従って先頭から最後尾までを実行した回数であり、分岐ルート実行状況欄52は各分岐処理群における分岐ルートパスの実行回数を示すものであり、分岐処理群A1においてはA1-1及びA1-2の実行回数を示している(カッコ内数字)。また、数字の末尾に“+”表示されている分岐ルートパスは、前回に選択・実行されたことを示している。分岐ルートパス欄53は、次回の試験において各分岐点で選択される分岐ルートパスを示すもので、次回の試験ルートパターンを特定する。
【0057】
図36〜図37は実行ルートパターン説明図であり、図35における実行回数iの実行ルートパターンがそれぞれ太線で示されている。図35に示すように、分岐ルートパスを決定して試験すると3回目の実行までに分岐ルートパスA1-1, A1-2, B1-1, B1-2, B2-1, B2-2, C21-1〜C1-3はすべて網羅される。このため、残りの分岐ルートパスC1-4, C1-5のルートパス試験を行う際にこれら実行済みの分岐ルートパスは再実行されることになる。かかる場合、第6実施例では分岐ルートパスの組み合わせにバリエーションを持たせることが可能になり、分岐網羅率を向上させ、品質の高い試験結果を得ることができる。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【0058】
【発明の効果】
以上本発明によれば、(1) 未実行ルートパターンの試験実行により該ルートパターンを実行済みにして全ルートパターンの試験実行状況を管理し、かつ、未実行ルートパターンの試験実行により該ルートパターンを構成するルートパスを実行済みとして全ルートパスの実行状況を管理し、かつ、未実行ルートパターンを構成する未実行ルートパス数を管理し、(2) 未実行ルートパス数が最大の未実行ルートパターンを次に試験実行すべき試験ルートパターンとして決定して該ルートパターンの試験を実行し、(3) 未実行ルートパスが存在しなくなるまで試験ルートパターンを順次決定して試験を行うようにしたから、未実行ルートパス数が多いルート順に試験を行うため効率良く全ルートパスの試験を行える。
又、本発明によれば、未実行ルートパス数が最大の未実行ルートパターンが複数存在する場合、実行ステップ数が少ない未実行ルートパターンを次に実行すべき試験ルートパターンとして決定するようにしたから、より効率良く全ルートパスの試験を行うことができる。
【0059】
又、本発明によれば、サブルーチンを呼び出して実行するルートパスを含むルートパターンにおいて、該ルートパスを除いた未実行ルートパス数及び該サブルーチンにおける未実行ルートパス数をそれぞれ管理し、これら未実行パスの和をルートパターンの未実行ルートパス数として求め、未実行ルートパス数が最大のルートパターンを次に実行すべき試験ルートパターンとして決定したから、サブルーチンを呼び出して実行する処理を含むロードモジュールの試験を効率的に実行することができる。
【0060】
又、本発明によれば、(1) ロードモジュールを修正した場合、修正によって影響を受けないルートパスをまとめてブロック化し、該ブロック内の分岐条件をブロック入力条件としてルートブロックを定義し、(2) ルートパターンをルートパスと該ルートブロックを用いて特定し、(3) 未実行ルートパス及び未実行ルートブロックの数が最大の未実行ルートパターンを次に試験実行すべき試験ルートパターンとして決定し、(4) 未実行ルートパス、未実行ルートブロックが存在しなくなるまで試験ルートパターンを順次決定して試験を行うようにしたから、、ロードモジュールの一部を修正した場合、修正部分と非修正部分の結合を考慮しながら、修正部分の試験を効果的に短時間でおこなうことができる。
【0061】
又、本発明によれば、(1) 連続する2つのルートパスを最小ルートパターンと定義し、(2) 未実行ルートパターンの試験実行により該ルートパターンを実行済みとして全ルートパターンの試験実行状況を管理し、かつ、未実行ルートパターンの試験実行により該ルートパターンを構成するルートパスで定義される最小ルートパターンを実行済みとして全最小ルートパターンの実行状況を管理し、かつ、未実行ルートパターンにおける未実行の最小ルートパターン数を管理し、(3) 未実行の最小ルートパターン数が最大の未実行ルートパターンを次に実行すべき試験ルートパターンとして決定し、(4) 未実行の最小ルートパターンが存在しなくなるまで次の試験ルートパターンを決定して試験を行うようにしたから、前後の2つのルートパスを組にしてそれらの実行状況を管理できるため、品質の良い試験を実施することができる。
【0062】
又、本発明によれば、(1) 試験ルートを特定するために各分岐において選択された分岐ルートパスの選択回数を管理し、(2) 各分岐において選択回数が最小の分岐ルートパスを選択することにより次の試験ルートを決定し、(3) 未選択の分岐ルートパスが存在しなくなるまで試験ルートを決定して試験を行うようにしたから、未実行ルートパスの実行のために、該ルートパスの手前で実行される既実行ルートパスの選択に偏りが出ないようにルートパスを自動的に選択し、分岐網羅率を高め、より品質の良い試験を実施できる。
【図面の簡単な説明】
【図1】第1実施例のロードモジュール試験システムの構成図である。
【図2】ルートパターン情報データベースの記憶内容説明図である。
【図3】ロードモジュールの処理フローである。
【図4】所定ルートパターン試験後のデータベースの様子説明図である。
【図5】本発明の第1実施例の試験パターン決定、実行の処理フローである。
【図6】第2実施例のロードモジュール試験システムの構成図である。
【図7】ロードモジュールの処理フローである。
【図8】試験実行トレース情報説明図である。
【図9】ルートパターン情報説明図である。
【図10】本発明の第2実施例の試験パターン決定、実行の処理フローである。
【図11】メインプログラムとサブルーチンの関係説明図である。
【図12】第3実施例のロードモジュール試験システムの構成図である。
【図13】ロードモジュールを構成するソースモジュール(関数)の組み合わせ例である。
【図14】ルートパス/ルートパターン情報説明図である。
【図15】ルートパターン組み合わせ説明図である。
【図16】各関数内の未実行ルートパス説明図である。
【図17】試験実行後のルートパス/ルートパターン情報説明図である。
【図18】本発明の第3実施例の試験パターン決定、実行の処理フローである。
【図19】最小ルートパターンの必要性説明図である。
【図20】最小ルートパターン説明図である。
【図21】第4実施例のロードモジュール試験システムの構成図である。
【図22】ルートパターン情報及び最小ルートパターン情報説明図である。
【図23】試験実行後のルートパターン情報及び最小ルートパターン情報説明図である。
【図24】本発明の第4実施例の試験パターン決定、実行の処理フローである。
【図25】第5実施例の説明図である。
【図26】新旧ルートパターン情報及びルートブロック情報説明図である。
【図27】新旧ルートパス情報説明図である。
【図28】第5実施例のロードモジュール試験システムの構成図である。
【図29】所定のルートパターン試験実行後の新ルートパス情報及び新ルートパターン情報説明図である。
【図30】本発明の第5実施例の試験パターン決定、実行の処理フローである。
【図31】第6実施例のロードモジュール試験システムの構成図である。
【図32】ソースモジュールにおける処理内容と分岐処理群、ルートパス、分岐ルートパス等の対応説明図である。
【図33】ルートパスを用いた処理フローである。
【図34】分岐ルートパスを用いた処理フローである。
【図35】第6実施例のルートパターン選択の処理結果説明図である。
【図36】第6実施例における実行ルートパターン説明図(その1)である。
【図37】第6実施例における実行ルートパターン説明図(その2)である。
【図38】モジュール化によるプログラミング説明図である。
【図39】ロードモジュール作成説明図である。
【符号の説明】
11a,11b・・ソースモジュール
12・・ロードモジュール
13・・データ入力部
14・・試験実行トレース情報格納部
15・・ロードモジュール試験装置
15a・・ルートパターン情報作成部
15b・・ルートパターン実行状況反映部
15c・・ルートパターン情報データベース
15d・・試験ルートパターン決定部
RPT・・ルートパターン情報
RPH・・ルートパス情報
Claims (3)
- プログラム開始から終了までの間に多数のルート(ルートパターン)を備え、各ルートパターンが多数のルートパスで構成されるロードモジュールの試験ルートを決定する試験ルート決定装置において、
ロードモジュールを構成する全ルートパスについて、ルートパスと該ルートパスが試験により実行されたかを示す実行フラグとの対応を示すルートパス情報と、ロードモジュールの開始から終了までの間に存在するルートパターンのそれぞれについて、ルートパターンと該ルートパターンの試験実行の有無を示す実行フラグと該ルートパターンを構成するルートパスのうち試験が未実行のルートパスの数との対応を示すルートパターン情報を作成する情報作成部、
前記ルートパス情報及びルートパターン情報を保存する保存部、
所定のルートパターンの試験が実行されたとき、該ルートパターンに対応する前記実行フラグをオンすると共に、該ルートパターンを構成するルートパスに応じた前記実行フラグをオンし、かつ、前記保存されている各ルートパターンの未実行ルートパスの数を更新する試験実行状況反映部、
試験が未実行のルートパターンのうち、未実行ルートパス数が最大のルートパターンを次に試験するためのルートパターンとして決定する試験ルートパターン決定部、
全ルートパスの実行フラグがオンになったとき、試験ルート決定終了と判断する判断部、
を備え、前記情報作成部は、サブルーチンを呼び出して処理を行うルートパスを含むルートパターンに関して、該ルートパスを除いたルートパスの数と該サブルーチンにおけるルートパスの数の和を該ルートパターンのルートパス数として求め、
前記試験実行状況反映部は、サブルーチンを呼び出して処理を行うルートパスを含むルートパターンに関して、該ルートパスを除いた未実行ルートパスの数及び該サブルーチンにおける未実行ルートパスの数の和を未実行ルートパターンの未実行ルートパス数として求めて前記未実行ルートパスの数を更新する、
ことを特徴とするロードモジュールの試験ルート決定装置。 - プログラム開始から終了までの間に多数のルート(ルートパターン)を備え、各ルートパターンが多数のルートパスで構成されるロードモジュールの試験ルートを決定する試験ルート決定装置において、
ロードモジュールを構成する全ルートパスについて、ルートパスと該ルートパスが試験により実行されたかを示す実行フラグとの対応を示すルートパス情報と、ロードモジュールの開始から終了までの間に存在するルートパターンのそれぞれについて、ルートパターンと該ルートパターンの試験実行の有無を示す実行フラグと該ルートパターンを構成するルートパスのうち試験が未実行のルートパスの数との対応を示すルートパターン情報を作成する情報作成部、
前記ルートパス情報及びルートパターン情報を保存する保存部、
所定のルートパターンの試験が実行されたとき、該ルートパターンに対応する前記実行フラグをオンすると共に、該ルートパターンを構成するルートパスに応じた前記実行フラグをオンし、かつ、前記保存されている各ルートパターンの未実行ルートパスの数を更新する試験実行状況反映部、
試験が未実行のルートパターンのうち、未実行ルートパス数が最大のルートパターンを次に試験するためのルートパターンとして決定する試験ルートパターン決定部、
全ルートパスの実行フラグがオンになったとき、試験ルート決定終了と判断する判断部、
ロードモジュールを修正した場合、修正によって影響を受けないルートパターン部分であって分岐処理を含むルートパターン部分については、最初の分岐処理の分岐条件毎にまとめてブロック化し、ブロック化された各ブロックに前記最初の分岐処理の分岐条件をそ れぞれ対応付けて該分岐条件を入力条件とするルートブロックをそれぞれ作成するルートブロック作成部、
前記ルートパスと該ルートブロックを用いて新たなルートパターンを作成する新ルートパターン作成部、
を備え、前記試験ルートパターン決定部は、未実行ルートパス及び未実行ルートブロックの数が最大の未実行ルートパターンを次に試験すべき試験ルートパターンとして決定し、未実行ルートパス、未実行ルートブロックが存在しなくなるまで試験ルートパターンを順次決定する、
ことを特徴とするロードモジュールの試験ルート決定装置。 - プログラム開始から終了までの間に多数のルート(ルートパターン)を備え、各ルートパターンが多数のルートパスで構成されるロードモジュールの試験ルートを決定する試験ルート決定装置において、
連続して実行される2つのルートパスの組み合わせを最小ルートパターンと定義するとき、ロードモジュールを構成する全ルートパスの最小ルートパターンについて、最小ルートパターンと該最小ルートパターンが試験により実行されたかを示す実行フラグとの対応を示すルートパス情報と、ロードモジュールの開始から終了までの間に存在するルートパターンのそれぞれについて、ルートパターンと該ルートパターンの試験実行の有無を示す実行フラグと該ルートパターンを構成する最小ルートパターンのうち試験が未実行の最小ルートパターンの数との対応を示すルートパターン情報を作成する情報作成部、
前記ルートパス情報及びルートパターン情報を保存する保存部、
所定のルートパターンの試験が実行されたとき、該ルートパターンに対応する前記実行フラグをオンすると共に、該ルートパターンを構成する最小ルートパターンに応じた前記実行フラグをオンし、かつ、前記保存されている各ルートパターンの未実行最小ルートパターンの数を更新する試験実行状況反映部、
試験が未実行のルートパターンのうち、未実行最小ルートパターンの数が最大のルートパターンを次に試験するためのルートパターンとして決定する試験ルートパターン決定部、
全最小ルートパターンの実行フラグがオンになったとき、試験ルート決定終了と判断する判断部、
を備えたことを特徴とするロードモジュールの試験ルート決定装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03587998A JP4190610B2 (ja) | 1998-02-18 | 1998-02-18 | ロードモジュールの試験ルート決定装置 |
US09/115,368 US6330692B1 (en) | 1998-02-18 | 1998-07-14 | Method of determining the route to be tested in a load module test |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03587998A JP4190610B2 (ja) | 1998-02-18 | 1998-02-18 | ロードモジュールの試験ルート決定装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11232137A JPH11232137A (ja) | 1999-08-27 |
JP4190610B2 true JP4190610B2 (ja) | 2008-12-03 |
Family
ID=12454297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03587998A Expired - Lifetime JP4190610B2 (ja) | 1998-02-18 | 1998-02-18 | ロードモジュールの試験ルート決定装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6330692B1 (ja) |
JP (1) | JP4190610B2 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959431B1 (en) * | 1999-05-13 | 2005-10-25 | Compuware Corporation | System and method to measure and report on effectiveness of software program testing |
JP2000347900A (ja) * | 1999-06-02 | 2000-12-15 | Fujitsu Ltd | 入力パラメータ生成装置、その方法及び記録媒体 |
US6513133B1 (en) * | 1999-06-29 | 2003-01-28 | Microsoft Corporation | Uniformly distributed induction of exceptions for testing computer software |
US7028290B2 (en) * | 2002-04-29 | 2006-04-11 | Microsoft Corporation | Method and apparatus for prioritizing software tests |
WO2004107087A2 (en) * | 2003-05-29 | 2004-12-09 | Flextronics Design Limited | Generating test cases |
US7210124B2 (en) * | 2003-06-16 | 2007-04-24 | Microsoft Corporation | Reformulating resources with nodes reachable from defined entry points |
US7308684B2 (en) * | 2003-06-16 | 2007-12-11 | Microsoft Corporation | Classifying software and reformulating resources according to classifications |
US7496904B2 (en) * | 2003-06-26 | 2009-02-24 | Microsoft Corporation | Mining dependencies for testing and risk management |
US20040268302A1 (en) * | 2003-06-26 | 2004-12-30 | Microsoft Corporation | Framework for determining and exposing binary dependencies |
JP2005346414A (ja) * | 2004-06-03 | 2005-12-15 | Fujitsu Ltd | トレース処理プログラム、方法及び装置 |
JP5140905B2 (ja) * | 2005-02-01 | 2013-02-13 | 富士通セミコンダクター株式会社 | 半導体装置の試験システム及び試験方法 |
US8000952B2 (en) * | 2006-03-09 | 2011-08-16 | International Business Machines Corporation | Method and system for generating multiple path application simulations |
US7793267B2 (en) * | 2006-10-13 | 2010-09-07 | International Business Machines Corporation | Computer software test coverage analysis |
JP5595304B2 (ja) * | 2011-02-24 | 2014-09-24 | 三菱電機株式会社 | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム |
JP5743663B2 (ja) * | 2011-04-13 | 2015-07-01 | 日本電気通信システム株式会社 | テスト支援システム、テスト支援方法、及びプログラム |
JP6882892B2 (ja) * | 2013-12-18 | 2021-06-02 | アビニシオ テクノロジー エルエルシー | データ生成 |
US10496402B1 (en) * | 2017-09-28 | 2019-12-03 | Amdocs Development Limited | System, method, and computer program for defining and utilizing minimal testable values for software project development and operations |
JP7077909B2 (ja) * | 2018-10-22 | 2022-05-31 | 富士通株式会社 | デッドコード解析プログラム、デッドコード解析方法及びデッドコード解析装置 |
US11157271B2 (en) * | 2019-12-03 | 2021-10-26 | Sap Se | Documentation generation from test automate |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623012A (en) * | 1969-06-30 | 1971-11-23 | Ibm | Accounting system with program by example facilities |
US4499596A (en) * | 1982-06-28 | 1985-02-12 | International Business Machines Corporation | Adaptive facsimile compression using a dynamic extendable decision network |
US5165025A (en) * | 1988-10-06 | 1992-11-17 | Lass Stanley E | Interlacing the paths after a conditional branch like instruction |
EP0390339B1 (en) * | 1989-03-29 | 1996-01-03 | Hewlett-Packard Company | Path measurement and analysis tool for evaluating the performance of software designs |
US5067129A (en) * | 1989-08-16 | 1991-11-19 | International Business Machines Corp. | Service processor tester |
JPH0475139A (ja) * | 1990-07-18 | 1992-03-10 | Toshiba Corp | ループ並列化装置 |
JPH04237342A (ja) | 1991-01-21 | 1992-08-25 | Omron Corp | プログラムテスト装置 |
JPH04260941A (ja) | 1991-01-25 | 1992-09-16 | Mitsubishi Electric Corp | テストデータの自動生成装置 |
US5297150A (en) * | 1992-06-17 | 1994-03-22 | International Business Machines Corporation | Rule-based method for testing of programming segments |
US5517629A (en) * | 1992-08-26 | 1996-05-14 | Boland; R. Nick K. | Methods for analyzing computer program performance |
US5551047A (en) * | 1993-01-28 | 1996-08-27 | The Regents Of The Univeristy Of California | Method for distributed redundant execution of program modules |
US5394347A (en) * | 1993-07-29 | 1995-02-28 | Digital Equipment Corporation | Method and apparatus for generating tests for structures expressed as extended finite state machines |
US5729676A (en) * | 1993-12-10 | 1998-03-17 | Nec Corporation | Method of generating data for evaluating programs |
JPH07219819A (ja) | 1993-12-10 | 1995-08-18 | Nec Corp | プログラム評価データ作成方法 |
US5805894A (en) * | 1995-02-13 | 1998-09-08 | Kuck & Associates, Inc. | Method inside an optimizing compiler for analyzing assertions and redirecting control flow in programs |
US5652899A (en) * | 1995-03-03 | 1997-07-29 | International Business Machines Corporation | Software understanding aid for generating and displaying simiplified code flow paths with respect to target code statements |
US5933622A (en) * | 1997-11-08 | 1999-08-03 | Hewlett-Packard Company | Method for efficient handling of asynchronous events in a dynamic translation system |
-
1998
- 1998-02-18 JP JP03587998A patent/JP4190610B2/ja not_active Expired - Lifetime
- 1998-07-14 US US09/115,368 patent/US6330692B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11232137A (ja) | 1999-08-27 |
US6330692B1 (en) | 2001-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4190610B2 (ja) | ロードモジュールの試験ルート決定装置 | |
US6408430B2 (en) | Interactive software testing system and method | |
US8584108B2 (en) | Method and apparatus for analyzing software | |
Harrold et al. | A methodology for controlling the size of a test suite | |
Gupta et al. | An approach to regression testing using slicing. | |
CN100547562C (zh) | 自动生成可再现运行时问题的单元测试用例的方法和系统 | |
US20050204344A1 (en) | Program analysis device, analysis method and program of same | |
US7571427B2 (en) | Methods for comparing versions of a program | |
JP7172435B2 (ja) | 抽象コードグラフを用いたソフトウェアの表現 | |
US9348731B2 (en) | Tracing the execution path of a computer program | |
Xu et al. | Regression test selection for AspectJ software | |
JP3113792B2 (ja) | 最適化装置 | |
JP2004302706A (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
CN101739339A (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
US5923883A (en) | Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations | |
US20170344457A1 (en) | System for expression evaluation at debug time | |
US8589898B2 (en) | Method and apparatus for analyzing software including a calibrated value | |
JP4050339B2 (ja) | 並行プログラム作成支援装置及び並行プログラム作成方法並びに並行プログラム実行装置 | |
US6728954B1 (en) | Method for allowing execution management of optimized code | |
US20030177471A1 (en) | System and method for graphically developing a program | |
JP2005338987A (ja) | 例外テスト支援プログラム及び例外テスト支援装置 | |
US20050050524A1 (en) | Generating software test information | |
CN112817599B (zh) | 软件函数形式语义及形式化证明脚本自动生成方法 | |
Baldo et al. | Preventing Feature Interaction with Optimization Algorithms | |
JP3758991B2 (ja) | 目的プログラムの実行ステップ数調整方法とその調整装置およびプログラムを記憶した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080820 |
|
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: 20080916 |
|
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: 20080917 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110926 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120926 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120926 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130926 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |