自動テストを成功させる3つの方法
DevOpsと継続的テストにおいて、自動テストは開発プロセスの一部としてすべての作業の前線に位置します。これは、要件フェーズから始まり、アプリケーションのデプロイと運用監視フェーズまで続きます。
自動テストは、不具合を早期に発見し、可能な限り迅速に修正するのに役立ちます。また、増大する顧客の要求を満たすために、迅速なペースでの機能のリリースをサポートします。
しかし、開発プロジェクトが直面している問題があります。それは、開発プロセスの中でこれらの自動テストをいつ、どのように実行するかを理解することです。
ここでは、自動テストをより戦略的かつ効果的にするための 3 つの方法をご紹介します。
1. 自動テストを明確に区別する
すべての自動テストを毎回実行する必要はありません。たとえば、バグを修正した場合、バグが存在しないことを確認するためにすべての回帰スイートを実行する必要はありません。代わりに、関連する機能と、この機能に何らかの依存関係がある隣接モジュールのテストを実行します。
ここが、自動テストの中で明確な区別が必要な部分です。
通常、特に CI/CD パイプラインでは、3種類の自動テストを実行します。
高レベルのスモークテスト
高レベルのスモーク テストは、すべてのコード チェックインで実行され、システムの重要な機能がこれまで通り正常に機能していることを確認します。UI、API、および単体テストが混在している場合もあります。これらのテストの目的は、システムに関する迅速なフィードバックを得ることであり、通常は 5 分から 10 分以内に実行を終了する必要があります。
日々の回帰テスト
日々の回帰テストでは、システムに追加された新機能が既存機能を破損していないことを確認します。システムのエンドツーエンドのフローをカバーするという点で、毎日の回帰テストはスモーク テストよりも詳細にテストします。通常、少なくとも1日に1回、リリース前には複数回、回帰テストを実施します。
スプリント レベルのテスト
これらの自動テストは、スプリントの一部として新たに作成されます。スプリント中に完成した新しいテストは、毎日の回帰テストに追加されます。スプリント レベルのテストは通常、回帰テスト フェーズで回帰テスト スイートにマージされます。
2. チームに合ったツールを選択する
開発プロセスのさまざまなフェーズで自動テストを実行するために利用できるツールとフレームワークは数多く存在します。テストが CI/CD パイプラインの一部として実行される場合は特にそうです。人気のある CI/CD ツールには、Travis CI、Jenkins、CircleCI などがあります。
CloudBees Jenkins
CloudBees Jenkinsは、Jenkinsを利用してCI(継続的インテグレーション)/CD(継続的デリバリー)実現するために必要な機能を備えたエンタープライズ向けのソリューションです。
ツールが開発チームのスキルセットに合っているかどうかを確認することが重要です。
習得するのが難しすぎるツールは、結局誰も使わない可能性があります。開発チームは、自動テストの実行に使用するツールを共同で決めるべきです。
自動ツールを評価する方法の概要については、無料の 15 ページの「Software Test Automation Buyer’s Guide」(英語版)を入手してください。その内容は次のとおりです。
- 目標の定義
- チームが自動化ツールを導入する準備ができていることの確認
- 必要なリソースの割り当て
- テスト自動化ソリューションの分析
- 潜在的なベンダーの特定
- PoCの実施
また、初めて自動化プロジェクトを実施する際の詳細については、Ranorex 社のホワイトペーパー「Strategies for a Successful Test Automation Project」(英語版)または、日本語版のホワイトペーパーをご利用ください。
※日本語版のホワイトペーパーは、Ranorex製品サイトにあります、「Ranorex テスト自動化資料」からダウンロードいただけます。
3. テストカバレッジについて現実的に考える
自動テストは、さまざまなタイプの欠陥を定期的に検出するのに適していますが、考えられるすべてのシナリオを網羅できるわけではありません。探索的テスト、リスクベーステスト、ユーザビリティテストなどの手動テストで補完しなければならないテストが常に存在します。
たとえば、ルックアンドフィールなど、アプリケーションの見た目上の問題を発見するために自動化を使用するのは理想的ではありません。視覚的な検証を行うツールはいくつかありますが、この面で人間に取って代わるのは困難です。私たちは、いつ、なぜ自動テストを実行しているのか、そしてどのようなカバレッジを得ているのかを現実的に考えなければなりません。
開発チームの規模が他のチームよりも大きい場合もあれば、アプリケーションがより複雑な場合もあり、組織の規模は巨大企業から新興企業まで様々です。しかし、何があっても、プロセスは同じままです。チームが協力して、CI/CD パイプラインの一部として自動テストを整理して実行するために、一定の流れを把握する必要があります
これらの自動テストをいつ、どのように実行するかを知っていれば、どのような開発チームでも成功を収めることができます。
作者について:
Raj Subrameyerは、国際的な基調講演者、ライター、およびキャリアコーチであり、技術的なバックグラウンドを豊富に持っています。 彼のBlog(rajsubra.com/blog/)では、読者の生活に役立ち、インスピレーションを与えるニュース、リソースを投稿しています。
(この記事は、開発元 Ranorex 社 Blog 「3 Ways To Set Up Automated Tests for Success」2021年1月27日の翻訳記事です。)