ATS|テスト自動化

2022.4.1

CI/CDのためのテスト自動化アプローチ 【第4回】:テスト自動化ツールを適用するポイント

高品質なサービスを継続的に開発・リリースする有力なアプローチとして、「CI/CD (継続的インテグレーション/継続的デリバリー)」が注目されています。バグを素早く発見したり、変更を速やかに反映したりするなど、プログラム変更からリリースにいたるプロセスを統合的に自動化でき、サービス開発のQCD向上が期待できる手法です。

CI/CDは様々なツールの連携によって実現されますが、中でもテスト自動化ツールは重要な役割を担います。連載第3回では、テスト自動化ツールの役割と重要性に関して解説しました。詳細は、次の記事をご一読ください。

CI/CDのためのテスト自動化アプローチ 【第3回】:テスト自動化ツールの役割と重要性

テスト自動化ツールの適用は、CI/CD自体の成否を大きく左右します。適切なテスト自動化ツールを選定できない、あるいは導入が正しく行われない場合、QCDの向上どころか開発プロジェクトへの悪影響は避けられません。そこで本記事ではCI/CDを成功させるために、テスト自動化ツールの適用におけるポイントをお伝えします。

テスト自動化ツールの適用における5つのポイント

テスト自動化ツールの適用においては、「どのテスト自動化ツールを選定するか」が特に重要となります。ツールの選定プロセスは、以降の導入・運用にも大きく影響を及ぼすためです。導入に関しては多くの場合、ベンダー側による一定のサポートが受けられますが、その内容も選定したツールによって変わります。

テスト自動化ツールを選定する際の5つのポイントについて、順番に解説します。

 ・連携できるツール
 ・自動テストの対象範囲
 ・テスト結果報告の品質
 ・運用・保守の容易性
 ・導入サポートの品質

ポイント1:連携できるツール

テスト自動化ツールは、主に下記ツールと連携してCI/CDパイプラインを実現します。よってテスト自動化ツールの選定では、どのツールと連携できるかを把握することが肝要です。実績はもちろん、機能面でも信頼のおけるツールと連携できるものが望ましいことは、言うまでもありません。

 ・CI/CDツール
 ・バグ管理ツール

ただし、ビルドやテストを実施する「CIサーバー」の構築手段によって、連携が求められるCI/CDツールは異なります。オンプレミス環境であれば「Jenkins」など、またクラウド環境であれば「Travis CI」や「CircleCI」などとの連携が必要です。この点に関しては、CI/CDの全体構成に大きく影響を受けます。

一般にクラウド環境の場合は、自社内でサーバーの構築や運用・保守が不要な分、コストを抑えやすいと言われています。しかし一方で、CI/CDでは様々なインスタンスを不定期に動作させるため、主に従量課金制のクラウド環境ではコストの把握・抑制が困難であり、これを補うためのツール導入が必要となるケースもあります。

昨今ではオンプレミス・クラウドを併用するハイブリッド環境もありますが、システム構成が複雑となり、導入のハードルは上がります。クラウド環境、オンプレミス環境、ハイブリッド環境それぞれにメリット・デメリットが存在するため、これらを踏まえた上で開発環境に左右されない適用範囲の広いテストツールを選択することが重要です。

ポイント2:自動テストの対象範囲

テスト自動化ツールによって、自動化が可能なテスト範囲は異なります。自動化できないテストを手動で行うのでは、結局のところテスト工数の削減やテスターの負荷軽減にはつながりません。よって、幅広い自動テストが可能なテスト自動化ツールを選定することが重要です。

特に、近年重要視されているパフォーマンスやユーザビリティといった非機能要件のテストを苦手とするツールは少なくありません。これらはチームのテスト環境に統合して実施するため、ローカル環境で行われる単体テストや結合テスト以上に影響範囲が大きくなります。また、リリースにより近い段階でのテストであり、手動テストでの人的ミスが生じればバグ流出が避けられません。

ポイント3:テスト結果報告の品質

前回お伝えした通り、「問題の報告・起票」もテスト自動化ツールの重要な役割です。高品質な結果報告を行えるツールを選定できないと、問題の解決が遅れて多大な手戻りが生じます。テストでの問題検出時には、バグ管理ツールへの起票だけでなく、メール等で開発者や管理者へ直ちに報告する機能も必須です。

それに加えて、幅広いテストメトリクスを可視化して報告できることも求められます。特に、カバレッジ (網羅性) の可視化は欠かせません。ソースコードの変更を繰り返すと、据え置きのテストスクリプトではカバー不可能なテストケースが生じ、カバレッジが低下しやすいためです。

なお、AI (人工知能) による高度な分析が行える「Eggplant」などのツールであれば有用なインサイト (洞察) が得られ、リリース可否の判断やフィードバックが容易となります。

ポイント4:運用・保守の容易性

CI/CDの実現によって手動テストに費やす工数は削減できますが、テスターの業務がゼロになるわけではありません。CI/CDを維持するためには、CI/CDパイプラインの最適化やテストスクリプトの保守が求められます。運用・保守が容易なテスト自動化ツールを選定すると、こうした負担を軽減できます。

特に、テストスクリプトの更新を自動化・簡素化できるかどうかは重要なポイントです。テストピラミッドの上位にあたるUIテストなどでは、多くの場合テストスクリプトの更新が頻繁には行われません。更新に手間がかかるツールだと尚更なおざりとなり、テスト品質の低下を引き起こしやすいのです。

昨今では、AIなどの高度な技術を駆使したソリューションが普及しつつあります。たとえば前述したEggplantは、AI自らがテストケースやスクリプトを自動生成するため、テスターの大幅な負荷軽減が可能です。この点については、次回詳しく論じたいと考えています。

ポイント5:導入サポートの品質

CI/CDを適用する上で、テスト自動化ツールだけでなく様々なツールの導入や設定、CIサーバーの構築などが必要です。また、開発者の不定期なコミットに対応するために、導入後もCIサーバーの監視やCI/CDパイプラインの最適化が求められます。

こうしたプロセスには高い専門性が要求されるため、高品質な導入サポートが欠かせません。多くのテスト自動化ツールは一定の導入サポートを提供しますが、その内容・品質は製品によって変わります。専門性の高いスタッフによる、充実したサポートを受けられるツールを選定することが重要です。

CI/CDを実現する「ADOC Testing Service (ATS) for Eggplant」とは?

今回は、テスト自動化ツールをCI/CDに適用するためのポイントをお伝えしました。

CI/CDを開発・QA現場に適用し費用対効果を高めるためには、テスト自動化ツールの選定が重要となります。しかし、テスト自動化ツールの種類は多いものの、今回ご紹介したポイントすべてに合致する製品は多くありません。

CI/CD実現のための要件を満たし、最も有力となる選択肢の1つは、テスト自動化プラットフォーム構築サービス「ADOC Testing Service (ATS) for Eggplant」の導入です。米国キーサイト社が開発した「Eggplant」をコア・ツールとし、高度なAIにより「探索的テスト」を自動化します。

第5回では、CI/CDにEggplantおよびATS for Eggplantを適用するメリットをご紹介します。

■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ

  • 2022.4.1
  • CI/CDのためのテスト自動化アプローチ 【第4回】:テスト自動化ツールを適用するポイント