(57)【特許請求の範囲】
【請求項１】
コード網羅率決定方法であって、
プログラムのソースコードをリトリーブし、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、
１または複数のプロセッサを用いて、各ログファイルに記録されている対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定することであって、
前記対応する各ログファイル出力ポイントの前記位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントし、
各ログファイル出力ポイントについて出力されたログファイルの前記実際の数が１より大きい場合に、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数から或る値を減算して、各ログファイル出力ポイントによって出力された反復の数を取得し、
出力されたログファイルの前記反復の数に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの最終的な数を出力すること、を備える、前記出力ログファイルのログファイル出力ポイントの実際の数を決定すること、を備え、
前記１または複数のプロセッサを用いて、前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定すること、
を備える、方法。
【請求項２】
コード網羅率決定方法であって、
プログラムのソースコードをリトリーブし、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、
１または複数のプロセッサを用いて、各ログファイルに記録されている対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定することであって、
Ｓ１：量記録リストを確立し、
Ｓ２：実際に出力されたログファイルを選択し、
Ｓ３：前記選択された実際に出力されたログファイルの前記対応するログファイル出力ポイントの前記位置情報をリトリーブし、
Ｓ４：前記位置情報が前記量記録リストに含まれているか否かを判定し、
Ｓ５：前記位置情報が前記量記録リストに含まれていない場合に、
前記位置情報を前記量記録リストに追加し、
前記量記録リストの量を増大させ、
Ｓ７に進み、
Ｓ６：前記位置情報が前記量記録リストに含まれている場合に、Ｓ７に進み、
Ｓ７：実際に出力されたログファイルが残っているか否かを判定し、
Ｓ８：前記実際に出力されたログファイルが残っている場合に、Ｓ２に進み、
Ｓ９：前記実際に出力されたログファイルが残っていない場合に、前記量記録リストに含まれる前記量を前記実際に出力されたログファイルのログファイル出力ポイントの前記数に割り当てること、を備え、
前記１または複数のプロセッサを用いて、前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定すること、
を備える、方法。
【請求項３】
請求項１または２に記載のコード網羅率決定方法であって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、方法。
【請求項４】
請求項１または２に記載のコード網羅率決定方法であって、
前記ソースコードに含まれる前記ログファイル出力ポイントの前記理論的な数を決定することは、異なるフォルダに含まれる前記ソースコードのログファイル出力ポイントの前記理論的な数を分析することを備え、
前記プログラムの実行中に実際に出力されたログファイルのログファイル出力ポイントの前記数は、各フォルダに含まれる実際に出力されたログファイルのログファイル出力ポイントの数に対応する、方法。
【請求項５】
コード網羅率決定システムであって、
少なくとも１つのプロセッサであって、
プログラムのソースコードをリトリーブし、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、
各ログファイルに記録された対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定することであって、
前記対応する各ログファイル出力ポイントの前記位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントし、
各ログファイル出力ポイントについて出力されたログファイルの前記実際の数が１より大きい場合に、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数から或る値を減算して、各ログファイル出力ポイントによって出力された反復の数を取得し、
出力されたログファイルの前記反復の数に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの最終的な数を出力すること、を備える、前記出力ログファイルのログファイル出力ポイントの実際の数を決定すること、を備え、
前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するように構成されている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項６】
コード網羅率決定システムであって、
少なくとも１つのプロセッサであって、
プログラムのソースコードをリトリーブし、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、
各ログファイルに記録された対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定することであって、
Ｓ１：量記録リストを確立し、
Ｓ２：実際に出力されたログファイルを選択し、
Ｓ３：前記選択された実際に出力されたログファイルの前記対応するログファイル出力ポイントの前記位置情報をリトリーブし、
Ｓ４：前記位置情報が前記量記録リストに含まれているか否かを判定し、
Ｓ５：前記位置情報が前記量記録リストに含まれていない場合に、
前記位置情報を前記量記録リストに追加し、
前記量記録リストの量を増大させ、
Ｓ７に進み、
Ｓ６：前記位置情報が前記量記録リストに含まれている場合に、Ｓ７に進み、
Ｓ７：実際に出力されたログファイルが残っているか否かを判定し、
Ｓ８：前記実際に出力されたログファイルが残っている場合に、Ｓ２に進み、
Ｓ９：前記実際に出力されたログファイルが残っていない場合に、前記量記録リストに含まれる前記量を前記実際に出力されたログファイルのログファイル出力ポイントの前記数に割り当てること、を備え、
前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するように構成されている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項７】
請求項５または６に記載のコード網羅率決定システムであって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、システム。
【請求項８】
コード網羅率を決定するためのコンピュータプログラムであって、
プログラムのソースコードをリトリーブするための機能と、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定するための機能と、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブするための機能と、
各ログファイルに記録された前記対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定するための機能であって、
前記対応する各ログファイル出力ポイントの前記位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントし、
各ログファイル出力ポイントについて出力されたログファイルの前記実際の数が１より大きい場合に、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数から或る値を減算して、各ログファイル出力ポイントによって出力された反復の数を取得し、
出力されたログファイルの前記反復の数に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの最終的な数を出力すること、を備える、前記出力ログファイルのログファイル出力ポイントの実際の数を決定することを備える、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定するための機能と、
前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するための機能と、
をコンピュータによって実現させる、コンピュータプログラム。
【請求項９】
コード網羅率を決定するためのコンピュータプログラムであって、
プログラムのソースコードをリトリーブするための機能と、
前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定するための機能と、
前記プログラムの実行中に実際に出力されたログファイルをリトリーブするための機能と、
各ログファイルに記録された前記対応するログファイル出力ポイントの前記位置情報に基づいて、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定するための機能であって、
Ｓ１：量記録リストを確立し、
Ｓ２：実際に出力されたログファイルを選択し、
Ｓ３：前記選択された実際に出力されたログファイルの前記対応するログファイル出力ポイントの前記位置情報をリトリーブし、
Ｓ４：前記位置情報が前記量記録リストに含まれているか否かを判定し、
Ｓ５：前記位置情報が前記量記録リストに含まれていない場合に、
前記位置情報を前記量記録リストに追加し、
前記量記録リストの量を増大させ、
Ｓ７に進み、
Ｓ６：前記位置情報が前記量記録リストに含まれている場合に、Ｓ７に進み、
Ｓ７：実際に出力されたログファイルが残っているか否かを判定し、
Ｓ８：前記実際に出力されたログファイルが残っている場合に、Ｓ２に進み、
Ｓ９：前記実際に出力されたログファイルが残っていない場合に、前記量記録リストに含まれる前記量を前記実際に出力されたログファイルのログファイル出力ポイントの前記数に割り当てること、を備える、前記実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定するための機能と、
前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実際に出力されたログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するための機能と、
をコンピュータによって実現させる、コンピュータプログラム。
【請求項１０】
請求項８または９に記載のコンピュータプログラムであって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、コンピュータプログラム。
【請求項１１】
請求項８または９に記載のコンピュータプログラムであって、
前記ソースコードに含まれる前記ログファイル出力ポイントの前記理論的な数を分析することは、異なるフォルダに含まれる前記ソースコードのログファイル出力ポイントの前記理論的な数を決定することを備え、
前記プログラムの実行中に実際に出力されたログファイルのログファイル出力ポイントの前記数は、各フォルダに含まれる実際に出力されたログファイルのログファイル出力ポイントの数に対応する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、発明の名称を「ＣＯＤＥ  ＣＯＶＥＲＡＧＥ  ＲＡＴＥ  ＤＥＴＥＲＭＩＮＡＴＩＯＮ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＡＮＤ  ＣＯＤＥ  ＣＯＶＥＲＡＧＥ  ＤＥＴＥＣＴＩＯＮ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ（コード網羅率決定方法およびシステム、並びにコード網羅検出方法およびシステム）」とする、２０１２年２月１４日出願の中国特許出願第２０１２１００３３０７７．Ｘ号に基づく優先権を主張する。
【０００２】
本願は、コード網羅率決定方法およびシステムに関する。
【背景技術】
【０００３】
コンピュータプログラムのテスト処理では、コード網羅率が、プログラムコードの網羅を評価するために用いられる指標になる。コード網羅率は、ソースコードがテスト中に用いられた程度を計るものである。コード網羅率に関する統計が、プログラム内のコードがどれくらい実行されたかを理解することを可能にし、コードの網羅がどこで不十分であるのかを決定することにより、プログラムの潜在的な問題を発見するのに役立つ。
【０００４】
コード網羅率決定方法の１つは、テスト対象のコードのランタイム状況にタグ付けし、遭遇したタグの数に基づいて、実行された実行コードの量の最終カウント数を取得し、遭遇したタグの量に基づいた実行コードの量をコードの総量と比較することによってコード網羅率を決定することを含む。例えば、方法は、テスト対象のプログラム内のコードの総量、テスト対象のプログラムのベースアドレス、および、プログラムの各コード行の相対仮想アドレスを決定すること、ベースアドレスおよび相対仮想アドレスに基づいて各コード行にブレークポイントを設定すること、ブレークポイントがテスト対象のプログラムの実行時に現れるか否かを判定すること、ならびに、ブレークポイントが現れたコード行にタグ付けすることを備える。最終的に、実行されたコードの総量を取得するために、タグ付けされたコード行の累計が用いられる。実行されたコードの総量を、テスト対象のプログラムのコードの総量によって割ったものがコード網羅率である。
【０００５】
別の方法は、テスト処理が始まる前に、コード網羅率が決定されるソースコードにテスト情報出力設定を追加することによって、テスト対象のプログラムのソースコードおよび構成を変更すること、テスト処理中に、ソースコードに追加されたテスト情報出力設定に基づいて、テストされたソースコードによって出力されたタグを内部に記録すること、ならびに、テスト処理の終了後に、タグに基づいて、実行されたソースコードをリトリーブし、出力されたタグの数に基づいた実行済みソースコードの量をソースコードの総量と比較することによってコード網羅率を取得することを備える。
【０００６】
上述の方法はすべて、コード網羅率を決定するために予めソースコードにタグを追加する。ソースコードの量が非常に多い場合、上述の方法は、大量の処理を生み出すため、テスト時間に影響する。また、上述のコード網羅率決定方法は、ソースコードの処理を必要とするため、プログラムのテスト段階にしか適用されず、プログラムの実際の実行中には実施できない。
【図面の簡単な説明】
【０００７】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００８】
【図１】コード網羅率検出システムの一実施形態を示す概略図。
【０００９】
【図２Ａ】ログファイル出力ポイント数決定システムの一実施形態を示す概略図。
【００１０】
【図２Ｂ】ログファイル出力ポイント数決定システムの別の実施形態を示す概略図。
【００１１】
【図２Ｃ】ログファイル出力ポイント数決定システムのさらに別の実施形態を示す概略図。
【００１２】
【図３】コード網羅率決定システムの別の実施形態を示す概略図。
【００１３】
【図４】コード網羅率決定方法の一実施形態を示すフローチャート。
【００１４】
【図５Ａ】ログファイル出力ポイント数決定方法の一実施形態を示す概略図。
【００１５】
【図５Ｂ】ログファイル出力ポイント数決定方法の別の実施形態を示す概略図。
【００１６】
【図５Ｃ】ログファイル出力ポイント数決定方法のさらに別の実施形態を示す概略図。
【００１７】
【図６】コード網羅率決定方法の別の実施形態を示すフローチャート。
【００１８】
【図７】コード網羅検出方法の一実施形態を示すフローチャート。
【００１９】
【図８】コード網羅検出方法の別の実施形態を示すフローチャート。
【発明を実施するための形態】
【００２０】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００２１】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００２２】
図１は、コード網羅率検出システムの一実施形態を示す概略図である。システム１００は、ログファイル出力ポイント情報リトリーブユニット１１０、ログファイル出力ポイント決定ユニット１２０、実出力ログファイルリトリーブユニット１３０、ログファイル出力ポイント量子化ユニット１４０、コード網羅率決定ユニット１５０、および、コード実行ユニット１６０を備える。
【００２３】
ログファイル出力ポイント情報リトリーブユニット１１０は、プログラムのソースコードをリトリーブするよう構成されている。
【００２４】
ログファイル出力ポイント決定ユニット１２０は、ソースコードに含まれるログファイル出力ポイントの理論的な数および位置情報を決定するよう構成されている。その決定の詳細については、図４を参照して後述する。
【００２５】
実出力ログファイルリトリーブユニット１３０は、プログラムの実行中に実際に出力されたログファイル（実出力ログファイル）をリトリーブするよう構成されている。
【００２６】
ログファイル出力ポイント量子化ユニット１４０は、各ログファイルに記録された対応するログファイル出力ポイントの位置情報に基づいて、実際に出力されたログファイルのログファイル出力ポイントの数を決定するよう構成されている。一例において、ログファイル出力ポイント量子化ユニット１４０は、任意選択的に、読み出し要素および受信要素を備える。読み出し要素は、プログラムによって出力されたログファイルを所定の格納位置から読み出すよう構成されている。格納位置は、プログラムによって予め決定されうる。受信要素は、プログラムによって送信されたログファイルを所定のインターフェースから受信するよう構成されている。所定のインターフェースは、プログラムによって予め決定されうる。
【００２７】
プログラマは、しばしば、ログファイルを用いて、プログラムの動作に関する情報を記録する。本明細書で用いられているように、ログファイル出力ポイントとは、ログが出力されるプログラム内のポイントを指す。ログファイル出力ポイントは、時刻、エラーレベル（例えば、致命的、エラー、警告、情報、デバッグなど）、および、対応するソースコードの位置に関連するログ情報（例えば、ファイル、行数など）を示しうる。例えば、ログファイル出力ポイントで出力されるログは、動作環境に関する情報など、プログラムの動作に関する情報を含むことができ、警告などのログレベルを有しうる。
【００２８】
結果として、オンラインシステム内のログプログラムが、プログラムの出力を自動的に開いて、或る期間にわたって格納し、より簡単な様々なランタイム環境でログファイル情報を取得できる。いくつかの実施形態において、その期間は、数日に設定されうる。コード網羅率決定ユニット１５０は、ソースコードに含まれるログファイル出力ポイントの理論的な数および実出力ログファイルのログファイル出力ポイントの数に基づいて、プログラムのコード網羅率を取得するよう構成されている。
【００２９】
コード実行ユニット１６０は、ソースコードをコンパイルして実行するよう構成されている。
【００３０】
実出力ログファイルのログファイル出力ポイントの数は、以下のシステム（これに限定されない）を用いて決定されてよい。
【００３１】
図２Ａは、ログファイル出力ポイントの数を決定するよう構成されたログファイル出力ポイント決定システムの一実施形態を示す概略図である。システム２００は、ログファイル出力ポイント量子化ユニット１４０の実装例である。システム２００は、ログファイル分析ユニット２１０、マージユニット２２０、マージログファイルカウントユニット２３０、および、入力／出力ユニット２３５を備える。
【００３２】
ログファイル分析ユニット２１０は、実出力ログファイルの内容を分析して、対応するログファイル出力ポイントの位置情報を取得するよう構成されている。
【００３３】
マージユニット２２０は、同じ位置情報を含むログファイルを１つのマージログファイルにマージするよう構成されている。
【００３４】
マージログファイルカウントユニット２３０は、マージログファイルの総数に基づいて、実出力ログファイルのログファイル出力ポイントの総数をカウントするよう構成されている。
【００３５】
入力／出力ユニット２３５は、ログファイルを入力および出力するよう構成されている。
【００３６】
図２Ｂは、ログファイル出力ポイントの数を決定するよう構成されたログファイル出力ポイント決定システムの別の実施形態を示す概略図である。システム２４０は、ログファイル出力ポイント量子化ユニット１４０の実装例である。システム２４０は、実出力ログファイルカウントユニット２５０、減算ユニット２６０、および、出力ユニット２６５を備える。
【００３７】
実出力ログファイルカウントユニット２５０は、対応する各ログファイル出力ポイントの位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントするよう構成されている。２以上のログファイルが出力されうる理由は、ログファイルが特定のサイズに達した後に別のログファイルを形成しうることである。特定のログファイル出力ポイントに関する出力を取得するために、特定の時間内に出力された全ログファイルが収集されうる。
【００３８】
減算ユニット２６０は、各ログファイル出力ポイントについて出力されたログファイルの実際の数が１より大きい（２以上である）場合に、出力されたログファイルの実際の数から或る値を減算して反復数を取得するよう構成されている。或る値は、１でありうる。
【００３９】
出力ユニット２６５は、出力されたログファイルの反復数に基づいて、実出力ログファイルのログファイル出力ポイントの最終的な数を出力するよう構成されている。
【００４０】
最終的な数を取得するために、出力されたログファイルの実際の数からログファイルの反復数を減算することで、ログファイルの最終的な数を取得する。そして、ログファイルの最終的な数は、ログファイル出力ポイントの最終的な数に割り当てられる。
【００４１】
図２Ｃは、ログファイル出力ポイント数決定システムのさらに別の実施形態を示す概略図である。システム２７０は、ログファイル出力ポイント量子化ユニット１４０の実装例である。システム２７０は、確立ユニット２７２、選択ユニット２７４、リトリーブユニット２７６、位置判定ユニット２７８、追加ユニット２８０、および、量判定ユニット２８２を備える。
【００４２】
確立ユニット２７２は、量記録リストを確立するよう構成されている。量記録リストの初期値は、０であってよい。
【００４３】
選択ユニット２７４は、実出力ログファイルを選択するよう構成されている。
【００４４】
リトリーブユニット２７６は、選択された実出力ログファイルに対応するログファイル出力ポイントの位置情報をリトリーブするよう構成されている。
【００４５】
位置判定ユニット２７８は、位置情報が量記録リストに含まれているか否かを判定するよう構成されている。
【００４６】
位置情報が量記録リストに含まれていない場合、追加ユニット２８０は、その位置情報を量記録リストに追加し、量記録リスト内の量を１だけ増分させるよう構成されている。量判定ユニット２８２は、判定動作を実行するよう構成されている。
【００４７】
判定動作は、任意の実出力ログファイルが残っているか否かを判定することを含み、実出力ログファイルが残っている場合、選択ユニット２７４が、別の実出力ログファイルを選択し、実出力ログファイルが残っていない場合、量記録リストに含まれる量が、実出力ログファイルのログファイル出力ポイントの量として割り当てられる。
【００４８】
位置情報が量記録リストに含まれる場合に、量判定ユニット２８２は、上記の判定動作を実行するよう構成されている。
【００４９】
図３は、コード網羅率決定システムの別の実施形態を示す概略図である。システム３００は、ログファイル出力ポイント決定ユニット３１０、比較ユニット３２０、未網羅コード決定ユニット３３０、および、入力／出力ユニット３４０を備える。
【００５０】
ログファイル出力ポイント決定ユニット３１０は、実出力ログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、ソースコードにおける実出力ログファイルのログファイル出力ポイントを決定するよう構成されている。
【００５１】
比較ユニット３２０は、実出力ログファイルのログファイル出力ポイントと理論的なログファイル出力ポイントとに基づいて、出力されていないログファイルのログファイル出力ポイントを決定するよう構成されている。いくつかの実施形態において、比較ユニット３２０は、一部のランタイム環境では出力されているが他のランタイム環境では出力されていないログファイルのログファイル出力ポイントを決定するために、異なるランタイム環境での実出力ログファイルを比較するよう構成されている。
【００５２】
例えば、２つの異なるランタイム環境からの出力が、１つのファイルに格納されうる。ファイルは、２つの異なるランタイム環境について、様々な出力ポイントと、対応するログレベルとを示すことができる。各出力ポイントについて、ファイルは、２つの異なるランタイム環境がログを出力するか否かを示すことができる。いくつかの実施形態において、ファイルは、ログが、各環境で各出力ポイントについて出力されたか否かを示すことができる。
【００５３】
未網羅コード決定ユニット３３０は、出力されていないログファイルのログファイル出力ポイントに基づいて、網羅されていないコードすなわち未網羅コードを決定するよう構成されている。
【００５４】
入力／出力ユニット３４０は、ログファイルを入力および出力するよう構成されている。
【００５５】
図４は、コード網羅率決定方法の一実施形態を示すフローチャートである。方法４００は、例えば、システム１００で実施されうる。コード網羅率決定方法４００は、以下の工程を含む。
【００５６】
工程４１０では、システムは、プログラムのソースコードをリトリーブするよう構成されている。
【００５７】
工程４２０では、システムは、ソースコードに含まれるログファイル出力ポイントの理論的な数および位置情報を分析するよう構成されている。
【００５８】
一般に、後のプログラム保守および検査処理中に実際の問題をより容易に発見して解決するために、ログファイル出力ポイントがソースコード内に設定され、対応するコード行のランタイム状況を記録する。１つのログファイル出力ポイントが、通常、複数のコード行に対応する。それらのコード行が正常に実行された場合、対応するログファイルが出力される。ログファイル出力ポイントは、一般に、所定のフォーマットを用いてマークされる。ログファイル出力ポイントの所定のフォーマットは、スキャナが、ログファイル出力ポイント、ソースコード内でのログファイル出力ポイントの位置情報、および、その他のログファイル内容（例えば、ログ書き込み記録、ログレベルなど）への対応関係を取得するために、プログラムのソースコードを分析することを可能にする。分析によって取得された情報は、ログファイル出力ポイントの理論的な数の取得を容易にする。ログファイル出力ポイントの理論的な数は、プログラムのソースコードが正常に実行されると仮定すれば、出力ログファイルのログファイル出力ポイントの総数に関連する。
【００５９】
従来の走査処理は、ソースコード全体に含まれるログ情報を決定するために、ログプログラム特性に関してソースコード全体を走査する工程を含む。ログ情報を決定するために、ソースコードの全文走査の代わりに、ｃｔａｇなどの方法も利用できる。
【００６０】
工程４３０では、システムは、プログラム実行中に実際に出力されたログファイルをリトリーブするよう構成されている。
【００６１】
工程４４０では、システムは、各ログファイルに記録された対応するログファイル出力ポイントの位置情報に基づいて、実際に出力されたログファイルのログファイル出力ポイントの実際の数を決定するよう構成されている。
【００６２】
ログファイル位置を出力するよう構成されたコードが実行されると、対応するログファイルが出力される。プログラムの実行中に出力されたログファイルをカウントして、そこに記録された対応するログファイル出力ポイントの位置情報を分析することにより、システムは、実出力ログファイル内のログファイル出力ポイントの数をカウントできる。その結果、実行されたコード行の数をカウントすることができる。
【００６３】
プログラムの実行中に実際に出力されたログファイルは、一般に、所定のパスに格納され、ログファイルは、格納位置から直接読み出されることができる。出力ログファイルの格納位置のパスは、プログラムの実行中に変更されうる、または、実出力ログファイルは、所定のインターフェースからリトリーブされうる。いくつかの実施形態では、プログラムの正常な実行への影響を避けるために、プログラムがコード網羅率決定システムにログファイルを出力する頻度を設定できる。例えば、プログラムがログファイルを出力する頻度は、３０分ごと、１時間ごと、または、プログラムの実行が完了した後に１回出力、に設定することができる。
【００６４】
工程４５０では、システムは、ソースコードに含まれるログファイル出力ポイントの理論的な数および実出力ログファイルのログファイル出力ポイントの数に基づいて、プログラムのコード網羅率を取得するよう構成されている。
【００６５】
ソースコードに含まれるログファイル出力ポイントの理論的な数と、実出力ログファイルのログファイル出力ポイントの数との比が、コード網羅率に対応しうる。コード網羅率は、実際のコード数を含まないので、取得されたコード網羅率は、実際のコード網羅に相当する絶対値に対応しえない。別の態様として、コード網羅率の決定は、絶対値の取得に単に対応しているだけではない。それどころか、コード網羅率の利点の１つは、ソースコード内で潜在的に生じうる問題の特定に役立つことである。
【００６６】
コード網羅率決定方法４００を用いて取得された結果は、コード網羅の正確な数値に必ずしも対応しない。そこで出力されたログファイルによって表現された結果は、ログファイル出力ポイントに対応する実行コード行の特定の数である。したがって、ソースコードに含まれるコードの各部分のランタイム状況全体が正確に反映される。例えば、実際の実行中に出力されることが予期されたログファイル出力ポイントについて、ログファイルが出力されなかった場合、このシナリオは、ソースコードのこの位置で問題が起きたことを示唆する。ログファイル出力ポイントに対応する特定の数のコード行の一部が実行されても、それらの行が考慮されるか否かは、ソースコード内の問題の特定に影響しないため、それらの行は、コード網羅率を決定する際に考慮される必要はない。
【００６７】
実出力ログファイルのログファイル出力ポイントの決定は、様々な方法で実行されうる。各ログファイル出力ポイントが１つのログファイルのみを出力する場合、実出力ログファイルの総数は、実出力ログファイルのログファイル出力ポイントの数に対応しうる。しかしながら、実際の動作では、同じログファイル出力ポイントが、複数のログファイルに出力されうる。ログファイル出力ポイントの総数の精度を保証するために、反復されたログファイルを除去することが可能であり、除去後のログファイルの数が、ログファイル出力ポイントの総数に割り当てられる。別の例において、反復されたログファイルの除去は、少なくとも以下の方法を用いて実施されうる。
【００６８】
図５Ａは、ログファイル出力ポイント数決定方法の一実施形態を示す概略図である。方法５００は、以下を含む。
【００６９】
工程５１０では、システムは、実出力ログファイルの内容を分析して、ソースコードに記録された対応するログファイル出力ポイントの位置情報を取得するよう構成されている。
【００７０】
工程５２０では、システムは、同じ位置情報を含むログファイルを１つのマージログファイルにマージするよう構成されている。
【００７１】
工程５３０では、システムは、マージログファイルの総数をカウントすることによって、実際に出力されたログファイルのログファイル出力ポイントの総数を決定するよう構成されている。マージログファイルの総数は、実出力ログファイルのログファイル出力ポイントの数に対応する。
【００７２】
図５Ｂは、ログファイル出力ポイント数決定方法の別の実施形態を示す概略図である。方法５４０は、以下を含む。
【００７３】
工程５５０では、システムは、ログファイルに記録された対応する各ログファイル出力ポイントの位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントするよう構成されている。
【００７４】
工程５５５では、ログファイルの数が２以上である場合、システムは、各ログファイル出力ポイントについて出力された反復数を取得するために、各ログファイル出力ポイントについて出力されたログファイルの実際の数から値（例えば、１）を減算するよう構成されている。
【００７５】
工程５６０では、システムは、出力されたログファイルの反復数に基づいて、実出力ログファイルのログファイル出力ポイントの最終的な数を出力するよう構成されている。実出力ログファイルの総数から反復数を引いた数が、実出力ログファイルのログファイル出力ポイントの最終的な数に対応する。
【００７６】
例えば、実際に出力されたログファイルの総数が２００であり、特定の位置で出力されたログファイルの実際の数が１０であれば、各位置が固有のログ出力ポイントに関連する場合、「１０−１」が、反復数「９」に対応する。さらに、各ログファイルは、反復ログファイルを位置に関して決定できるように、コード内での自身の位置を含むことができる。「２００−９＝１９１」という数が、実出力ログファイルのログファイル出力ポイントの数に対応する。他の位置も反復を有する場合、すべての反復を差し引いて最終的な数（すなわち、実出力ログファイルのログファイル出力ポイントの数）が得られるまで、同じ処理が繰り返される。
【００７７】
図５Ｃは、ログファイル出力ポイント数決定方法のさらに別の実施形態を示す概略図である。方法５７０は、以下を含む。
【００７８】
工程５７２では、システムは、量記録リストを確立するよう構成されている。量記録リストにおける量の初期値は、０であってよい。
【００７９】
工程５７４では、システムは、実出力ログファイルを選択するよう構成されている。
【００８０】
工程５７６では、システムは、選択された実出力ログファイルに対応するログファイル出力ポイントの位置情報をリトリーブするよう構成されている。
【００８１】
工程５７８では、システムは、位置情報が量記録リストに含まれているか否かを判定するよう構成されている。
【００８２】
位置情報が量記録リストに含まれていない場合、工程５８０では、システムは、その位置情報を量記録リストに追加し、或る値だけ量を増大させるよう構成されている。
【００８３】
位置情報が量記録リストに含まれる場合、工程５８２では、システムは、任意の実出力ログファイルが残っているか否かを判定するよう構成されている。
【００８４】
工程５８２において、実出力ログファイルが残っていた場合、システムは、工程５７４に進んで、別の実出力ログファイルを選択するよう構成されている。
【００８５】
実出力ログファイルが残っていなかった場合、工程５８４で、システムは、量記録リストに含まれる量を実出力ログファイルのログファイル出力ポイント数に割り当てるよう構成されている。
【００８６】
当業者であれば、ログファイルの反復部分が差し引かれる限りは、他の方法も利用できることがわかる。
【００８７】
図６は、コード網羅率決定方法の別の実施形態を示すフローチャートである。方法６００は、例えば、システム１００で実施されうる。１つのプログラムが複数の機能ユニットを含みうるので、ソースコードの書き込み中に、各機能ユニットに対応するコードが、検索および区別を容易にするために、異なるフォルダに配置されうる。したがって、方法６００は、以下を含む。
【００８８】
工程６１０では、デバイスが、プログラムのソースコードをリトリーブするよう構成されている。
【００８９】
工程６２０では、デバイスは、異なる位置（例えば、ファイルフォルダ）に含まれるソースコードのログファイル出力ポイントの理論的な数を分析するよう構成されている。
【００９０】
工程６３０では、デバイスは、プログラム実行中に実際に出力されたログファイルをリトリーブするよう構成されている。
【００９１】
工程６４０では、デバイスは、プログラム実行中に各フォルダに実際に出力されたログファイルのログファイル出力ポイントの数を決定するよう構成されている。
【００９２】
工程６５０では、デバイスは、各フォルダに含まれるログファイル出力ポイントの理論的な数および実出力ログファイルのログファイル出力ポイントの数に基づいて、各フォルダについてコード網羅率を取得するよう構成されている。
【００９３】
各フォルダについてのコード網羅率を分析することにより、プログラムのソースコード内で問題がある場所の決定を容易に行うことができる。例えば、特定のフォルダのコード網羅率が１００％と決定され、別のフォルダのコード網羅率が３０％と決定された場合、後者のフォルダに関連したソースコードに問題が存在しうると決定できる。したがって、ソースコードのその後の保守および修正を容易にすることができる。
【００９４】
いくつかの実施形態において、方法６００がソースコード全体のコード網羅率を決定するために用いられる場合、同じ方法４００を用いて方法６００を実施できるように、異なる各位置（例えば、ファイルフォルダ）について工程４１０〜４５０で決定された量を直接合計できる。
【００９５】
さらに、プログラムの実行中に出力されたログファイルは、以下の情報を含みうる：時刻、レベル（例えば、致命的／エラー／警告／情報／デバッグなど）、どのファイルのどのソースコード行でログ出力ポイントが出力されたか、具体的なログ内容など。ログファイルに含まれる情報を分析することにより、プログラムの特定の実行中のログファイル出力状況を正確に取得することができ、その状況とソースコード内の特定のコードとの関係性を正確に決定することができる。例えば、プログラム実行中に出力されたログファイルが、以下に示す通りであったとする。
［２０１１−０９−２１  １１：４４：５７．００９１３７］（時刻）
［ＷＡＲＮＩＮＧ］
［１８３１６］
［ｂｕｉｌｄ／ｄｅｂｕｇ６４／ｃｏｍｐｏｎｅｎｔ／ｓｕｂ＿ｐａｔｈ／ｆｉｌｅ．ｃｐｐ：１１８１］
＿＿ＴＡＲＧＥＴ＿ＩＤ＿＿：ｓｙｓ／ｃｏｍｐｏｎｅｎｔ
ＰＲＯＦＩＬＩＮＧ：Ｔｕｂｏ  ｓｔａｒｔ  ｔｈｅ  ｆｕｘｉ  ｗｏｒｋ  ｉｔｅｍ：１３１６５７６６９７
【００９６】
上の例に示すように、このログファイルの時刻は「２０１１−０９−２１  １１：４４：５７．００９１３７」、レベルは「ＷＡＲＮＩＮＧ（警告）」、対応するログファイル出力ポイントのソースコード内での位置は「ｂｕｉｌｄ／ｄｅｂｕｇ６４／ｃｏｍｐｏｎｅｎｔ／ｓｕｂ＿ｐａｔｈ／ｆｉｌｅ．ｃｐｐ：１１８１」である。したがって、方法６００は、ランタイム環境で特定のプログラムのコード網羅の程度を決定するために、ログファイルに含まれる情報に基づいてコード網羅検出を実施することもできる。
【００９７】
図７は、コード網羅検出方法の一実施形態を示すフローチャートである。方法７００は、例えば、システム３００で実施されうる。方法７００は、以下を含む。
【００９８】
工程７１０では、デバイスが、実出力ログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、プログラムのソースコードにおける実出力ログファイルのログファイル出力ポイントを決定するよう構成されている。
【００９９】
工程７２０では、デバイスは、実出力ログファイルのログファイル出力ポイントと理論的なログファイル出力ポイントとに基づいて、出力されていないログファイルのログファイル出力ポイントを決定するよう構成されている。
【０１００】
工程７３０では、デバイスは、出力されていないログファイルのログファイル出力ポイントに基づいて、未網羅コードを決定するよう構成されている。
【０１０１】
対応するログファイル出力ポイントのソースコード内での位置情報は、ログファイルに記録されているので、デバイスは、ログファイル出力ポイントを理論的なログファイル出力ポイントと比較することによって、ソースコードの実行コードに対応するログファイル出力ポイントの位置を決定することができる。したがって、出力されていないログファイルのログファイル出力ポイントを決定することが可能であり、それによって、網羅されていないコードも決定することができる。
【０１０２】
一例において、プログラムの実際のランタイム環境をできる限りシミュレートし、複数の角度からプログラムをテストするために、異なるランタイム環境でプログラムをテストすることができる。例えば、単体テスト環境、統合テスト環境、本番環境などが、異なるランタイム環境に対応する。異なるランタイム環境では、コード網羅率は、完全には同じでないことがある。換言すると、実出力ログファイルは、異なるランタイム環境内では同じでない場合がある。図８は、コード網羅検出方法の別の実施形態を示すフローチャートである。方法８００は、例えば、システム３００で実施されうる。方法８００は、異なるランタイム環境でのコード網羅を比較するために利用可能であり、以下の工程を含む。
【０１０３】
工程８１０では、デバイスが、異なるランタイム環境でプログラムによって実際に出力されたログファイルをリトリーブするよう構成されている。
【０１０４】
工程８２０では、デバイスは、各ランタイム環境で実際に出力されたログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、１または複数のランタイム環境で出力されているが他のランタイム環境では出力されていないログファイルのログファイル出力ポイントを決定するよう構成されている。
【０１０５】
工程８３０では、デバイスは、出力されていないログファイルのログファイル出力ポイントに基づいて、対応するランタイム環境で網羅されていないコードを決定するよう構成されている。
【０１０６】
特定のログファイル出力ポイントのソースコード位置が、すべてのランタイム環境のログファイルには記録されていない場合、ログファイルに記録されていない特定のログファイル出力ポイントのソースコード位置は、特定の環境でのソースコード位置に対応するログファイル出力ポイントについてログファイルが出力されなかったことを示唆する。したがって、記録されていないログファイルに対応する環境に未網羅コードが存在すると決定できる。例えば、プログラムの３つの異なるランタイム環境が、単体テスト環境、統合テスト環境、および、本番環境を含むとする。３つのランタイム環境のログファイルに含まれる記録を比較することにより、対応するログファイルが単体テスト環境および統合テスト環境について発見され、本番環境についてはログファイルが発見されない場合、このシナリオは、単体テスト環境および統合テスト環境で網羅されたコードの一部が本番環境では網羅されていないことを示唆する。したがって、ログファイルに記録された情報を比較することにより、未網羅コードを迅速に見つけることができ、それによって、後のプログラムの修正および保守が容易になる。
【０１０７】
上述のユニットは、１または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび／または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク装置など）に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体（光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど）に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【０１０８】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：コード網羅率決定方法であって、プログラムのソースコードをリトリーブし、前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、１または複数のプロセッサを用いて、各ログファイルに記録されている対応するログファイル出力ポイントの前記位置情報に基づいて、前記実出力ログファイルのログファイル出力ポイントの実際の数を決定し、前記１または複数のプロセッサを用いて、前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実出力ログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定すること、を備える、方法。
適用例２：適用例１に記載のコード網羅率決定方法であって、前記ログファイル出力ポイントの前記数を決定することは、前記実出力ログファイルの内容を分析して、前記対応するログファイル出力ポイントの前記位置情報を取得し、同じ位置情報を含むログファイルを１つのマージログファイルにマージし、マージログファイルの総数に基づいて、前記実出力ログファイルの前記ログファイル出力ポイントの総数をカウントすること、を備える、方法。
適用例３：適用例１に記載のコード網羅率決定方法であって、前記ログファイル出力ポイントの前記数を決定することは、前記対応する各ログファイル出力ポイントの前記位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントし、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数が１より大きい場合に、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数から或る値を減算して、各ログファイル出力ポイントによって出力された反復の数を取得し、出力されたログファイルの前記反復の数に基づいて、前記実出力ログファイルのログファイル出力ポイントの最終的な数を出力すること、を備える、方法。
適用例４：適用例１に記載のコード網羅率決定方法であって、ログファイル出力ポイントの前記数を決定することは、
Ｓ１：量記録リストを確立し、
Ｓ２：実出力ログファイルを選択し、
Ｓ３：前記選択された実出力ログファイルの前記対応するログファイル出力ポイントの前記位置情報をリトリーブし、
Ｓ４：前記位置情報が前記量記録リストに含まれているか否かを判定し、
Ｓ５：前記位置情報が前記量記録リストに含まれていない場合に、
前記位置情報を前記量記録リストに追加し、
前記量記録リストの量を増大させ、
Ｓ７に進み、
Ｓ６：前記位置情報が前記量記録リストに含まれている場合に、Ｓ７に進み、
Ｓ７：実出力ログファイルが残っているか否かを判定し、
Ｓ８：前記実出力ログファイルが残っている場合に、Ｓ２に進み、
Ｓ９：前記実出力ログファイルが残っていない場合に、前記量記録リストに含まれる前記量を前記実出力ログファイルのログファイル出力ポイントの前記数に割り当てること、
を備える、方法。
適用例５：適用例１に記載のコード網羅率決定方法であって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、方法。
適用例６：適用例１に記載のコード網羅率決定方法であって、前記ソースコードに含まれる前記ログファイル出力ポイントの前記理論的な数を決定することは、異なるフォルダに含まれる前記ソースコードのログファイル出力ポイントの前記理論的な数を分析することを備え、前記プログラムの実行中に実際に出力されたログファイルのログファイル出力ポイントの前記数は、各フォルダに含まれる実出力ログファイルのログファイル出力ポイントの数に対応する、方法。
適用例７：コード網羅率決定システムであって、少なくとも１つのプロセッサであって、プログラムのソースコードをリトリーブし、前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定し、前記プログラムの実行中に実際に出力されたログファイルをリトリーブし、各ログファイルに記録された対応するログファイル出力ポイントの前記位置情報に基づいて、前記実出力ログファイルのログファイル出力ポイントの実際の数を決定し、前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実出力ログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するように構成されている、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、を備える、システム。
適用例８：適用例７に記載のコード網羅率決定システムであって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、システム。
適用例９：コード網羅検出方法であって、１または複数のプロセッサを用いて、ソースコードに含まれる実出力ログファイルのログファイル出力ポイントを、前記実出力ログファイルに記録された対応するログファイル出力ポイントの前記ソースコード内での位置情報に基づいて決定し、前記１または複数のプロセッサを用いて、前記実出力ログファイルの前記ログファイル出力ポイントと理論的なログファイル出力ポイントとに基づいて、出力されていないログファイルのログファイル出力ポイントを決定し、前記１または複数のプロセッサを用いて、前記出力されていないログファイルの前記ログファイル出力ポイントに基づいて、未網羅コードを決定すること、を備える、方法。
適用例１０：コード網羅検出方法であって、異なるランタイム環境でプログラムによって実際に出力されたログファイルをリトリーブし、１または複数のプロセッサを用いて、各ランタイム環境で実際に出力された前記ログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、或るランタイム環境で出力されているが別のランタイム環境では出力されていないログファイル出力ポイントを決定し、前記１または複数のプロセッサを用いて、前記出力されていないログファイルの前記ログファイル出力ポイントに基づいて、前記プログラムが前記対応するランタイム環境で実行された場合の未網羅コードを決定すること、を備える、方法。
適用例１１：コード網羅検出システムであって、少なくとも１つのプロセッサであって、異なるランタイム環境でプログラムによって実際に出力されたログファイルをリトリーブし、各ランタイム環境で実際に出力された前記ログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、或るランタイム環境で出力されているが別のランタイム環境では出力されていないログファイル出力ポイントを決定し、前記出力されていないログファイルの前記ログファイル出力ポイントに基づいて、前記プログラムが前記対応するランタイム環境で実行された場合の未網羅コードを決定するよう構成されている、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、を備える、システム。
適用例１２：コード網羅率を決定するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、プログラムのソースコードをリトリーブするためのコンピュータ命令と、前記ソースコードに含まれるログファイル出力ポイントの理論的な数と、前記ソースコードに含まれる前記ログファイル出力ポイントの位置情報とを決定するためのコンピュータ命令と、前記プログラムの実行中に実際に出力されたログファイルをリトリーブするためのコンピュータ命令と、各ログファイルに記録された前記対応するログファイル出力ポイントの前記位置情報に基づいて、前記実出力ログファイルのログファイル出力ポイントの実際の数を決定するためのコンピュータ命令と、前記ソースコードに含まれるログファイル出力ポイントの前記理論的な数と、前記実出力ログファイルの前記ログファイル出力ポイントの前記実際の数とに基づいて、前記プログラムのコード網羅率を決定するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
適用例１３：適用例１２に記載のコンピュータプログラム製品であって、前記ログファイル出力ポイントの前記数を決定することは、前記実出力ログファイルの内容を分析して、前記対応するログファイル出力ポイントの前記位置情報を取得すること、同じ位置情報を含むログファイルを１つのマージログファイルにマージすること、マージログファイルの総数に基づいて、前記実出力ログファイルの前記ログファイル出力ポイントの総数をカウントすること、を備える、コンピュータプログラム製品。
適用例１４：適用例１２に記載のコンピュータプログラム製品であって、前記ログファイル出力ポイントの前記数を決定することは、前記対応する各ログファイル出力ポイントの前記位置情報に基づいて、各ログファイル出力ポイントについて出力されたログファイルの実際の数をカウントすること、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数が１より大きい場合に、各ログファイル出力ポイントについて出力されたログファイルの前記実際の数から或る値を減算して、各ログファイル出力ポイントによって出力された反復の数を取得することと、出力されたログファイルの前記反復の数に基づいて、前記実出力ログファイルのログファイル出力ポイントの最終的な数を出力すること、を備える、コンピュータプログラム製品。
適用例１５：適用例１２に記載のコンピュータプログラム製品であって、ログファイル出力ポイントの前記数を決定することは、
Ｓ１：量記録リストを確立し、
Ｓ２：実出力ログファイルを選択し、
Ｓ３：前記選択された実出力ログファイルの前記対応するログファイル出力ポイントの前記位置情報をリトリーブし、
Ｓ４：前記位置情報が前記量記録リストに含まれているか否かを判定し、
Ｓ５：前記位置情報が前記量記録リストに含まれていない場合に、
前記位置情報を前記量記録リストに追加し、
前記量記録リストの量を増大させ、
Ｓ７に進み、
Ｓ６：前記位置情報が前記量記録リストに含まれている場合に、Ｓ７に進み、
Ｓ７：実出力ログファイルが残っているか否かを判定し、
Ｓ８：前記実出力ログファイルが残っている場合に、Ｓ２に進み、
Ｓ９：前記実出力ログファイルが残っていない場合に、前記量記録リストに含まれる前記量を前記実出力ログファイルのログファイル出力ポイントの前記数に割り当てること、
を備える、コンピュータプログラム製品。
適用例１６：適用例１２に記載のコンピュータプログラム製品であって、前記プログラムの実行中に実際に出力された前記ログファイルをリトリーブすることは、所定の格納位置から前記実際に出力されたログファイルを読み出すこと、または、前記プログラムによって送信された前記実際に出力されたログファイルを所定のインターフェースからリトリーブすることを備える、コンピュータプログラム製品。
適用例１７：適用例１２に記載のコンピュータプログラム製品であって、前記ソースコードに含まれる前記ログファイル出力ポイントの前記理論的な数を分析することは、異なるフォルダに含まれる前記ソースコードのログファイル出力ポイントの前記理論的な数を分析することを備え、前記プログラムの実行中に実際に出力されたログファイルのログファイル出力ポイントの前記数は、各フォルダに含まれる実出力ログファイルのログファイル出力ポイントの数に対応する、コンピュータプログラム製品。
適用例１８：コード網羅率を決定するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、ソースコードに含まれる実出力ログファイルのログファイル出力ポイントを、前記実出力ログファイルに記録された対応するログファイル出力ポイントの前記ソースコード内での位置情報に基づいて決定するためのコンピュータ命令と、前記実出力ログファイルの前記ログファイル出力ポイントと理論的なログファイル出力ポイントとに基づいて、出力されていないログファイルのログファイル出力ポイントを決定するためのコンピュータ命令と、前記出力されていないログファイルの前記ログファイル出力ポイントに基づいて、未網羅コードを決定するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
適用例１９：コード網羅率を決定するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、異なるランタイム環境でプログラムによって実際に出力されたログファイルをリトリーブするためのコンピュータ命令と、各ランタイム環境で実際に出力された前記ログファイルに記録された対応するログファイル出力ポイントのソースコード内での位置情報に基づいて、或るランタイム環境で出力されているが別のランタイム環境では出力されていないログファイル出力ポイントを決定するためのコンピュータ命令と、前記出力されていないログファイルの前記ログファイル出力ポイントに基づいて、前記プログラムが前記対応するランタイム環境で実行された場合の未網羅コードを決定するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
【図１】
0005933762.tif 000002
【図２Ａ】
0005933762.tif 000003
【図２Ｂ】
0005933762.tif 000004
【図２Ｃ】
0005933762.tif 000005
【図３】
0005933762.tif 000006
【図４】
0005933762.tif 000007
【図５Ａ】
0005933762.tif 000008
【図５Ｂ】
0005933762.tif 000009
【図５Ｃ】
0005933762.tif 000010
【図６】
0005933762.tif 000011
【図７】
0005933762.tif 000012
【図８】
0005933762.tif 000013