結合テストをしながらの動的なカバレッジ計測を可能とする「動的テストツール DT10」。コード変更後の回帰テストやテスト自動化に併用して、同時計測したカバレッジデータを活用し、品質の見える化・テストケースの改善を検討される方が増えています。DT10で容易に動的なカバレッジが計測できるものの、どのようにデータを活用するか?チーム運用をすればよいのか?が課題となります。今回はDT10のカバレッジテストの運用についてご紹介します。

カバレッジテストの運用と課題

DT10の運用シーン

開発プロジェクト内で、DT10を使ってカバレッジテストを運用する場合、以下のような運用シーンが考えられます。

  • 単体テスト … 対象の関数がどの程度網羅されたかをC0カバレッジで確認する。
  • 結合テスト … 対象のモジュール(関数群)がどの程度網羅されたかをC1カバレッジで確認する。
  • システムテスト … 評価リストにそって、テストを実施し未通過箇所からテスト漏れがないかをカバレッジで確認する。
  • 回帰テスト … 影響範囲を抽出し、動作を確認する。影響範囲が全て動作できているかをカバレッジで確認する。

 

いずれのテストにおいても、DT10でカバレッジを計測する手順としては、以下のような流れになります。

  1. 目的のテストに応じたDT10プロジェクトを作成する。
  2. テストをして、DT10でカバレッジを取得する。
  3. 計測結果を共有・レビューする。
運用における課題

単体・結合テストは、開発者単位で行うのか?あるいは、プロジェクト(チーム・複数人)単位で行うか?によって運用が変わります。

〇回帰テストにおける課題 【影響範囲の調査とレビューをいかに効率良く行うか?】

基本的に開発者単位での運用になるかと思います。DT10に開発プロジェクトの全てのソースコードを登録して、カバレッジテストを行うと、より広い範囲を対象に、カバレッジ計測データが出力・表示されるため、レビューや計測結果の確認が煩雑になりやすいです。できれば機能単位などテスト対象とするコードを狭い範囲に絞って、必要最小限の結果(計測データ)だけを共有できるような仕組みづくりが運用する上でのポイントとなります。

〇システムテストの課題 【複数人運用方法と進捗報告のルール策定をどのように行うか?】

システムテストのように、開発プロジェクト全体の大きい範囲のカバレッジテストを行う場合、複数人でテストした結果の集計方法やどのように進捗管理をするかを検討する必要があります。特に進捗管理においては、DT10の通常の粒度(≒関数単位)で、デイリー単位の進捗管理をすることは困難です。効率よく管理するためのルールを決めておくことが重要なポイントとなります。 

効率的に運用するためのコツ

回帰テストでの運用

DT10プロジェクトを最小限の構成にすることが重要となります。DT10プロジェクトには、変更したソースファイル・関数のみを登録、自動挿入することをルール化しておくことで、レビューの際にレビュー対象を探す時間が短くできます。
どのテストを実施するべきか?変更点に関連する部分のテストだけできないか? といった開発者が影響範囲をふまえて、確認すべき対象を導出する必要があります。

システムテストでの運用

では、システムテストで広い範囲をまとめてテストする場合は、どのように運用すれば良いでしょうか?小規模単位のテスト運用とは違い、テスト対象の全ソースファイルに対して、DT10プロジェクトに登録・テストポイント(通過情報を出力するためのマクロ)を自動挿入した上で、作業者がテストを分担する運用が望ましいです。同じDT10プロジェクト・プロファイルをシェアすることで、各自が分担して計測したカバレッジ結果を合算集計することが可能となります。詳しい機能・設定は、FAQをご覧ください。

https://hldc.co.jp/support/qna/qna-256738/
※ユーザー様限定のページのためユーザーIDとパスワードが必要になります。

テスト進捗の管理指標とする
DT10のカバレッジ計測結果からテスト進捗をどのようにすれば把握すればよいか?いくつか例を挙げます。

①フィルタリングでテストが足りない関数を把握する
カバレッジレポートにはフィルタ機能があります。例えば、カバレッジ 100%になった関数をフィルタリングでレポートから除外することで、テストが足りない関数だけをレポート表示できます。これにより、まだ作業すべきことがどの程度あるのかの指標とすることができます。

②未実行のコード部分のみを抽出する
関数単位ではなく、未実行のコード部分のみを確認する方法です。カバレッジレポートから”通過したテストポイントを一括で無効”にする機能を使用することで、通過済みのテストポイントを無効化し、未通過ポイントのみを確認していく方法でも管理が可能です。フォルダビュー、またはDTPlannerからエクスポートしたCSVファイルからチェックが残ってるステップだけを確認していく事で、残件の状況からテスト進捗の確認が可能です。

③全体的な進捗率だけを通過済みテストポイント/全テストポイント数で管理する
上記①、②の方法は、カバレッジレポートやエクスポートしたファイルを確認し、レビューする必要があります。ウィークリー単位などであればともかく、デイリー単位などの進捗は簡潔に行いたいものです。もっと全体的な進捗だけを管理する方法として、テスト済みのテストポイントと総テストポイント数から進捗管理をする方法があります。前述の2つと比べて数値だけの報告が可能になりますので進捗管理を簡易化することが可能です。基本的なやり方としてはCSVエクスポートで、上記の枠の箇所の数値データを集計し、管理指標として扱います。

また、③の管理方法をグラフ化するツールを作って欲しいとのご要望を受け、取得した複数のカバレッジレポートを入力することで、自動集計を行うオリジナルツールを提供させていただいた実績もあります。これにより全体的なテスト進捗を日々管理することで、進捗の推移を把握しやすくなり、今後のテストの進め方に対する気づきを与えてくれます。

まとめ

回帰テスト・システムテストを中心にDT10を使ったカバレッジテストの運用方法についてご紹介しました。
みなさまのカバレッジテスト運用のヒントになりますでしょうか?今後もDT10の運用方法やデータの可視化をする方法をご紹介していきたいと思います。
お困りのことがありましたら、弊社ユーザーサポートまでお気軽にお問い合わせください。

<DT10 Q&Aページ>
https://hldc.co.jp/support/qanda/