トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 単体試験項目票作成支援方法ならびにそのシステム
【発明者】 【氏名】前田 孝之

【氏名】金籐 達幸

【氏名】大畑 幸信

【氏名】中村 克洋

【要約】 【課題】入力される改造を含む新規作成されたソースファイルから試験項目を自動抽出して試験項目票を作成することで試験密度を標準化する。

【解決手段】プログラムの単体試験を行なう単体試験項目票作成支援方法ならびにそのシステム1であって、改造を含む新規に作成された入力ソースファイル2を入力として得、該入力ソースファイル2を構成する個々の関数を、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られる部分のいずれかでブロック化し(ブロック化部11)、当該ブロック単位で試験項目を抽出して単体試験項目票3を作成する(単体試験項目票作成処理部12)。
【特許請求の範囲】
【請求項1】 プログラムの単体試験において、改造を含む新規に作成されたソースファイルを入力として得、前記ソースファイルを構成する個々の関数をブロック化し、当該ブロック単位で試験項目を抽出して単体試験項目票を作成することを特徴とする単体試験項目票作成支援方法。
【請求項2】 前記ブロックは、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られる部分のいずれかであることを特徴とする請求項1に記載の単体試験項目票作成支援方法。
【請求項3】 前記作成される単体試験項目票は、項目名とチェック項目から成り、前記単体試験項目票作成の対象となる関数内の処理を解析することによってソースファイルの処理の流れをブロック化して前記項目名に反映させ、前記ブロック化部分の処理を抽出して前記チェック項目に反映させることを特徴とする請求項1に記載の単体試験項目票作成支援方法。
【請求項4】 前記入力されるソースファイルが改造ソースファイルであった場合、既存ソースファイルとの差分をチェックし、差分があった場合にその差分ファイルを作成し、当該差分ファイルを解析することによって前記単体試験項目票を作成することを特徴とする請求項1に記載の単体試験項目票作成支援方法。
【請求項5】 プログラムの単体試験において用いられる単体試験項目票作成支援システムであって、改造を含む新規に作成されたソースファイルを入力として得、前記ソースファイルを構成する個々の関数をブロック化するブロック化手段と、前記ブロック単位で試験項目を抽出して単体試験項目票を作成する単体試験項目票作成処理手段と、を備えたことを特徴とする単体試験項目票作成支援システム。
【請求項6】 前記入力されるソースファイルが改造ソースファイルであった場合にその差分をチェックし、差分があった場合にその差分ファイルを作成する差分ファイル作成手段を更に備え、当該差分ファイルに基づき前記単体試験項目票を作成することを特徴とする請求項5に記載の単体試験項目票作成支援システム。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、プログラムの単体試験に用いて好適な、単体試験項目票作成支援方法ならびにそのシステムに関する。
【0002】
【従来の技術】ソフトウェアの開発過程における検査工程に、単体試験と結合試験がある。前者は、サブルーチン、手続き、関数等個々のプログラムモジュール毎のチェックを行い、後者は、モジュールを組み合わせたときに予想される動作を確認する作業である。上述した検査において、通常コンパイラが行なう構文解析、および意味解析をより深く、かつ、広範囲に行なうことによってプログラム解析を行いエラーを検出する。この検査で頼るものは、どのような順で文が実行されるのかという処理の流れとあるデータにどのような順で値が代入されるのかといったデータの流れである。
【0003】
【発明が解決しようとする課題】上述したプログラムの単体試験において検査を試みる場合、通常はソースプログラムを手作業でチェックしながら試験項目を抽出した試験項目票を作成し、その試験項目票に基づいて実際の検査が行われる。しかしながら、プログラムが大規模化するに従い担当者数人が分担してその試験項目票を作成するために試験項目の抽出基準がそれぞれにおいて異なり、従って、試験密度が各担当者によって異なり、信頼に足る十分な試験を行なうことができないといった欠点を有していた。また、試験項目を識別するためにプログラム中にタグを追加していたため担当者にかかる負担も大きかった。
【0004】本発明は上記事情に鑑みてなされたものであり、入力される改造を含む新規作成されたソースファイルから試験項目を自動抽出して試験項目票を作成することにより、試験密度を標準化でき、かつ、ソースファイルを加工することなく単体試験が可能な単体試験項目票作成支援方法ならびにそのシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】本発明は、プログラムの単体試験において、改造を含む新規に作成されたソースファイルを入力として得、前記ソースファイルを構成する個々の関数をブロック化し、当該ブロック単位で試験項目を抽出して単体試験項目票を作成することを特徴とする。
【0006】また、本発明の単体試験項目票作成支援方法において、前記ブロックは、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られ部分のいずれかであることを特徴とする。
【0007】また、本発明の単体試験項目票作成支援方法において、前記作成される単体試験項目票は、項目名とチェック項目から成り、前記単体試験項目票作成の対象となる関数内の処理を解析することによってソースファイルの処理の流れをブロック化して前記項目名に反映させ、前記ブロック化部分の処理を抽出して前記チェック項目に反映させることを特徴とする。
【0008】また、本発明の単体試験項目票作成支援方法において、前記入力されるソースファイルが改造ソースファイルであった場合、既存ファイルとの差分をチェックし、差分があった場合にその差分ファイルを作成し、当該差分ファイルを解析することによって前記単体試験項目票を作成することを特徴とする。
【0009】本発明は、プログラムの単体試験において用いられる単体試験項目票作成支援システムであって、改造を含む新規に作成されたソースファイルを入力として得、前記ソースファイルを構成する個々の関数をブロック化するブロック化手段と、前記ブロック単位で試験項目を抽出して単体試験項目票を作成する単体試験項目票作成処理手段とを備えたことを特徴とする。
【0010】また、本発明の単体試験項目票作成支援システムにおいて、前記入力されるソースファイルが改造ソースファイルであった場合にその差分をチェックし、差分があった場合にその差分ファイルを作成する差分ファイル作成手段を更に備え、当該差分ファイルに基づき前記単体試験項目票を作成することを特徴とする。本発明により、ブロック化手段で試験項目抽出対象ソースファイルを解析して、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られた部分に従いブロック化し、単体試験項目票作成手段により、そのブロック単位で試験項目を抽出処理することができ、このことにより、試験密度の標準化がはかれ、かつ、ソースファイルを加工することなく単体試験を実行できる。
【0011】
【発明の実施の形態】図1は、本発明の単体試験項目票作成支援システムの内部構成を機能展開して示したブロック図である。本発明の単体試験項目票作成支援システム1は、ブロック化部11、単体試験項目票作成処理部12、差分ファイル作成部13から成る。ブロック化部11は、改造を含む新規に作成された入力ソースファイル2を得、この入力ソースファイル2を構成する個々の関数をブロック化する機能を持つ。ここで、入力ソースファイル2として、新規作成された新規ソースファイル21と、改造ソースファイル22と既存ソースファイル23がある。また、ブロック化される部分とは、入力ソースファイル2のうち、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られる部分のいずれかである。
【0012】単体試験項目票作成処理部12は、ブロック単位で試験項目を抽出して単体試験項目票3を作成する機能を持つ。詳細は後述する。差分ファイル作成部13は、入力ソースファイル2が改造ソースファイル22であった場合に、改造前の既存ソースファィル23との差分をチェックし、差分があった場合にその差分ファイル131を作成する機能を有する。尚、上記に示したこれらの各処理部は専用のハードウェアにより実現されるものであってもよく、また、各処理部はメモリおよびCPU(中央演算装置)により構成され、各処理部の機能を実現する為のプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。また、上記メモリは、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CD−ROM等の読み出しのみが可能な記録媒体、RAM(Random Access Memory)のような揮発性のメモリ、あるいはこれらの組み合わせによるコンピュータ読み取り、書き込み可能な記録媒体より構成されるものとする。
【0013】図2、図3は、図1に示した実施形態により作成される単体試験項目票3、ブロック化されたソースコードのそれぞれを示す。ここでは、試験項目の抽出対象である入力ソースファイル2のうち1つの関数をブロック化し、ブロック化されたソースコードから作成される単体試験項目票3ならびにソースコードがそれぞれ示されている。図に示されるように、ブロック化される部分は、入力ソースファイル2のうち、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られる部分のいずれかである。図3に示すブロック化されたソースコードのように、ブロック化部11でソースコードの処理の流れをブロック化し、単体試験項目票作成処理部12で解析を行なうことによって図2に示す単体試験項目票3が作成される。
【0014】図2において、単体試験項目票3は、項番、項目名、チェック項目の各エントリから構成され、項目名、チェック項目は項番で区切られ、項目名には、ソースコード行番号、ならびに対応するブロックを通過するための条件が出力され、チェック項目には、ソースコードに対応した各ブロックのチェック項目が出力される。このチェック項目を抽出するためのアルゴリズムについては図6に示すフローチャートを参照しながら後述する。なお、チェック項目には、条件式が羅列されて出力されるものとする。例えば、“if(a=1 && b=2)”の場合、“(if)条件a=1、(if)条件b=2”と書き出される。
【0015】項番2の項目名において、“分岐(if)条件「条件A」が真”は、対応するブロックを通過するための条件であり、この場合、条件Aが真のときのみブロック2を通る。また、項番5の項目名において、“分岐(if)条件「条件C」が真”とあるのは、switch−case文の場合も、対応するブロックを通るための条件が出力され、続く、“分岐(case)条件 変数D=値E”とあるのは、if文の中にswitch−case文がある等のネストの場合、全ての条件を羅列し、対応するブロックを通過する条件が出力される。項番9の項目名において、“分岐(if)条件「条件C」が偽”とあるのは、ifに対応するelse文がない場合も、全ての条件を網羅するため項目が出力される。また、項番12の項目名において、“ループ2回目for(ループ条件)”とあるのは、for等のループ文の場合、試験項目としてループ2回目とループの終了条件も項目として出力される。while文も同様である。
【0016】図4、図5は、本発明実施形態の動作を説明するために引用した動作概念図であり、新規ソースファイル21から単体試験項目票3を作成する場合、改造ソースファイル22から単体試験項目票3を作成する場合のそれぞれを示す。図4に、新規ソースファイル21を本発明の単体試験項目票作成支援システム1に入力し、関数単位で試験項目が自動抽出される例が示されている。図に示されるように、新規ソースファイル21の関数毎、条件に応じて処理される部分、宣言文を含む初期化部分、空文で括られ部分毎にブロック化され、その単位で試験項目が抽出される。出力ファイルである単体試験項目票3は、市販の表計算ソフトで使用可能なファイルとし、関数毎に別ページの単体試験項目票として抽出されるものとする。試験項目の抽出アルゴリズムは、図6を使用して説明する。
【0017】図5に改造ソースファイル22と既存ソースファイル23を本発明の単体試験項目票作成支援システム1に入力し、後述する差分抽出処理を経て改造関数単位で試験項目が自動抽出される例が示されている。ここでは、1つの関数に改造があった場合のみ例示したが、改造のあった関数は全て抽出し、また、削除分に関しては抽出して削除行を表示し、更に、新規作成関数についても全て抽出するものとする。出力ファイルである単体試験項目票3は、新規ソース同様市販の表計算ソフトで使用可能なファイルとし、関数毎に別ページの単体試験項目票として抽出されるものとする。試験項目の抽出アルゴリズムは、図6を使用して説明する。
【0018】図6は、本発明の単体試験項目票作成支援方法に従う試験項目の抽出アルゴリズムをフローチャートで表現した図である。以下、図6に示すフローチャートを参照しながら図1乃至図5に示す本発明実施形態の動作について詳細に説明する。図示していないが、表示装置を含む単体試験項目票作成支援システムにより、単体試験項目抽出画面が表示され、処理が開始される。まずは項目抽出資材入力待ちとなって、単体試験項目票3を作成するための入力ソースファイル2の特定を待つ(ステップS61)。具体的には、ダイアログを介し、システム名、プログラムID、グループ名、作成者をデータとして入力するほかに、単体試験項目票3作成の対象となる新規ソースファイル21あるいは改造ソースファイル22(既存ソースファイル23も含)のそれぞれを手投入する。なお、対象ソースファイルの入力のみでも構わない。システム名、プログラムID、グループ名、作成者がない場合は、出力ファイルに対象欄が空白になる。
【0019】資材入力完了後、投入された入力ソースファイル2が新規作成されたものか、あるいは改造によるものかのチェックが行われる(ステップS62)。新規作成ソースファイル21の場合、出力ファイルの作成処理(ステップS63)に進み、ここでは市販の表計算ソフトで使用可能なファイルが作成される。更に、関数名読み込みにより関数毎に別ページの空票が作成され(ステップS64)、対象関数内の処理の解析が始まる(ステップS65)。ここでは、ブロック化の処理がなされ、例えば、C言語で書かれたプログラムの予約語(if,while等)で囲まれた部分を単体試験項目票3の項目名に反映させるために抽出し、また、環境ファイルによる制限ワードのチェックも行う。環境ファイルには、排除したい情報が含まれる。
【0020】次に、ブロック解析が行なわれる(ステップS66)。ここでは、単体試験項目票3のチェック項目に反映させるために、ブロック化された部分内の処理を抽出して、その内容を市販の表計算ソフトで使用可能なファイルに作成した関数毎に別ページの空票に書き込む(ステップS67)。なお、ステップS62のチェックにおいて、改造ソースファイル22であると判断された場合、入力される既存ソースファイル23と改造ソースファイル22を1行ずつ比較することによって差分をチェックする(ステップS71)。最終的に差分ファイル131を作成し、その差分ファイルの解析が行なわれる(ステップS72、S73)。差分ファイルの解析処理(ステップS73)では、削除行、追加行の拾い出しが行なわれ、ステップS63の処理に進む。
【0021】また、ステップS65の対象関数内の処理解析、およびステップS66のブロック解析において、先に抽出した差分情報に基づき、差分か否かのチェックも行われる。対象が新規を除き、差分部分でない場合は抽出せず、差分であれば書き込み、また、削除であれば削除行を記述するものとする。そして、関数内ブロックの処理を網羅したか否かのチェックが行なわれ(ステップS68)、次のブロックのためにステップS65以降の処理を繰り返す。関数内処理を網羅した後、入力ソースファイル2の最後をチェックし(ステップS69)、ステップS64以降の処理を入力ソースファイル2の全ての関数分について上記の操作を繰り返す。入力ソースファイル2の全ての関数についての処理を終えたら単体試験項目抽出画面に戻り待機状態となる。
【0022】以上説明のように、本発明によれば、ソースファイルを元に単体試験項目票が自動作成され、新規のソースファイルはもとより、改造ソースファイルであってもその差分ファイルのみの試験項目が抽出され、単体試験項目票が自動作成される。なお、本発明実施形態においては、ソースファイルの記述言語としてCのみ例示したがこの言語に制限されず、他に、C++、BASIC、Java、FORTRAN等いずれの高級言語であっても構わない。
【0023】また、図1における単体試験項目票作成支援システムにおいて、各種処理を行う処理部の機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」とは、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フロッピー(登録商標)ディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0024】
【発明の効果】以上説明のように本発明によれば、入力される改造を含む新規作成されたソースファイルから試験項目を自動抽出して試験項目票を作成することができ、このことにより試験密度を標準化でき、かつ、ソースファイルを加工することなく単体試験を行なうことができる、従って、チェック担当者の負荷が軽減されると共に、信頼性の高い単体試験が可能になる。
【出願人】 【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
【出願日】 平成12年10月2日(2000.10.2)
【代理人】 【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武 (外2名)
【公開番号】 特開2002−108653(P2002−108653A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−302673(P2000−302673)