継続的デリバリーにおけるQAの役割

継続的デリバリーは、アプリケーションの機能を迅速に安定的に、継続して提供する能力を組織にもたらします。開発チームや企業が成長し、継続的デリバリーを採用するようになると、スケーラブルなテストプロセスが重要になってきます。

特に、ソフトウェア開発のライフサイクル全体を通して、継続的にテストをおこなうことが重要です。テストは、要件定義の段階から開発と並行して開始し、アプリケーションのデプロイと本番監視の段階まで継続する必要があります。

そのためには、特定のテスト活動を変えなければなりません。
今回は、継続的デリバリーのプロセスにおいて、QAがおこなうべき具体的な活動について説明します。

要件の曖昧さを排除する

QAアナリストは他の担当者と協力して、要件をより明確にする必要があります。
はじめに要件を明確にすることで、開発プロセスの後半で問題が発生するのを防ぐことができ、チームの時間とコストを大幅に削減できます。

ここでは、より明確にするための一般的な質問をいくつか紹介します。

  • クリティカルパスは何ですか?
  • あなたのビジネスはどのようにしてお金を稼ぐのですか?
  • ユーザーはどのようにアプリケーションを使用していますか?
  • アプリケーションのサービスはどのように宣伝されていますか?
  • 過去にどのような問題がありましたか?

可能な限り多くのプロセスを自動化する

顧客に安定したアプリケーションの機能を迅速に提供するためには、開発の初期段階から自動化をおこない、開発チームが不具合を早期に発見し、問題が発生した時点ですぐに修正できるようにする必要があります。これには、ビルドやテストのパイプラインを構築するためのCI/CDツールや、プロセスの各ステップに関するメタデータを追跡するためのツール、適切なコードカバレッジを確保するための開発者用の内部ツールなどが必要になります。

ここで重要なのは、特定のツールに注目するのではなく、テスト作業全体に有効なものを標準化し、大局的に考えることです。

また、テストを段階的に構築していくことも必要です。バグを修正したり、新機能を開発したりした後、開発チームはそのバグや機能に特化した自動テストを作成し、リグレッションテストとしてテストスイートに追加します。時間が経てば、リグレッションテストはアプリケーションの最も重要で関連性のある部分だけをカバーするようになります。

手動テストに焦点を移す

開発作業と並行して自動テストをおこなうことで、テスト担当者は、クリティカルな思考(批判的思考)を必要とする他のテストに集中できるようになります。テスト担当者はこの時間を利用して、探索的テスト、ユーザビリティテスト、リスクベーステストなどの活動を通じて、自動化では見つけにくい問題を発見することができます。

しかし、テスト担当者はすべてをテストしようとすべきではありません。なぜなら、自動化されたテストである程度カバーできるからです。むしろ、システムのクリティカルパスや、エンドユーザーに提供する前に期待通りに動作しなければならない新機能に注意を向けるべきです。

システムの安定性と信頼性の向上

継続的デリバリープロセスの一環として、開発チームが機能を迅速に提供するために安定性や信頼性が損なわれるというのはよくある誤解です。これは事実に反しています。実際には、開発プロセスの始めから自動テストが実行されているため、リリースされる機能はより高品質なものになります。自動テストは数分で終了するため、システムに関する迅速なフィードバックが得られ、不具合を可能な限り早期に発見することができます。

また、いつでもデプロイ可能な安定版のコードが用意されているため、機能フラグを使った迅速なチェックや、問題が発生した場合のロールバックが可能です。これにより、エンドユーザーは常に安定したバージョンのアプリケーションを使用することができます。

最後に、自動化されたパフォーマンステストとセキュリティテストは、システムの信頼性を高め、機能がリリースされる前に重大な脆弱性を発見するのに役立ちます。

継続的デリバリーパイプラインにおけるQAの役割は、顧客への製品のリリースを成功させるために非常に重要です。上記の要素を念頭に置くことで、開発チームは開発プロセス全体を効率化するためにQAが関与すべき活動を理解することができます。

作者について:

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

(この記事は、開発元 Ranorex 社 Blog 「The Role of QA in Continuous Delivery」2021年2月10日の翻訳記事です。)