コンテナ環境でテストの網羅性を確認する

本ブログでは過去にアプリケーションカバレッジの様々な利用方法をご紹介してきました。

アプリケーションカバレッジの計測を導入する

開発プロセス全体のコードカバレッジを確認する

コードなしでJavaアプリケーションテストのカバレッジを計測する

今回は別の活用方法として、コンテナを使ったテスト環境での活用方法をご紹介します。

Parasoft Jtest は Javaコードに潜むさまざまなセキュリティ脆弱性を早期発見
ソースコードの品質向上を実現します。

>> Parasoft Jtest の詳細はこちら <<

自動化された結合テストとシステムテストのコンテナ環境

結合テストやシステムテストなどツールを使ってテストを自動化している方も多いでしょう。しかし、自動化したとはいえ、実際にアプリケーションを動作させるテストには、さまざまな課題があります。

  • 複数のテストを並列実行すると、データの整合性が取れなくなる
  • テストデータが更新されるため、再現性が低い
  • 実行に時間が掛かる

この問題を解決するためにはテストの実行環境をコンテナ化することが有効です。テストごとにコンテナを作成し、テスト実行後に破棄する事で独立した一貫性のあるテスト環境を構築できます。また、時間短縮のためにテストを並列実行する場合も、コンテナを利用することで複数の環境を簡単に用意できます。

Jtestのアプリケーションカバレッジ機能を使うと、コンテナ環境においても、それぞれのコンテナで実行されたテストのカバレッジをマージし、全体の網羅率を一元的に把握することができます。そのため、テスト時間を短縮しながらテストが不足している部分を確認し、必要に応じて追加する、といったサイクルを効率よく回すことが出来ます。

コンテナ環境でのアプリケーションカバレッジ計測

以下は、Dockerコンテナを使ってテストを並列実行し、カバレッジを取得する際の構成例です。テストの実行環境はコンテナ化されており、各テストが独立した環境で並列実行される仕組みになっています。JenkinsなどCIツールを使えば、テストの実行からカバレッジの計測まで自動化も可能です。

カバレッジ計測の手順

  1. テストケースやプロダクトコードの修正をGitへpushします。
  2. GitへのpushをトリガーにJenkinsがテストを実行します。
  3. コンテナ化されたテストがそれぞれ並列に実行され、コンテナ内ではJtestのカバレッジエージェントがカバレッジを取得します。
  4. テスト完了後、各テストで出力されたカバレッジログをJtestサーバーに送信します。
  5. JtestがカバレッジをDTPへアップロードし、各テストのカバレッジがマージされます。
  6. 開発者はDTPを確認し、不足しているテスト箇所を特定して追加を行います。

まとめ

いかがでしょうか?Jtestのアプリケーションカバレッジ機能は、柔軟な活用が可能である点が特長です。本記事でご紹介したような自動テストだけでなく、手動テストや単体テストにおいてもカバレッジを取得し、統合することで、開発プロセス全体の網羅率を正確に把握することができます。これにより、テストの不足箇所を効率的に補完し、コード品質の向上を図ることができます。ぜひアプリケーションカバレッジの活用をご検討ください。