JPH1115693A - ソフトウェアのテスト装置および記録媒体 - Google Patents

ソフトウェアのテスト装置および記録媒体

Info

Publication number
JPH1115693A
JPH1115693A JP10131360A JP13136098A JPH1115693A JP H1115693 A JPH1115693 A JP H1115693A JP 10131360 A JP10131360 A JP 10131360A JP 13136098 A JP13136098 A JP 13136098A JP H1115693 A JPH1115693 A JP H1115693A
Authority
JP
Japan
Prior art keywords
test
software
result
source file
information
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.)
Withdrawn
Application number
JP10131360A
Other languages
English (en)
Inventor
Masahiro Noguchi
正浩 野口
Chisato Kotani
千里 小谷
Takeshi Sakaguchi
雄 坂口
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.)
Nippon Steel Corp
Original Assignee
Nippon Steel 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 Nippon Steel Corp filed Critical Nippon Steel Corp
Priority to JP10131360A priority Critical patent/JPH1115693A/ja
Publication of JPH1115693A publication Critical patent/JPH1115693A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェアのテスト作業全体を自動化し、
テストをより効率的に行えるようにする。 【解決手段】 ソフトウェアのテストで行われる複数の
内部作業をそれぞれ実行する複数種類の内部作業手段
(テストツール)101〜105を、あるツールで使用
すべきテスト情報に変化があったときに上記ツールを起
動するように制御するテスト制御手段106を設け、あ
るテスト情報に変化があったときにそのテスト情報を用
いて処理を行うツールを起動して処理を実行し、さら
に、この処理により生成されたテスト情報を用いて処理
を行う他のツールを起動して処理を実行するというよう
にして、テスト制御手段106の制御により各ツール1
01〜105を順次起動し、各種テスト情報を順次生成
しながらソフトウェアのテストを自動実行できるように
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はソフトウェアのテス
ト装置および記録媒体に関し、特に、プログラム開発工
程のテスト段階において、個々のモジュールについて単
体テストを行う際に使用するテスト装置に用いて好適な
ものである。
【0002】
【従来の技術】近年、コンピュータシステムの利用はま
すます広がってきており、その勢いは留まるところを知
らない。これに伴い、これらのコンピュータシステムに
搭載するために開発されるソフトウェア(プログラム)
の量も急増している。そして、この開発工程の一環とし
て行うべきソフトウェアのテストも膨大な量となってき
ている。
【0003】ところが、実際のソフトウェア開発工程で
は、最終的な製品の納期が決められる一方で、設計や製
造などのテスト以外の作業により多くの労力を要するた
め、テスト作業に十分な人的資源を投入することは現実
上困難な場合が多く、その効率化が望まれている。特
に、ソフトウェア中の個々のモジュール(プログラム部
品等)を他のモジュールと切り離して単独でテストする
単体テストは、その作業内容は繰り返しが多く比較的単
調で、自動化への要望が特に強い分野である。
【0004】
【発明が解決しようとする課題】このような背景のも
と、単体テスト作業の自動化への試みが続けられてきて
いるが、従来、この自動化は、単体テストで行われる複
数の内部作業のうちのどれか1つ、あるいは幾つかの作
業だけに対象を絞って行われており、単体テスト作業全
体を通して行われることはなかった。
【0005】すなわち、単体テストは、大別して、テス
ト対象を実行するためのテストドライバの作成、テスト
の際に使用するテストデータの作成、テストドライバを
利用してのテスト対象の実行、テスト実行結果の照合お
よびテスト結果報告の各内部作業から成るが、単体テス
トを支援するためのテストツールは、各内部作業毎、し
かもその多くはテスト実行作業を更に分割した作業ごと
に別個に開発されていた。
【0006】特に、テスト評価作業を支援するためのツ
ールは、機能的に乏しいものであった。すなわち、従来
のテスト評価支援ツールでは、テスト実行結果の照合
(テスト実行出力と、ソフトウェア仕様書などから期待
される正解値(以下、これをテストオラクルと呼ぶ)と
の照合)を行い、この照合結果を出力するのみであり、
実際の製品において問題となる可能性のある他の要素、
例えばメモリエラー等のチェックを含めた総合的な評価
は行えなかった。
【0007】図2は、単体テスト作業の一般的な流れを
示す図である。ここで、図2に示した各手段301〜3
05は、各々別個に開発されたテストツールが持つ機能
であるとする。また、本明細書では、符号201〜20
7で示す各情報を“テスト情報”と総称することにす
る。
【0008】まず最初に、ソフトウェア開発者は、テス
トデータ生成手段301を用いて、テストデータ202
をテスト対象ソースファイル201から生成する。ま
た、単体テストを行う際には、テスト対象はそれ単独で
は動作できないので、上記テストデータ202の他に、
そのテスト対象を動かすためのテストドライバが必要に
なる。そのためソフトウェア開発者は、テストドライバ
生成手段302を用いて、テストドライバソースファイ
ル203を上記テスト対象ソースファイル201から生
成する。
【0009】次にソフトウェア開発者は、テスト実行手
段303を用いて、テスト対象ソースファイル201か
ら生成したテストプログラムを実行する。このときテス
ト実行手段303は、テスト対象ソースファイル201
とテストドライバソースファイル203とからテストプ
ログラム(実行ファイル)を作成し、テストデータ20
2を用いてそのテストプログラムを実行する。そして、
そのテスト実行結果204を出力する。
【0010】また、テスト結果照合手段304は、テス
ト実行手段303から出力されるテスト実行結果204
とテストオラクル205(これは、テストデータ202
をもとにソフトウェア開発者が作成する)とを照合し
て、テスト照合結果206として出力する。
【0011】さらに、テスト結果レポート作成手段30
5は、上記テスト照合結果206にテスト条件などの情
報を付加してテスト結果レポート207として出力す
る。ソフトウェア開発者は、このテスト結果レポート2
07を参照して、作成したソフトウェアに欠陥があった
かどうかを検証する。そして、欠陥を発見した場合はそ
の欠陥を除去するためにプログラムのデバッグを行い、
デバッグ後のプログラムについてもう一度単体テストを
実行する。
【0012】また、テスト結果レポート207上では誤
りを発見できない場合でも、そのとき用いたテストデー
タ202ではたまたま誤りが発生しなかったということ
も考えられるため、別のテストデータを作って再び単体
テストを行う。そして、このような処理を繰り返して行
い、テストが十分であると判断した時点でテストを終了
する。このようにして、ソフトウェア仕様書の通りのプ
ログラムを作成していく。
【0013】ところが、図2に示した各手段(各テスト
ツール)301〜305は、それらの受け持つ作業が単
体テストの全作業中の一部分であり、別々の目的で開発
されているため、ある作業を受け持つツールと別の作業
を受け持つツールとの間で伝えられるべきテスト情報の
種類が食い違ったり、情報の形式が異なったりすること
が多かった。また、1つのツールで支援される範囲は、
単体テスト全体に及ぶことはなかった。
【0014】したがって、人間がテスト情報の過不足を
調整したり、ツール間でテスト情報を伝達するためにデ
ータファイルの形式を変換したりする必要があった。ま
た、テスト作業の進行に合わせて、その都度人間が適切
なツールを選択し、それを操作する必要があった。さら
に、上述のように単体テストは同じ作業を何回も繰り返
して行うが、以前に行ったテストの際に使用したテスト
情報がそのまま使えるにも拘らず作り直してしまうこと
が多く、余計な労力がかかっていた。
【0015】しかしながら、これら人間によって行われ
ている作業は、本来余分なものであり、各内部作業が自
動化されたとしても依然として単体テスト作業に多大な
労力がかかってしまっているという問題があった。ま
た、これらの作業を人間が行うことによって人為的なミ
スが生じる恐れもあり、テストの信頼性に欠けるという
問題もあった。さらに、テスト評価作業では、テスト実
行結果とテストオラクルとを比較することができるだけ
で、総合的なテスト評価を行うことができないという問
題もあった。
【0016】本発明は、このような問題を解決するため
に成されたものであり、ソフトウェアのテスト作業全体
を自動化し、テストをより効率的に行えるようにすると
ともに、テスト評価作業の品質を向上させることを目的
とする。例えば、単体テストの各内部作業間でのテスト
情報の伝達を正確に行えるようにし、これにより、単体
テスト全体の作業効率と作業品質とを共に向上させるこ
とを目的とする。
【0017】
【課題を解決するための手段】本発明によるソフトウェ
アのテスト装置は、ソフトウェアのテストで行われる一
連の内部作業をそれぞれ実行し、各内部作業に対応した
テスト情報を出力する複数種類の内部作業手段を備えた
ソフトウェアのテスト装置であって、上記複数種類の内
部作業手段を制御し、任意の内部作業手段で使用すべき
テスト情報に変化があったときに上記任意の内部作業手
段を起動するようにするテスト制御手段を設けたことを
特徴とする。ここで、上記複数種類の内部作業手段間で
伝達される各種テスト情報は、情報形式が統一されてい
る。
【0018】本発明の他の特徴とするところは、上記複
数種類の内部作業手段間で伝達される各種テスト情報を
一括して格納するテスト情報格納手段を備え、上記テス
ト制御手段は、上記テスト情報格納手段に格納される各
種テスト情報の変化を見て上記複数種類の内部作業手段
を制御することを特徴とする。
【0019】上記複数種類の内部作業手段は、例えば、
テスト対象ソースファイルからテストデータを自動生成
するテストデータ生成手段と、上記テスト対象ソースフ
ァイルからテストドライバソースファイルを自動生成す
るテストドライバ生成手段と、上記生成されたテストド
ライバおよびテストデータを用いて上記テスト対象ソー
スファイルのテストを自動実行するテスト実行手段と、
上記テスト実行手段のテスト実行結果とあらかじめ作成
されたテストオラクルとを照合するテスト結果照合手段
と、上記テスト結果照合手段の出力に基づいてテスト結
果レポートを作成するテスト結果レポート作成手段とで
構成される。
【0020】ここで、上記テスト制御手段は、例えば、
上記テスト対象ソースファイルに変化があったときに、
上記テストドライバ生成手段を起動するように制御す
る。この場合において、上記テスト対象ソースファイル
の少なくとも入出力インタフェース部分に変化があった
ときに、上記テストドライバ生成手段を起動するように
制御しても良い。
【0021】また、上記テストデータ生成手段における
テストデータ生成方法を指定するためのテストデータ生
成方法指定手段を備え、上記テスト制御手段は、上記テ
スト対象ソースファイルに変化があったか、上記テスト
データ生成方法の指定に変化があったときに、上記テス
トデータ生成手段を起動するように制御する。この場合
において、上記テスト制御手段は、テスト対象ソースフ
ァイル中の少なくともテストデータ生成に用いられる部
分に変化があったときに、テストデータ生成手段を起動
するように制御しても良い。
【0022】また、上記テスト制御手段は、上記テスト
対象ソースファイルに変化があったか、上記テストドラ
イバソースファイルに変化があったか、上記テストデー
タに変化があったときに、上記テスト実行手段を起動す
るように制御する。また、上記テスト実行手段より出力
されるテスト実行結果に変化があったか、上記テストオ
ラクルに変化があったときに、上記テスト結果照合手段
を起動するように制御する。また、上記テスト結果照合
手段より出力されるテスト照合結果に変化があったとき
に、上記テスト結果レポート作成手段を起動するように
制御する。
【0023】本発明のその他の特徴とするところは、上
記複数種類の内部作業手段は、テスト対象のプログラム
内に潜むメモリ処理関連のバグを検出するメモリエラー
検出手段と、上記テスト対象のプログラムに対してどの
程度テストが達成しているかを定量的に検出するテスト
進捗検出手段と、の少なくとも一方を更に備え、上記テ
スト結果照合手段の出力に加えて、上記メモリエラー検
出手段の出力および上記テスト進捗検出手段の出力の少
なくとも一方を統合して評価を行うテスト評価手段を備
えたことを特徴とする。
【0024】ここで、上記テスト評価手段は、上記テス
ト結果照合手段の出力、上記メモリエラー検出手段の出
力、上記テスト進捗検出手段の出力の各記載内容を適切
な形式にまとめ、1つのファイルとして出力するように
しても良い。
【0025】また、本発明のコンピュータ読み取り可能
な記録媒体は、ソフトウェアのテストで行われる一連の
内部作業をそれぞれ実行し、各内部作業に対応したテス
ト情報を出力する複数種類の内部作業手段を備えたソフ
トウェアのテスト装置において、上記複数種類の内部作
業手段を制御し、任意の内部作業手段で使用すべきテス
ト情報に変化があったときに上記任意の内部作業手段を
起動するようにするテスト制御手段としてコンピュータ
を機能させるためのプログラムを記録したことを特徴と
する。
【0026】本発明は上記技術手段より成るので、ある
テスト情報に変化があると、そのテスト情報を用いて処
理を行う内部作業手段がテスト制御手段の制御により起
動され、処理が実行される。そして、この処理により生
成されたテスト情報が新規なものであれば、この生成さ
れたテスト情報を用いて処理を行う他の内部作業手段が
起動され、処理が実行される。このようにして、テスト
制御手段の制御により各内部作業手段が順次起動され、
各種テスト情報を順次生成しながらソフトウェアのテス
トが自動実行されていくようになる。
【0027】このとき、各内部作業手段間で伝達される
テスト情報の形式は統一されているので、各種テスト情
報の形式統一が図られ、ユーザが形式統一のためにデー
タの過不足を調整したり変更を加えたりしなくても、各
内部作業手段でテスト情報を有効に利用してテストを自
動実行することが可能となる。
【0028】本発明の他の特徴によれば、複数種類の内
部作業手段間で伝達される各種テスト情報はテスト情報
格納手段に一括して格納され、テスト制御手段により一
元管理されるので、例えば再テストを行う場合などにお
いて、以前に生成されたテスト情報と同じものが使える
ときには、該当する内部作業手段は起動されず、テスト
情報格納手段に既に格納されているものを再利用するこ
とが可能となる。
【0029】本発明のその他の特徴によれば、テスト評
価作業において、テスト実行結果とテストオラクルとを
比較した結果だけでなく、テスト対象のプログラム内に
潜むメモリ処理関連のバグの検出結果や、テスト対象の
プログラムに対してどの程度テストが達成しているかの
定量的な検出結果が合わせて評価されるようになるの
で、実際の製品に合わせた総合的なテスト評価を行うこ
とが可能となる。
【0030】
【発明の実施の形態】以下に、本発明の一実施形態を図
面に基づいて説明する。なお、図2で説明した単体テス
ト作業における符号201〜207の各テスト情報は、
本実施形態においても、情報の形式が統一されているこ
とを除けば同様の情報であるので、ここでは同一符号を
用いることとする。各テスト情報の形式についての説明
は後述する。
【0031】図1は、本発明の第1の実施形態によるソ
フトウェアのテスト装置の機能構成を示すブロック図で
ある。図1に示すように、本実施形態のソフトウェアの
テスト装置は、テストデータ生成手段101と、テスト
ドライバ生成手段102と、テスト実行手段103と、
テスト結果照合手段104と、テスト結果レポート作成
手段105と、テスト制御手段106と、テスト情報格
納手段107と、テストデータ生成方法指定手段108
とを備えており、これらは、例えばCPU、ROMおよ
びRAMなどからなるマイクロコンピュータにより構成
されている。これら各手段のうち、101〜105で示
す各手段は、ソフトウェアの単体テストで行われる一連
の内部作業をそれぞれ実行する内部作業手段(テストツ
ール)として機能する。
【0032】すなわち、上記テストデータ生成手段10
1は、テスト対象ソースファイルからテストデータを自
動生成するものである。テストドライバ生成手段102
は、上記テスト対象ソースファイルからテストドライバ
ソースファイルを自動生成するものである。テスト実行
手段103は、上記テスト対象ソースファイルとテスト
ドライバソースファイルとからテストプログラムを作成
し、上記生成したテストデータを用いてテストプログラ
ムを自動実行するものである。テスト結果照合手段10
4は、上記テスト実行手段103のテスト実行結果と、
あらかじめユーザにより作成されたテストオラクルとを
照合するものである。また、テスト結果レポート作成手
段105は、上記テスト結果照合手段104の出力に基
づいてテスト結果レポートを作成するものである。
【0033】なお、図1の各手段101〜105は、図
2に示した各手段301〜305と機能的には同じであ
るが、テスト制御手段106およびテスト情報格納手段
107とのインタフェースを持つ点で異なっている。ま
た、図1の各手段101〜105を用いて行う単体テス
ト全体の流れも図2に示した流れと同様であるが、図2
に示した各種テスト情報201〜207は、本実施形態
では全てテスト情報格納手段107に格納されてテスト
制御手段106により管理され、必要に応じて読み出さ
れるようになっている。
【0034】上記テスト制御手段106は、ユーザから
ソフトウェアに対するテスト実施指示を受けると、上述
の各テストツール101〜105を下記のように制御す
る。すなわち、あるツールで使用すべきテスト情報に変
化があったときに、そのツールを起動するように制御す
る。つまり、上記テスト情報格納手段107に格納され
る各種テスト情報に変化があったかどうかを監視し、ど
のテストツールを起動するか、つまりどのテスト情報を
新しく作らなければならないかを決定する。
【0035】例えば、テスト制御手段106は、テスト
対象ソースファイル201が新規登録、変更されている
ときに、テストドライバ生成手段102を起動するよう
に制御する。なお、テストドライバは、テスト対象ソー
スファイル201の入出力インタフェース部分に変化が
なければ同じものが使えるので、本実施形態では、テス
ト対象ソースファイル201の少なくとも入出力インタ
フェース部分に変化があったときに、テストドライバ生
成手段102を起動するように制御する。
【0036】また、上記テスト制御手段106は、テス
ト対象ソースファイル201が新規登録、変更されてい
るか、テストデータ202の生成方法の指定が変更され
ているときに、テストデータ生成手段101を起動する
ように制御する。テストデータ生成手段101は、テス
トデータ202を生成するための方法を幾つか備えてお
り、ユーザは、このテストデータ生成手段101におけ
るテストデータ生成方法を、テストデータ生成方法指定
手段108を使って指定することができる。なお、本実
施形態では、テストデータの生成においてテスト対象ソ
ースファイル201の入出力インタフェースの情報のみ
を用いているので、テスト対象ソースファイル201の
少なくとも入出力インタフェース部分に変化があったと
きに、テストデータ生成手段101を起動するように制
御する。
【0037】また、上記テスト制御手段106は、テス
ト対象ソースファイル201が新規登録、変更されてい
るか、テストドライバソースファイル203が新規生
成、変更されているか、上記テストデータ202が新規
生成、変更されているときに、テスト実行手段103を
起動するように制御する。
【0038】また、上記テスト制御手段106は、テス
ト実行結果204が新規生成、変更されているか、テス
トオラクル205が新規生成、変更されているときに、
テスト結果照合手段104を起動するように制御する。
また、上記テスト制御手段106は、テスト照合結果2
06が新規生成、変更されているときに、テスト結果レ
ポート作成手段105を起動するように制御する。
【0039】テスト制御手段106により起動されたテ
ストツールは、その処理で必要となるテスト情報をテス
ト情報格納手段107から取り込み、取り込んだ情報を
用いて処理を行う。そして、これにより生成したテスト
情報を再びテスト情報格納手段107に格納する。この
ようにして、各テストツール101〜105間で各種テ
スト情報がテスト情報格納手段107を介して伝達され
ていく。
【0040】以下、図1に示した本実施形態によるソフ
トウェアのテスト装置の動作を、図3〜図5に示す具体
例を参照しながら説明する。図3は、テスト対象ソース
ファイルを新規に登録した場合の動作を説明するための
図である。すなわち、まず最初に、図3(a)に示すテ
スト対象ソースファイル201-1を新規登録したとす
る。なお、ここでは説明を分かりやすくするために、一
例として四捨五入を行う簡単なプログラムを示してい
る。
【0041】このようにテスト対象ソースファイル20
-1が新規登録されたので、ユーザからテスト実施の指
示があったときにテスト制御手段106は、テストデー
タ生成手段101とテストドライバ生成手段102とを
起動する。これにより、テストドライバ生成手段102
は、テスト対象ソースファイル201-1から図3(b)
に示すようなテストドライバソースファイル203-1
自動生成し、テストデータ生成手段101は、同じくテ
スト対象ソースファイル201-1から図3(c)のよう
なテストデータ202-1を自動生成する。なお、ここで
は5つのテストデータを生成しているが、この数には限
定されない。
【0042】このようにしてテストドライバソースファ
イル203-1とテストデータ202-1とが新規生成され
たので、次にテスト制御手段106は、テスト実行手段
103を起動する。テスト実行手段103は、新規生成
されたテストドライバソースファイル203-1とテスト
データ202-1とを用いてテストを実行する。このとき
テストドライバは、図3(c)に示したテストデータを
1個読み込んではテストプログラムを1回実行するとい
う処理を5つのテストデータについて順次行うことによ
り、図3(d)に示すテスト実行結果204-1を生成す
る。
【0043】上記テスト実行結果204-1が生成された
ら、次にテスト制御手段106はテスト結果照合手段1
04を起動する。テスト結果照合手段104は、図3
(d)に示したテスト実行結果204-1と、ユーザによ
りあらかじめ生成された図3(e)に示すテストオラク
ル205-1とを照合し、図3(f)に示すようなテスト
照合結果206-1を自動生成する。ここでは、第4番目
のテストデータを用いたときに不一致が生じたので、そ
の部分が誤り(fail)として出力されている。
【0044】次に、テスト制御手段106は、上述のよ
うにしてテスト照合結果206-1が新規生成されたこと
に対応して、テスト結果レポート作成手段105を起動
する。テスト結果レポート作成手段105は、図3
(f)に示したテスト照合結果206-1から図3(g)
に示すテスト結果レポート207-1を自動生成する。テ
スト結果レポートは、例えばテスト実施日(date)、実
施者(user)、実施マシン(machine )、使用オペレー
ティングシステム(OS)などのテスト条件を付加してテ
スト結果(result)を示したものである。なお、付加す
るテスト条件は、これらのものに限定されない。
【0045】以上のように、テスト対象ソースファイル
201-1を新規登録した場合は、テスト制御手段106
は各テストツール101〜105を順次起動し、テスト
情報202-1〜207-1(テストオラクル205-1を除
く)を順次生成しながら単体テストを自動実行してい
く。このとき各種テスト情報201-1〜207-1は、上
述したように全てテスト情報格納手段107に格納さ
れ、必要に応じて読み出されるようになっている。
【0046】ここで注目したいのは、図3(d)〜
(f)に示したように、格納されるテスト情報の形式が
統一されているということである。すなわち、本実施形
態では、データの始めに#とデータ番号とを書き、その
後に実際の数値を書くというようにしてテスト情報の形
式を統一している。これにより、各ツール間で伝達され
るテスト情報の形式統一が図られ、ユーザが形式統一の
ためにデータの過不足を調整したり変更を加えたりしな
くても、テスト情報を有効に利用することが可能とな
る。なお、ここで示したテスト情報の形式はあくまでも
一例に過ぎず、形式が統一されているのであればどのよ
うな形式であっても構わない。
【0047】上述の図3の例では、図3(a)に示した
テスト対象ソースファイル201-1中に誤りがあったた
めに、図3(g)のテスト結果レポート207-1は、テ
スト実行結果に誤りが発生したものとして出力されてい
る。したがって、この場合ユーザは、テスト対象ソース
ファイル201-1を検証し、エディタなどを用いて誤り
があった部分を修正する必要がある。
【0048】図4は、ユーザが図3(g)のテスト結果
レポート207-1を見てデバッグなどを行い、図3
(a)のテスト対象ソースファイル201-1を修正して
再びテストを行う場合の動作を説明するための図であ
る。ここでは、図3(a)に示したテスト対象ソースフ
ァイル201-1中の上から5行目と7行目とを修正し
て、図4(a)のようなテスト対象ソースファイル20
-2を本実施形態のソフトウェアのテスト装置に与えた
とする。
【0049】ここで、修正した図4(a)のテスト対象
ソースファイル201-2は、修正前の図3(a)のテス
ト対象ソースファイル201-1と入出力インタフェース
部分は変化していない。したがって、この場合テスト制
御手段106は、テストドライバ生成手段102を起動
しない。上述したように、各種テスト情報はテスト情報
格納手段107に一括して格納され、テスト制御手段1
06により一元管理されているので、以前に生成したテ
ストドライバソースファイル203-1をそのまま再利用
することができる。
【0050】また、上述のように、修正した図4(a)
のテスト対象ソースファイル201-2は、修正前の図3
(a)のテスト対象ソースファイル201-1と入出力イ
ンタフェース部分が変化していないので、この場合テス
ト制御手段106は、テストデータ生成手段101も起
動していない。そして、以前に生成したテストデータ2
02-1をそのまま再利用するようにしている。
【0051】しかし、テスト対象ソースファイル201
自体には修正が加えられているので、それに対応してテ
スト制御手段106は、テスト実行手段103を起動す
る。テスト実行手段103は、1回目のテスト実行時に
テスト情報格納手段107に格納されたテストデータ2
02-1とテストドライバソースファイル203-1とを用
いてテストを実行し、図4(b)に示すテスト実行結果
204-2を生成する。上記テスト実行結果204-2が生
成されたら、次にテスト制御手段106は、テスト結果
照合手段104を起動する。
【0052】テスト結果照合手段104は、図4(b)
に示したテスト実行結果204-2と、図3(e)に示し
たテストオラクル205-1(テストデータ202-1を再
利用しているので、テストオラクル205-1も再利用す
ることができる)とを照合し、図4(c)に示すような
テスト照合結果206-2を自動生成する。ここでは、テ
スト対象ソースファイル201-1の修正により不一致が
なくなり、全ての結果が正常(pass)として出力されて
いる。
【0053】次に、テスト制御手段106は、上述のよ
うにしてテスト照合結果206-2が新規生成されたこと
に対応して、テスト結果レポート作成手段105を起動
する。テスト結果レポート作成手段105は、図4
(c)に示したテスト照合結果206-2から図4(d)
に示すテスト結果レポート207-2を自動生成する。
【0054】このように、本実施形態では、再テストを
行う場合などにおいて、以前に生成されたテスト情報と
同じものが使えるときには再度生成しないように制御さ
れ、テスト情報格納手段107に格納されているものが
読み出されるように制御される。これにより、以前に行
ったテストの際に使用したテスト情報(図4の例ではテ
ストデータ202-1とテストドライバソースファイル2
03-1とテストオラクル205-1)を再利用することが
でき、必要最低限のテスト情報だけを生成すれば良くな
り、新たに作業を行う労力を削減して単体テストの作業
効率を向上させることができる。
【0055】なお、図4(d)のようにテスト実行結果
に一応は誤りが発生していない場合でも、テストの信頼
性を増すために別のテストデータを作って再び単体テス
トを行うことが一般である。図5は、その場合の動作を
説明するための図であり、ここでは、ユーザがテストデ
ータ生成方法指定手段108を使ってテストデータ生成
方法を変更し、テストデータ202を生成し直した場合
を想定している。
【0056】この場合、テスト対象は図4(a)のソー
スファイル201-2と同一であるので、テスト制御手段
106はテストドライバ生成手段102を起動せず、図
3(b)のテストドライバソースファイル203-1を再
び利用する。一方、テスト制御手段106は、ユーザが
テストデータ生成方法指定手段108を使ってテストデ
ータ生成方法を変更したことに対応して、テストデータ
生成手段101を起動する。
【0057】テストデータ生成手段101は、新しく指
定された生成方法に基づいて、テスト対象ソースファイ
ル201-2から図5(a)のようなテストデータ202
-2を自動生成する。なお、ここでは、6つのテストデー
タを生成している。この場合ユーザは、生成されたテス
トデータ202-2からそれに対応した図5(c)のテス
トオラクル205-2を生成する。
【0058】次に、テスト制御手段106は、テストデ
ータ202-2が新規生成されたことに対応して、テスト
実行手段103を起動する。テスト実行手段103は、
新規生成されたテストデータ202-2を用いてテストを
実行し、図5(b)に示すテスト実行結果204-3を生
成する。
【0059】上記テスト実行結果204-3が生成された
ら、次にテスト制御手段106は、テスト結果照合手段
104を起動する。テスト結果照合手段104は、図5
(b)に示したテスト実行結果204-3と、ユーザによ
りあらかじめ生成された図5(c)に示すテストオラク
ル205-2とを照合し、図5(d)に示すようなテスト
照合結果206-3を自動生成する。ここでも全ての結果
が正常(pass)として出力されている。
【0060】次に、テスト制御手段106は、上述のよ
うにしてテスト照合結果206-3が新規生成されたこと
に対応して、テスト結果レポート作成手段105を起動
する。テスト結果レポート作成手段105は、図5
(d)に示したテスト照合結果206-3から図5(e)
に示すテスト結果レポート207-3を自動生成する。
【0061】以上のように、2回目のテストでは、テス
ト対象ソースファイル201-1を新規に登録した場合の
1回目のテストに比べて、テストデータ202とテスト
ドライバソースファイル203とテストオラクル205
の生成を行わくても済み、3回目のテストでは、テスト
ドライバソースファイル203の生成を行わくても済
む。これにより、単体テストの作業効率を格段に向上さ
せることができる。
【0062】次に、本発明の第2の実施形態について説
明する。上記第1の実施形態では、テスト評価作業を支
援する際に、テスト実行結果204とテストオラクル2
05とを比較するだけであったが、以下に述べる第2の
実施形態では、例えば、メモリエラーの検出結果やテス
トカバレッジの計測結果を合わせて総合的にテスト結果
を評価するようにしている。テストカバレッジとは、テ
スト対象のプログラムに対するテストの達成度を定量的
に測定するための指標の1つである。
【0063】図6は、本発明の第2の実施形態によるソ
フトウェアのテスト装置の機能構成を示すブロック図で
あり、図7は、本実施形態によるテスト装置を用いた単
体テスト作業の流れを示す図である。なお、図6および
図7において、図1および図2に示した符号と同一の符
号を付したものは同一のものであるので、これについて
の詳細な説明は省略する。
【0064】図6に示すように、本実施形態のテスト実
行手段603は、テスト実行ツール603aと、メモリ
エラー検出ツール603bと、カバレッジ計測ツール6
03cとを備える。テスト実行ツール603aは、図1
に示したテスト実行手段103と同様の機能を有するツ
ールである。すなわち、このテスト実行ツール603a
は、テスト対象ソースファイル201とテストドライバ
ソースファイル203とからテストプログラムを作成
し、別に生成されたテストデータ202を用いて上記テ
ストプログラムを自動実行する。
【0065】また、メモリエラー検出ツール603b
は、作成されたテストプログラム内に潜むメモリ処理関
連のバグを自動的に見つけ出すためのツールであり、図
7のようにメモリエラー検出結果701を出力する。ま
た、カバレッジ計測ツール603cは、テスト対象のプ
ログラムに対して、どの程度テストが達成しているかを
定量的に見定めることを自動的に行うためのツールであ
り、図7のようにカバレッジ計測結果702を出力す
る。何れも人間が行うのは非常に困難かつ面倒な作業で
あるが、これらのツールを使えば自動的に行うことがで
きる。
【0066】また、テスト評価手段604は、単にテス
ト実行ツール603aによるテスト実行結果204とテ
ストオラクル205との照合を行うだけでなく、メモリ
エラー検出ツール603bおよびカバレッジ計測ツール
603cがテスト実行時に出力するメモリエラー検出結
果701およびカバレッジ計測結果702等のテスト情
報を読み込み、それらを統合してテスト評価結果706
を作成する。
【0067】すなわち、テスト評価手段604は、テス
ト実行結果204とテストオラクル205との照合結
果、メモリエラー検出結果701、およびカバレッジ計
測結果702の各ファイルの記載内容を適切な形式にま
とめ、1つのファイルとしてテスト評価結果706を出
力する。テスト結果レポート作成手段105は、テスト
評価手段604より出力されたテスト評価結果706に
基づいて、テスト結果レポート207を作成する。
【0068】図8は、この総合的なテスト評価を行った
際のテスト結果レポート207の一例を示す図である。
この図8に示すように、テスト実行結果204とテスト
オラクル205との照合結果(テストケース結果一
覧)、メモリエラーの検出結果、テストカバレッジの計
測結果がそれぞれ示されるとともに、これらを総合的に
判断した結果が最上段にPASS/FAILの別で表さ
れている。
【0069】このように、本実施形態によれば、単にテ
スト実行結果204とテストオラクル205との照合を
行うだけでなく、メモリエラー検出結果701やカバレ
ッジ計測結果702を加味して評価するテスト評価手段
604を設けたので、総合的でより詳細なテスト結果を
自動的に判定することができ、テスト評価作業の品質を
より向上させることができる。また、テスト作業者は、
総合判定結果である図8のようなテスト結果レポート2
07の最上段の表示を見れば、良い結果が得られたかど
うかを直ちに判断することができる。
【0070】なお、以上の実施形態では、単体テストを
行う場合を例にとって説明したが、本発明はこれに限定
されるものではない。例えば、単体テストの後に行われ
る単体間のインタフェースを検査するための結合テスト
(統合テスト)や、更にその後で行われるシステムテス
トにも適用することができる。
【0071】また、以上の実施形態で説明した各手段と
してコンピュータのCPU、記憶装置等を動作させるよ
うに作成したプログラムを用いることによって、コンピ
ュータを上記テスト装置として使用することができる。
その場合、当該プログラムを情報記録媒体に記録し、そ
の情報記録媒体をコンピュータに読み込ませることで達
成できる。情報記録媒体の例としては、例えばROM、
フロッピーディスク、ハードディスク、光ディスク、光
磁気ディスク、CD−ROM、磁気テープ、不揮発性の
メモリカード等を用いることができる。
【0072】
【発明の効果】本発明は上述したように、ソフトウェア
のテストで行われる一連の内部作業をそれぞれ実行する
複数種類の内部作業手段を、ある内部作業手段で使用す
べきテスト情報に変化があったときに上記ある内部作業
手段を起動するように制御するテスト制御手段を設けた
ので、ソフトウェアのテスト作業全体を自動化すること
ができ、テスト内の各内部作業間で行われていたデータ
の過不足の調整や、自動化されていない作業を行うため
の人間の労力を大幅に削減することができる。しかも、
このように人間の作業を排除することにより、人為的な
ミスの入り込む余地をなくし、テスト作業の品質を向上
することもできる。
【0073】また、本発明の他の特徴によれば、複数種
類の内部作業手段間で伝達される各種テスト情報を一括
して格納するテスト情報格納手段を設けたので、例えば
再テストを行う場合などにおいて、以前に行ったテスト
の際に使用したテスト情報を再利用することができ、同
じ作業を繰り返し行う労力を削減することができる。こ
れにより、プログラムの開発効率を著しく向上させるこ
とができる。
【0074】本発明のその他の特徴によれば、テスト対
象のプログラム内に潜むメモリ処理関連のバグを検出す
るメモリエラー検出手段と、テスト対象のプログラムに
対してどの程度テストが達成しているかを定量的に検出
するテスト進捗検出手段との少なくとも一方を更に設
け、テスト結果照合手段の出力に加えて、メモリエラー
検出手段の出力およびテスト進捗検出手段の出力の少な
くとも一方を統合して評価を行うテスト評価手段を設け
たので、テスト評価作業において、テスト実行結果とテ
ストオラクルとを比較するだけでなく、メモリエラーの
検出結果や、どの程度テストが達成しているかの検出結
果を合わせて評価することで総合的なテスト評価を行う
ことができ、テスト評価の品質を向上させることができ
る。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるソフトウェアの
テスト装置の構成例を示す機能ブロック図である。
【図2】単体テストの全体的な作業手順を説明するため
の図である。
【図3】テスト対象ソースファイルを新規に登録した場
合におけるソフトウェアのテスト装置の動作を説明する
ための図である。
【図4】テスト対象ソースファイルを修正して再びテス
トを行う場合の動作を説明するための図である。
【図5】テストデータを変更して同一のテスト対象ソー
スファイルについて再びテストを行う場合の動作を説明
するための図である。
【図6】本発明の第2の実施形態によるソフトウェアの
テスト装置の構成例を示す機能ブロック図である。
【図7】第2の実施形態による単体テストの全体的な作
業手順を説明するための図である。
【図8】第2の実施形態において総合的なテスト評価を
行った際のテスト結果レポートの一例を示す図である。
【符号の説明】
101 テストデータ生成手段 102 テストドライバ生成手段 103 テスト実行手段 104 テスト結果照合手段 105 テスト結果レポート作成手段 106 テスト制御手段 107 テスト情報格納手段 108 テストデータ生成方法指定手段 201 テスト対象ソースファイル 202 テストデータ 203 テストドライバソースファイル 204 テスト実行結果 205 テストオラクル 206 テスト照合結果 207 テスト結果レポート 603 テスト実行手段 603a テスト実行ツール 603b メモリエラー検出ツール 603c カバレッジ計測ツール 604 テスト評価手段 701 メモリエラー検出結果 702 カバレッジ計測結果 706 テスト評価結果

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 ソフトウェアのテストで行われる一連の
    内部作業をそれぞれ実行し、各内部作業に対応したテス
    ト情報を出力する複数種類の内部作業手段を備えたソフ
    トウェアのテスト装置であって、 上記複数種類の内部作業手段を制御し、任意の内部作業
    手段で使用すべきテスト情報に変化があったときに上記
    任意の内部作業手段を起動するようにするテスト制御手
    段を設けたことを特徴とするソフトウェアのテスト装
    置。
  2. 【請求項2】 上記複数種類の内部作業手段間で伝達さ
    れる各種テスト情報は、情報形式が統一されていること
    を特徴とする請求項1に記載のソフトウェアのテスト装
    置。
  3. 【請求項3】 上記複数種類の内部作業手段間で伝達さ
    れる各種テスト情報を一括して格納するテスト情報格納
    手段を備え、 上記テスト制御手段は、上記テスト情報格納手段に格納
    される各種テスト情報の変化を見て上記複数種類の内部
    作業手段を制御することを特徴とする請求項1または2
    に記載のソフトウェアのテスト装置。
  4. 【請求項4】 上記複数種類の内部作業手段は、 テスト対象ソースファイルからテストデータを自動生成
    するテストデータ生成手段と、 上記テスト対象ソースファイルからテストドライバソー
    スファイルを自動生成するテストドライバ生成手段と、 上記生成されたテストドライバおよびテストデータを用
    いて上記テスト対象ソースファイルのテストを自動実行
    するテスト実行手段と、 上記テスト実行手段のテスト実行結果とあらかじめ作成
    されたテストオラクルとを照合するテスト結果照合手段
    と、 上記テスト結果照合手段の出力に基づいてテスト結果レ
    ポートを作成するテスト結果レポート作成手段とを含む
    ことを特徴とする請求項1〜3の何れか1項に記載のソ
    フトウェアのテスト装置。
  5. 【請求項5】 上記テスト制御手段は、上記テスト対象
    ソースファイルに変化があったときに、上記テストドラ
    イバ生成手段を起動するように制御することを特徴とす
    る請求項4に記載のソフトウェアのテスト装置。
  6. 【請求項6】 上記テスト制御手段は、上記テスト対象
    ソースファイル中の少なくとも入出力インタフェース部
    分に変化があったときに、上記テストドライバ生成手段
    を起動するように制御することを特徴とする請求項5に
    記載のソフトウェアのテスト装置。
  7. 【請求項7】 上記テストデータ生成手段におけるテス
    トデータ生成方法を指定するためのテストデータ生成方
    法指定手段を備え、 上記テスト制御手段は、上記テスト対象ソースファイル
    に変化があったか、上記テストデータ生成方法の指定に
    変化があったときに、上記テストデータ生成手段を起動
    するように制御することを特徴とする請求項4に記載の
    ソフトウェアのテスト装置。
  8. 【請求項8】 上記テスト制御手段は、上記テスト対象
    ソースファイル中の少なくともテストデータ生成に用い
    られる部分に変化があったときに、上記テストデータ生
    成手段を起動するように制御することを特徴とする請求
    項7に記載のソフトウェアのテスト装置。
  9. 【請求項9】 上記テスト制御手段は、上記テスト対象
    ソースファイルに変化があったか、上記テストドライバ
    ソースファイルに変化があったか、上記テストデータに
    変化があったときに、上記テスト実行手段を起動するよ
    うに制御することを特徴とする請求項4に記載のソフト
    ウェアのテスト装置。
  10. 【請求項10】 上記テスト制御手段は、上記テスト実
    行手段より出力されるテスト実行結果に変化があった
    か、上記テストオラクルに変化があったときに、上記テ
    スト結果照合手段を起動するように制御することを特徴
    とする請求項4に記載のソフトウェアのテスト装置。
  11. 【請求項11】 上記テスト制御手段は、上記テスト結
    果照合手段より出力されるテスト照合結果に変化があっ
    たときに、上記テスト結果レポート作成手段を起動する
    ように制御することを特徴とする請求項4に記載のソフ
    トウェアのテスト装置。
  12. 【請求項12】 上記複数種類の内部作業手段は、テス
    ト対象のプログラム内に潜むメモリ処理関連のバグを検
    出するメモリエラー検出手段と、 上記テスト対象のプログラムに対してどの程度テストが
    達成しているかを定量的に検出するテスト進捗検出手段
    と、の少なくとも一方を更に備え、 上記テスト結果照合手段の出力に加えて、上記メモリエ
    ラー検出手段の出力および上記テスト進捗検出手段の出
    力の少なくとも一方を統合して評価を行うテスト評価手
    段を備えたことを特徴とする請求項4〜11の何れか1
    項に記載のソフトウェアのテスト装置。
  13. 【請求項13】 上記テスト評価手段は、上記テスト結
    果照合手段の出力、上記メモリエラー検出手段の出力、
    上記テスト進捗検出手段の出力の各記載内容を適切な形
    式にまとめ、1つのファイルとして出力することを特徴
    とする請求項12に記載のソフトウェアのテスト装置。
  14. 【請求項14】 ソフトウェアのテストで行われる一連
    の内部作業をそれぞれ実行し、各内部作業に対応したテ
    スト情報を出力する複数種類の内部作業手段を備えたソ
    フトウェアのテスト装置において、上記複数種類の内部
    作業手段を制御し、任意の内部作業手段で使用すべきテ
    スト情報に変化があったときに上記任意の内部作業手段
    を起動するようにするテスト制御手段としてコンピュー
    タを機能させるためのプログラムを記録したことを特徴
    とするコンピュータ読み取り可能な記録媒体。
JP10131360A 1997-05-01 1998-04-24 ソフトウェアのテスト装置および記録媒体 Withdrawn JPH1115693A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10131360A JPH1115693A (ja) 1997-05-01 1998-04-24 ソフトウェアのテスト装置および記録媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP12807497 1997-05-01
JP9-128074 1997-05-01
JP10131360A JPH1115693A (ja) 1997-05-01 1998-04-24 ソフトウェアのテスト装置および記録媒体

Publications (1)

Publication Number Publication Date
JPH1115693A true JPH1115693A (ja) 1999-01-22

Family

ID=26463851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10131360A Withdrawn JPH1115693A (ja) 1997-05-01 1998-04-24 ソフトウェアのテスト装置および記録媒体

Country Status (1)

Country Link
JP (1) JPH1115693A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229047A (ja) * 2000-02-14 2001-08-24 Toshiba Corp サーバプロセス試験システム、サーバプロセス試験フレームワークを記録したコンピュータ読み取り可能な記録媒体、およびサーバプロセス試験プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2009237654A (ja) * 2008-03-26 2009-10-15 Hitachi Software Eng Co Ltd テストプログラム管理システム
US7882493B2 (en) 2005-11-14 2011-02-01 Fujitsu Limited Software test management program software test management apparatus and software test management method
JP2019029015A (ja) * 2017-08-03 2019-02-21 富士通株式会社 インタラクティブなソフトウェアプログラムの修復

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229047A (ja) * 2000-02-14 2001-08-24 Toshiba Corp サーバプロセス試験システム、サーバプロセス試験フレームワークを記録したコンピュータ読み取り可能な記録媒体、およびサーバプロセス試験プログラムを記録したコンピュータ読み取り可能な記録媒体
US7882493B2 (en) 2005-11-14 2011-02-01 Fujitsu Limited Software test management program software test management apparatus and software test management method
JP2009237654A (ja) * 2008-03-26 2009-10-15 Hitachi Software Eng Co Ltd テストプログラム管理システム
JP2019029015A (ja) * 2017-08-03 2019-02-21 富士通株式会社 インタラクティブなソフトウェアプログラムの修復

Similar Documents

Publication Publication Date Title
US11281570B2 (en) Software testing method, system, apparatus, device medium, and computer program product
US7895565B1 (en) Integrated system and method for validating the functionality and performance of software applications
US8522214B2 (en) Keyword based software testing system and method
US6002869A (en) System and method for automatically testing software programs
Kellner et al. ISPW-6 software process example
US6948152B2 (en) Data structures for use with environment based data driven automated test engine for GUI applications
US20070006037A1 (en) Automated test case result analyzer
US7895575B2 (en) Apparatus and method for generating test driver
US20060265172A1 (en) Heterogeneous multipath path network test system
US10970198B2 (en) Automatic test system and method thereof
US20020116153A1 (en) Test automation framework
WO2019134113A1 (zh) 自动化测试方法及系统
CN111506509A (zh) 汽车软件单元自动测试方法、装置、设备及存储介质
CN113742215A (zh) 一种自动配置和调用测试工具进行测试分析的方法及系统
JPH1115693A (ja) ソフトウェアのテスト装置および記録媒体
JP2016164727A (ja) テストケース選択装置
CN115629956A (zh) 一种基于接口自动化测试的软件缺陷管理方法及系统
CN114647588A (zh) 接口测试方法及装置
JP3357567B2 (ja) プログラム評価システム
Mirarab et al. A requirement-based software testing framework: An industrial practice
JP3422478B2 (ja) プログラム作成装置、及び、プログラム作成方法
JP2000057015A (ja) ソフトウェアのテスト装置および記録媒体
KR100340049B1 (ko) 시나리오를 이용한 칠 프로그램 시험 방법
JPH01261737A (ja) 言語プロセッサの検査自動管理方式
JP2009181180A (ja) プログラム生成ツールの検査プログラムおよびプログラム生成ツールの検査方法ならびにプログラム生成ツールの検査装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050705