Enterprise Developer におけるネイティブ COBOL 向けのコード カバレッジは、Micro Focus Test Coverage 機能を実装しています。
注: This facility is supported in native COBOL only.
コード カバレッジによって、開発チームがプログラムを通してすべての論理パスをカバーしたテストを実行したことを証明して、テスト カバレッジの範囲を示すレポートを作成し、開発ライフサイクルのさまざまな段階のソース コードに沿って、このレポートのレベルを上げることができます。
アプリケーションのコード カバレッジを有効にして実行し、コード カバレッジ レポートを作成する方法は、以下の通りです。
- プロジェクトのプロパティでコード カバレッジを有効にします。
- アプリケーションをコンパイルして、変更を適用します。
- コード カバレッジ モードでアプリケーションを実行します。
- プロジェクト、ビルド構成、またはファイルのプロパティでコード カバレッジを有効にします。
- プロジェクトをコンパイルして、変更を適用します。
- コード カバレッジを有効にした起動構成を作成し、その中でアプリケーションを実行します。
アプリケーションがコード カバレッジで実行している間に、コード カバレッジが有効にされてコンパイルされたプログラムやサブプログラムごとに、コード実行のログが記録されます。結果はバイナリ結果ファイルに保存されます。このファイルの拡張子は .tcz です。結果ファイルに保存される情報は、テスト カバレッジの構成によって異なります。
コード カバレッジでプログラムを実行する場合、コード カバレッジが有効ではない同じプログラムを実行するよりも、使用するリソースは大幅に増加します。このため、コード カバレッジは開発システムでのみ使用し、本番システムでは使用しないことを推奨します。
結果ファイル .tcz はバイナリ ファイルです。利便性を考慮して、コード カバレッジによって、フォーマット済み HTML レポートも作成できます。
ソース コード内の文にタグを付けてコード カバレッジを使用すると、これらの文が実行されたかどうかをレポートすることもできます。これは、特にソース コードの新しい行や変更された行のカバレッジを確認する場合に役立ちます。
制限事項
コード カバレッジはテスト カバレッジ ユーティリティを実装しているため、以下の制限が適用されます。
- Test coverage does not support nested programs. In particular, it does not work for programs which call the cobsetjmp() and coblongjmp() APIs that are used when calling nested programs.
- Manually changing the execution point while debugging a program produces test coverage results that are unpredictable.
- If you have a multi-threaded program (one that is compiled with the REENTRANT directive) and you compile it with the test coverage enabled and run it under test coverage, the test coverage results obtained will be unpredictable.
- When you use test coverage with preprocessors, only the basic blocks of the original code are taken into account.