スケーラブルな継続的テストプロセスの戦略

DevOpsの時代には、継続的テストというアジャイル開発のアプローチがこれまで以上に重要になっています。継続的テストとは、Shift Left (シフトレフト) の概念に従い、ソフトウェア開発プロセスの各段階でテストをおこなうプロセスです。その目的は、リスクを評価し、できるだけ早くフィードバックを得ることです。

企業がこのアプローチを開発プロセスの一部に含めようとした場合、継続的テストをどこから始めればよいのか、それをより広い範囲に実装する方法がわからないことがよくあります。

企業全体に対して、スケーラブルな継続的テストプロセスを戦略的に実装するために役立つ4つの戦略を紹介します。

1. テストに優先順位を付ける

100%を網羅するテストをおこなうことは不可能です。
テストするコンポーネントには、要件、コード、ビジネスロジック、アプリケーションサービス、インフラストラクチャなど、さまざまなものがある一方、時間とリソースは限られています。

そのため、優先すべきテストを決めることが重要です。
以下は、考慮するべき重要な側面のいくつかです。

  • クリティカルパス
  • あなたのビジネスがどのようにお金を稼ぐか
  • ユーザーがアプリケーションを使用する方法
  • アプリケーションサービスの宣伝方法
  • 過去にどのような問題があったか

このリストが手元にあれば、優先順位付けを開始できます。

2. 自動化を拡張する

自動テストは、要件フェーズからユーザーの受け入れフェーズおよび展開フェーズに至るまで、すべてのレベルで実行できます。 これは主にDevOps継続的テストで有効です。

DevOpsは、ソフトウェア開発チームと運用チームの共同作業を改善し、インフラストラクチャ管理を含むソフトウェア開発ライフサイクル(SDLC)全体で継続的な自動化と監視を保証します。 継続的テストは、テストをシフト レフトすること、またはテストがSDLCでできるだけ早く開始されることを保証するのに役立ちます。

これら現行のアジャイル プラクティスにより、テストが変化しており、さまざまな開発フェーズで自動化が必要になっています。

3. 明確に定義された役割と責任を持っている

責任とコミュニケーションを明確に定義することは、テストを成功させるための鍵です。
開発チームは、以下の重要な質問について、チームで協力して答えを出していかなければなりません。

  • ユニット、API、UIテストを作成する担当者は誰ですか?
  • テストを長期にわたって管理する担当者は誰ですか?
  • テストを実行する担当者は誰ですか?
  • テストを変更する担当者は誰ですか?
  • 使用するフレームワークとライブラリを更新する担当者は誰ですか?
  • チケットシステムに問題を記録する担当者は誰ですか?
  • バグをクローズする担当者は誰ですか?

一般的には、開発者あるいはテスターのいずれかを担当者とすることになるでしょう。
それぞれに長所と短所があるため、可能性を検討し、開発チーム内にて決定します。

4. インフラストラクチャのサポートを確保する

継続的テストを実装する際の課題の1つは、開発プロセスの各段階でさまざまなテストアクティビティが確実におこなわれるようにするために適切なインフラストラクチャを提供することです。

まず、テストを分離してさまざまなテストデータでテストできるように、複数の環境が必要です。少なくとも、開発、テスト、および実稼働環境が必要です。各環境で実行されるテストの種類は、プロジェクトのコンテキストによって異なる場合があります。

次に、開発チームがDevOpsに従っていた場合、インフラストラクチャは、DockerやKubernetesなどのコンテナーオーケストレーションシステム、バージョン管理システム、およびCI/CDを使用した仮想マシンの作成をサポートする必要があります。これは、アプリケーションを論理単位に管理し、さまざまな機能に関するフィードバックをすばやく得るのに役立ちます。

最後に、自動化されたセキュリティおよびパフォーマンステストは、高品質な製品を顧客に提供するために不可欠になっています。インフラストラクチャは、この取り組みをサポートする必要があります。

まとめ

継続的テストは多くの点で有益ですが、企業全体に実装するにはいくつかの課題があります。 企業は、CI/CDパイプライン全体で持続可能でスケーラブルな継続的テストを構築するために、かなりの時間とリソースを投資する必要があります。 しかし、長期的にはメリットは努力を上回ります。

作者について:

Raj Subrameyerは、国際的な基調講演者、ライター、およびキャリアコーチであり、技術的なバックグラウンドを豊富に持っています。 彼のBlog(rajsubra.com/blog/)では、読者の生活に役立ち、インスピレーションを与えるニュース、リソースを投稿しています。

(この記事は、開発元 Ranorex 社 Blog 「4 Strategies for a Scalable Continuous Testing Process」2020年12月29日の翻訳記事です。)