2022.3.10
【第3回】:テスト自動化ツールの役割と重要性
「CI/CD (継続的インテグレーション/継続的デリバリー)」は、継続的な開発・リリースを実現するために、プログラム変更からリリースまでのプロセスを統合的に自動化するアプローチです。スピード感が求められるアジャイルやDevOpsが普及する昨今のサービス開発において、速やかなデリバリーと開発アプリケーションの品質向上、ビジネス機能の向上などが期待されています。
CI/CDの実現には、全体制御を担うCI/CDツールをはじめとした様々なツールが欠かせません。それぞれのツールには異なる役割が与えられており、ツール間の連携によってCI/CDを実現します。これらツールの詳細については、連載第2回の記事をご一読ください。
CI/CDのためのテスト自動化アプローチ 【第2回】:CI/CDの実現方法とツール
CI/CDを構成するツールの中でも、開発品質を担保して信頼性の高いテストプロセスの確立に用いる「テスト自動化ツール」は、特に重要な役割を担います。費用対効果の高いCI/CDを実現する上で、テスト自動化ツールへの理解が欠かせません。そこで第3回となる本記事では、CI/CDにおけるテスト自動化ツールの役割と重要性についてお伝えします。
CI/CDにおけるテスト自動化ツールの役割
CI/CDにおけるテスト自動化ツールの役割は主に次の2つであり、それぞれについて解説します。
・自動テストの実行
・問題の報告・起票
自動テストの実行
CI/CDツールからの指示を受けて、自動テストを実行します。具体的には、テストケースをもとに自動生成したテストスクリプトを実行し、結果の判定まで行うことが通例です。手作業でもテストプロセスに対応できますが、連続的に変更をコミットするようなCI/CDパイプラインでは、テスターの負荷が著しく高まります。
一方、高機能なツールによって自動化を実装できれば、テスト作業の効率化レベルは格段にアップ。手動テストと比べて迅速に実行できるだけでなく、手順ミスなどの防止によりテスト結果の信頼性も向上します。テストの種類や内容は、テスト自動化ツールによって大きく異なります。
問題の報告・起票
自動テストにより問題を検出した場合は、速やかに報告・起票します。全体制御を担うCI/CDツールへの通知だけでなく、バグ管理ツールとの連携による問題の起票も行います。「Eggplant」などのテスト自動化ツールであれば、メールによる関係者への通知も迅速に行うことが可能です。
CI/CDに適切なテスト自動化ツールが適用されない場合の3つのリスク
テストプロセスの自動化を担うテスト自動化ツールの影響範囲は、テストプロセスだけにとどまりません。CI/CDにおいてテスト自動化ツールが重要となるのは、サービス開発自体のQCDを大きく左右するためです。機能要求を満たす適切なテスト自動化ツールが選定されない、あるいはCI/CDに正しく適用されない場合、次の3つのリスクによりQCDの低下を引き起こします。
リスク1:サービス品質の低下
テスト品質は、サービス品質に直結します。バグのない高品質なサービスをリリースするためには、人手による反復的な作業に頼らない、漏れなく正確なテストの実施が必要不可欠です。CI/CDの自動テストにおいて実施漏れや結果判定の不備などがあれば、サービス品質の低下は避けられません。万が一市場にバグが流出すれば、対応に多くの工数を費やすばかりか、ユーザーからの信頼も失墜します。
また、顧客満足度の高いサービスを開発する上で、ユーザビリティなど非機能要件のテストも肝要です。ユーザーの視点も含めた様々な角度からのテストによりサービスの潜在的な問題を検出でき、さらなる品質向上につながります。たとえば、機能要件のテストしか自動化できないツールではこうした問題を検出できず、市場での優位性を得ることはできません。
リスク2:人的コストの増大
CI/CDにおける自動テストでは、バグの迅速な検出・報告が求められます。開発者がバグを早期に認識できれば、手戻り工数を最小限に抑えることが可能です。反対に、自動テスト実行や問題報告が遅れると、手戻りによる人的コストは増大します。予算の限られる開発プロジェクトにおいて、こうしたコストの増大は重大なリスクです。
またテスト自動化ツールの選定を誤ると、導入・運用において余計な人的コストが生じることもあります。たとえば、導入時に十分なサポートが受けられず、CI/CDの構築に多大な工数を要することも考えられます。自動化できないテストやプロセスがある場合は、テスターの負担が増し、手動で実施するための反復的な工数が発生するケースも少なくありません。
リスク3:開発・リリースの遅延
一般にCI/CDを導入する目的は、継続的な開発・リリースを実現することです。しかしながら、テスト自動化ツールを正しく適用できないと、開発・リリースの遅延を引き起こすリスクもあります。前述のように自動テスト実行や問題報告が遅れれば手戻り工数も増大し、開発スケジュールへの影響は避けられません。
また、自動化できないテストでバグが検出された場合、再テストも手動のため工数がさらに増大します。自動テストでのバグがクローズできなければ、当然ながら以降のデプロイも行えず、さらにはリリースの遅延にもつながるのです。開発サイクルの短いアジャイルなどでは、次サイクル以降の開発にも影響が及びます。
CI/CDにテスト自動化ツールを適用するポイントとは?
今回は、CI/CDを実現するパイプラインの一連のステップにおける、テスト自動化ツールの役割と重要性について解説しました。
CI/CDにおいてテスト自動化ツールは、サービス開発全体のQCDに大きく影響を及ぼす重要な構成要素です。テスト自動化ツールの選定や適用方法を誤ると、かえってサービス品質の低下やコストの増大を引き起こすこともあります。たとえばテストケースの定義や自動テストの作成、探索的テストの検討など、自動化の適用から実行までに多大な時間の投資を伴うケースも。こうしたリスクによって期待通りの費用対効果が得られないことも多く、進行中の開発プロジェクトへのCI/CD導入はハードルが高いのです。
また、製品によってテスト範囲や連携可能なツールも変わってくるため、適切な選定が求められます。CI/CDの導入を成功させる上で、Eggplant製品の導入サポートや費用対効果の事前検証を含む「ADOC Testing Service (ATS) for Eggplant」などのサービスを利用するのも有力です。
第4回では、CI/CDにテスト自動化ツールを適用するポイントについてお伝えします。
■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ
- 2022.4.15
- 【第5回】:Eggplantを適用するメリット