(57)【要約】【課題】人手にかかる負担を低減しつつ、プログラムの網羅性を向上させる。【解決手段】プログラム開発端末１は、自動テストサーバ３によるソースプログラム４ａの未実行箇所リスト１ａおよび機能テスト実行ログ１ｂをオートチェッカ５に入力し、オートチェッカ５は、自動テストサーバ３にて検出された未実行箇所リスト２ａのうち、機能テスト実行ログ１ｂにて実行が確認された箇所を削除することにより、ソースプログラム４ａの未実行箇所リスト６ａを生成するとともに、機能テスト実行ログ中実行エビデンス６ｂを生成する。【選択図】      図１
2007249906.tif 000002
【特許請求の範囲】
【請求項１】
被測定プログラムの網羅性を測定する測定用プログラムを実行することにより作成された前記被測定プログラムの未実行箇所のリストを入力する第１入力手段と、
前記被測定プログラムを実行することにより作成された前記被測定プログラムの実行ログを入力する第２入力手段と、
前記測定用プログラムにて作成された未実行箇所のリストおよび前記被測定プログラムの実行ログを統合することにより、前記被測定プログラムの未実行箇所のリストを生成する未実行箇所リスト生成手段とを備えることを特徴とするプログラム検査装置。
【請求項２】
ソースプログラムの開発および実行を行うプログラム開発端末と、
前記ソースプログラムを格納するソース管理サーバと、
前記ソースプログラムのどの箇所が実行されたかを示す実行ログを保持するログ管理領域と、
前記ソース管理サーバに格納されているソースプログラムの網羅性を測定する自動テストサーバと、
前記自動テストサーバにて検出された前記ソースプログラムの未実行箇所のリストを保持するファイル共有サーバと、
前記自動テストサーバにて検出された未実行箇所のリストおよび前記ソースプログラムの実行ログを統合することにより、前記ソースプログラムの未実行箇所のリストを生成するオートチェッカとを備えることを特徴とするプログラム検査方法。
【請求項３】
プログラム開発端末上でソースプログラムを実行させるステップと、
前記ソースプログラムのどの箇所が実行されたかを示す実行ログをログ管理領域に保持させるステップと、
前記ソースプログラムの網羅性を自動テストサーバにて測定させるステップと、
前記自動テストサーバにて検出された前記ソースプログラムの未実行箇所のリストをファイル共有サーバに保持させるステップと、
前記自動テストサーバにて検出された未実行箇所のリストおよび前記ソースプログラムの実行ログをオートチェッカに統合させることにより、前記ソースプログラムの未実行箇所のリストを生成させるステップとを備えることを特徴とするプログラム検査方法。
【請求項４】
被測定プログラムの網羅性を測定する測定用プログラムを実行することにより作成された前記被測定プログラムの未実行箇所のリストを取得するステップと、
前記被測定プログラムを実行することにより作成された前記被測定プログラムの実行ログを取得するステップと、
前記測定用プログラムにて作成された未実行箇所のリストおよび前記被測定プログラムの実行ログを統合することにより、前記被測定プログラムの未実行箇所のリストを生成するステップとをコンピュータに実行させることを特徴とするプログラム検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム検査装置、プログラム検査方法およびプログラム検査プログラムに関し、特に、プログラム検査装置の網羅性を向上させる方法に適用して好適なものである。
【背景技術】
【０００２】
従来のプログラムの開発環境では、ソースプログラムの網羅性を検査するために、自動テストツールをプログラムの開発端末にインストールし、自動テストツールにてソースプログラムの未実行箇所リストを作成させることが行われている。
また、例えば、特許文献１には、被測定プログラムの網羅度を測定するために、測定用定プログラムの試験を行う際にシンボリックデバッガを使用する場合、デバッグ作業時に被測定プログラムのソースファイルを見ながら作業できるようにすることで、試験作業の効率化を図る方法が開示されている。
【特許文献１】特開平８−１６４３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、自動テストツールを用いてソースプログラムの網羅性を検査しただけでは、８０％程度の網羅性しか確保することができず、残りの２０％程度は人手で判断する必要があることから、人手にかかる負担が大きいという問題があった。また、自動テストツールを使いこなすためには、高度な知識と経験が必要になり、プログラムの開発者の人材の確保が困難になるという問題があった。
そこで、本発明の目的は、人手にかかる負担を低減しつつ、プログラムの網羅性を向上させることが可能なプログラム検査装置、プログラム検査方法およびプログラム検査プログラムを提供することである。
【課題を解決するための手段】
【０００４】
上述した課題を解決するために、請求項１記載のプログラム検査装置によれば、被測定プログラムの網羅性を測定する測定用プログラムを実行することにより作成された前記被測定プログラムの未実行箇所のリストを入力する第１入力手段と、前記被測定プログラムを実行することにより作成された前記被測定プログラムの実行ログを入力する第２入力手段と、前記測定用プログラムにて作成された未実行箇所のリストおよび前記被測定プログラムの実行ログを統合することにより、前記被測定プログラムの未実行箇所のリストを生成する未実行箇所リスト生成手段とを備えることを特徴とする。
【０００５】
これにより、自動テストツールを用いて被測定プログラムの網羅性を検査することが可能となるとともに、被測定プログラムの実行ログを参照することにより、自動テストツールで動作の確認できなかった未実行箇所が実行できたかどうかを判断させることができ、人手にかかる負担を低減しつつ、プログラムの網羅性を向上させることが可能となる。
【０００６】
また、請求項２記載のプログラム検査装置によれば、ソースプログラムの開発および実行を行うプログラム開発端末と、前記ソースプログラムを格納するソース管理サーバと、前記ソースプログラムのどの箇所が実行されたかを示す実行ログを保持するログ管理領域と、前記ソース管理サーバに格納されているソースプログラムの網羅性を測定する自動テストサーバと、前記自動テストサーバにて検出された前記ソースプログラムの未実行箇所のリストを保持するファイル共有サーバと、前記自動テストサーバにて検出された未実行箇所のリストおよび前記ソースプログラムの実行ログを統合することにより、前記ソースプログラムの未実行箇所のリストを生成するオートチェッカとを備えることを特徴とする。
【０００７】
これにより、自動テストサーバにてソースプログラムの網羅性を自動的に測定させることができ、ソースプログラムの網羅性を測定するための自動テストツールをプログラム開発端末にインストールする必要がなくなるとともに、ソースプログラムの実行ログを参照することにより、自動テストツールで動作の確認できなかった未実行箇所が実行できたかどうかを判断させることができる。このため、プログラム開発端末にて自動テストツールを動作させる必要がなくなり、自動テストツールをプログラム開発端末上で使いこなすための高度な知識と経験を不要として、プログラムの開発効率を向上させることが可能となるとともに、ソースプログラムの網羅性を向上させることができ、ソースプログラムの網羅性を確認するためのテストにかかる工数を削減することができる。
【０００８】
また、請求項３記載のプログラム検査方法によれば、プログラム開発端末上でソースプログラムを実行させるステップと、前記ソースプログラムのどの箇所が実行されたかを示す実行ログをログ管理領域に保持させるステップと、前記ソースプログラムの網羅性を自動テストサーバにて測定させるステップと、前記自動テストサーバにて検出された前記ソースプログラムの未実行箇所のリストをファイル共有サーバに保持させるステップと、前記自動テストサーバにて検出された未実行箇所のリストおよび前記ソースプログラムの実行ログをオートチェッカに統合させることにより、前記ソースプログラムの未実行箇所のリストを生成させるステップとを備えることを特徴とする。
【０００９】
これにより、自動テストサーバにてソースプログラムの網羅性を自動的に測定させることができ、自動テストツールをプログラム開発端末上で使いこなすための高度な知識と経験を不要として、プログラムの開発効率を向上させることが可能となるとともに、ソースプログラムの実行ログを参照することにより、自動テストツールで動作の確認できなかった未実行箇所が実行できたかどうかを判断させることができ、人手にかかる負担を低減しつつ、ソースプログラムの網羅性を向上させることができる。
【００１０】
また、請求項４記載のプログラム検査プログラムによれば、被測定プログラムの網羅性を測定する測定用プログラムを実行することにより作成された前記被測定プログラムの未実行箇所のリストを取得するステップと、前記被測定プログラムを実行することにより作成された前記被測定プログラムの実行ログを取得するステップと、前記測定用プログラムにて作成された未実行箇所のリストおよび前記被測定プログラムの実行ログを統合することにより、前記被測定プログラムの未実行箇所のリストを生成するステップとをコンピュータに実行させることを特徴とする。
これにより、プログラム検査プログラムを実行させることで、自動テストツールで動作の確認できなかった未実行箇所が実行できたかどうかを判断させることができ、人手にかかる負担を低減しつつ、プログラムの網羅性を向上させることが可能となる。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、自動テストサーバにてソースプログラムの網羅性を自動的に測定させることができ、自動テストツールをプログラム開発端末上で使いこなすための高度な知識と経験を不要として、プログラムの開発効率を向上させることが可能となるとともに、ソースプログラムの網羅性を向上させることができ、ソースプログラムの網羅性を確認するためのテストにかかる工数を削減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係るプログラム検査装置について図面を参照しながら説明する。
図１は、本発明の一実施形態に係るプログラム検査装置の概略構成を示すブロック図である。
図１において、ソースプログラムの開発および実行を行うプログラム開発端末１、自動テストサーバ３にて検出されたソースプログラムの未実行箇所のリストを保持するファイル共有サーバ２、ソース管理サーバ４に格納されているソースプログラム４ａの網羅性を測定する自動テストサーバ３、ソースプログラム４ａおよび実行ログ呼出処理４ｂを格納するソース管理サーバ４がネットワーク７を介して接続されている。なお、ネットワーク７としては、ＬＡＮやインターネットなどを用いることができる。
【００１３】
ここで、プログラム開発端末１には、ログ管理領域１１が設けられ、ログ管理領域１１には、ソースプログラム４ａのどの箇所が実行されたかを示す機能テスト実行ログ１ｂが保持されている。なお、ログ管理領域１１はファイル共有サーバ２に設けるようにしてもよい。また、プログラム開発端末１には、自動テストサーバ３にて検出された未実行箇所リスト２ａおよび機能テスト実行ログ１ｂを統合することにより、ソースプログラム４ａの未実行箇所リスト６ａおよび機能テスト実行ログ中実行エビデンス６ｂを生成するオートチェッカ５が設けられている。
【００１４】
そして、プログラム開発端末１上で開発または修正されたソースプログラム４ａは、ソース管理サーバ４ｄに格納され（Ｓ１）、ソース管理サーバ４ｄにてソースプログラム４ａのバージョン管理などが行われる。また、プログラム開発端末１上でソースプログラム４ａの機能をテストするためにソースプログラム４ａが実行されると、その時に出力された機能テスト実行ログ１ｂがログ管理領域１１に格納される（Ｓ１）。なお、機能テスト実行ログ１ｂとは、ソースプログラム４ａの実行中にどの箇所を通ったかを示すためのトレースログを意味する。そして、機能テスト実行ログ１ｂに埋め込まれたトレースログをグレップコマンドにて抽出することにより、ソースプログラム４ａの実行中にどの箇所を通ったかを確認することができる。
【００１５】
また、自動テストサーバ３は、ソース管理サーバ４に格納されている最新のソースプログラム４ａを定期的に読み出し（Ｓ２）、ソースプログラム４ａの網羅性を自動的にテストする。そして、そのソースプログラム４ａの自動テスト結果２ａをファイル共有サーバ２に格納する（Ｓ３）。
そして、プログラム開発端末１は、ファイル共有サーバ２に格納されている自動テスト結果２ａを読み出し（Ｓ４）、その自動テスト結果２ａから自動テストサーバ３によるソースプログラム４ａの未実行箇所リスト１ａを作成する。
【００１６】
そして、プログラム開発端末１は、自動テストサーバ３によるソースプログラム４ａの未実行箇所リスト１ａおよび機能テスト実行ログ１ｂをオートチェッカ５に入力する（Ｓ５）。そして、オートチェッカ５は、自動テストサーバ３によるソースプログラム４ａの未実行箇所リスト１ａおよび機能テスト実行ログ１ｂが入力されると、自動テストサーバ３にて検出された未実行箇所リスト２ａのうち、機能テスト実行ログ１ｂにて実行が確認された箇所を削除することにより、ソースプログラム４ａの未実行箇所リスト６ａを生成するとともに、機能テスト実行ログ中実行エビデンス６ｂを生成する。なお、これらの処理は、各プログラム開発端末１ごとに行われるので、並列に実行することができる。
【００１７】
これにより、自動テストサーバ３にてソースプログラム４ａの網羅性を自動的に測定させることができ、ソースプログラム４ａの網羅性を測定するための自動テストツールをプログラム開発端末１にインストールする必要がなくなるとともに、ソースプログラム４ａの機能テスト実行ログ１ｂを参照することにより、自動テストサーバ３で動作の確認できなかった未実行箇所が実行できたかどうかを判断させることができる。このため、プログラム開発端末１にて自動テストツールを動作させる必要がなくなり、自動テストツールをプログラム開発端末１上で使いこなすための高度な知識と経験を不要として、ソースプログラム４ａの開発効率を向上させることが可能となるとともに、ソースプログラム４ａの網羅性を向上させることができ、ソースプログラム４ａの網羅性を確認するためのテストにかかる工数を削減することができる。
【００１８】
なお、オートチェッカ５によるソースプログラム４ａの未実行箇所リスト６ａの生成処理は、この処理を遂行させる命令が記述されたプログラムをコンピュータに実行させることにより実現することができる。そして、このプログラムをＣＤ−ＲＯＭなどの記憶媒体に記憶しておけば、コンピュータに記憶媒体を装着し、そのプログラムをコンピュータにインストールすることにより、ソースプログラム４ａの未実行箇所リスト６ａの生成処理を実現することができる。また、このプログラムを通信網を介してダウンロードすることにより、このプログラムを容易に普及させることができる。
また、ソースプログラム４ａの未実行箇所リスト６ａの生成処理を遂行させる命令が記述されたプログラムをコンピュータに実行させる場合、スタンドアロン型コンピュータで実行させるようにしてもよく、ネットワークに接続された複数のコンピュータに分散処理させるようにしてもよい。
【００１９】
図２は、本発明の一実施形態に係るプログラム検査装置の検査方法についてＪａｖａ（登録商標）で記述されたプログラムを例にとって示す図である。
図２において、自動テストサーバ３にて行われたソースプログラム４ａの自動テスト結果２ａとして、ソースプログラム４ａの行ごとに実行箇所と未実行箇所とが色分けされ、ＨＴＭＬファイルとしてクラスごとに出力される。例えば、自動テスト結果２ａにおいて、“ｆｕｎｃＡ：２”および“ｆｕｎｃＡ：４”の部分は動作の確認できなかった未実行箇所として色分けされて出力される。なお、ソースプログラム４ａのｉｆ文、ｆｏｒ文、ｔｒｙ  ｃａｔｃｈ文を使った関数には、網羅性を確認するための確認ログを挿入することができる。
【００２０】
そして、この自動テスト結果２ａから動作の確認できなかった未実行箇所を抽出することにより、プログラム開発端末１によるソースプログラム４ａの未実行箇所リスト１ａを各開発者の担当範囲ごとに生成する。
さらに、プログラム開発端末１上でソースプログラム４ａの機能をテストするためにソースプログラム４ａが実行されると、機能テスト実行ログ１ｂが出力される。そして、機能テスト実行ログ１ｂを参照することにより、例えば、クラス００１において、“ｆｕｎｃＡ：２”および“ｆｕｎｃＣ：３−１”などの実行を確認することができる。
【００２１】
そして、自動テストサーバ３によるソースプログラム４ａの未実行箇所リスト１ａおよび機能テスト実行ログ１ｂがオートチェッカ５に入力されると、自動テストサーバ３による未実行箇所リスト２ａのうち、機能テスト実行ログ１ｂにて実行が確認された箇所が削除され、ソースプログラム４ａの未実行箇所リスト６ａが生成されるとともに、機能テスト実行ログ中実行エビデンス６ｂが生成される。
【００２２】
例えば、未実行箇所リスト１ａでは、クラス００１の“ｆｕｎｃＡ：２”およびｆｕｎｃＣ：３−１”は動作の確認できなかった未実行箇所として抽出する。一方、機能テスト実行ログ１ｂでは、クラス００１の“ｆｕｎｃＡ：２”および“ｆｕｎｃＣ：３−１”の実行が確認されている。このため、オートチェッカ５は、機能テスト実行ログ４にて実行が確認されたクラス００１の“ｆｕｎｃＡ：２”および“ｆｕｎｃＣ：３−１”を未実行箇所リスト１ａから削除することにより、未実行箇所リスト６ａを生成することができ、ソースプログラム４ａの網羅性を向上させることが可能となる。
なお、自動テスト結果２ａはアーカイブ化され、そのＨＴＭＬファイルのファイル名に日付けが付与されるため、自動テスト結果２ａはそのまま網羅性テストのエビデンスとして実行エビデンス６ｂとともに保管することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るプログラム検査装置の概略構成を示すブロック図である。
【図２】本発明の一実施形態に係るプログラム検査装置の検査方法についてＪａｖａ（登録商標）で記述されたプログラムを例にとって示す図である。
【符号の説明】
【００２４】
１  プログラム開発端末
１ａ、６ａ  未実行箇所リスト
１ｂ  機能テスト実行ログ
２  ファイル共有サーバ
２ａ  自動テスト結果
３  自動テストサーバ
４  ソース管理サーバ
４ａ  ソースプログラム
４ｂ  実行ログ呼出処理
５  オートチェッカ
６ｂ  実行エビデンス
７  ネットワーク
１１  ログ管理領域
【図１】
2007249906.tif 000003
【図２】
2007249906.tif 000004