本番環境でテストを成功させるための5つのステップ

本番環境でのテスト」(TiP: Testing in Production)というと、なんだかおかしな話のように聞こえるでしょうか?
顧客データのすぐそばで作業することは、ワニがいるプールのそばで夕食を作るようなものだと思いますか?

それは健全な直感です。しかし、TiPは、リスクをともなう活動である必要はありません。ここでは、TiPを可能にするだけでなく、賢明なものにするために知っておくべきことを紹介します。

以前に他の記事で、本番環境でテストをおこなう理由(英文)と、それを最大限に活かす方法について説明しました。しかし、その記事でも述べたように、TiP は豊かなテーマ(英文)であり、深い研究に値するものです。

TiPを成功させるための確実な方法は存在します。
※ここで言及するポイントは、SaaS (Software as a Service) の TiP に最も適合します。インストールベースあるいは組み込みタイプのソフトウェアについても、それぞれ関連する TiP の概念がありますが、それらは別の概念として取り扱うべきほど異なるものです。

以下の5つの基本的なステップを踏むことで、TiPの旅に向けた準備を整えることができます。

1.負荷サイクルを知る

TiPの理想(英文)は、慎重かつ完璧におこなうことで安全を確保することです。しかし、コンピュータ システムは常に変化します。そのため、賢明なエンジニアは不完全さを想定しています。

そのためには、本番システムの時系列的な傾向を知ることが大切です。
週末になると負荷は低下しますか?それとも上昇しますか?
顧客のニーズは1日24時間の中でどのように変化しますか?
祝日や天候の変化によってサービスの需要が変化することはありますか?

顧客の傾向を把握することで、テストに適した時期を見つけることができます。多くのテストは、他の需要が少ないときに実施したいものです。しかし、ある種のユーザーテストでは、できるだけ多くの異なるユーザーを対象に、できるだけ短い期間でテストするのが最適です。

顧客が何をしているのか、明確で正確な情報があれば、これらのスケジュールを管理するのに最適な状態になります。

2.顧客が見ているものを見る

顧客が見ているものを忠実に再現するために必要なものをテスターやサポート スタッフに提供します。スタッフに推測させたり、顧客に質問したりしても、ノイズや混乱を発生させ、遅れを招くだけです。

また、ブラウザー、ハードウェア、リモート コントロール機能など、ビューを共有するために必要なリソースに、テスター/サポート スタッフがアクセスできるようにしてください。プライバシーに制約がある場合は、重要な部分をぼかしたり匿名化したりして、顧客が体験したことを体験できるようにしてください。顧客の体験を理解するには、「同じ絵を見る」ことが重要です。

TestRail
Webベースのテスト管理ツールのトップブランドであるTestRail。
TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

3.セキュリティのサポートを受ける

セキュリティに関する検討事項は急速に変化します。サービスにはセキュリティの専門家が必要です。この専門家は、TiP計画のセキュリティ上の影響を検討し、TiPプログラムに統合するセキュリティ テストについてアドバイスします。DevSecOps(英文)を導入するか、少なくとも信頼できる人物を採用して、TiPがセキュリティ プロファイルに悪影響を及ぼさないようにします。

4.複数のテストアカウントを使い、異なる顧客プロファイルをモデル化する

多くの開発者が、そしてテスターでさえ、テスト用に昇格権限がある個人アカウントをデフォルトで使用します。しかし、それだけでは十分ではありません。少なくとも一部の時間は、顧客レベルの権限のあるアカウントでテストすることが不可欠です。

無計画に用意したアカウントは使用しないでください。マーケティング部門が定義した、またはサポートスタッフがプロファイリングした役割をモデル化したテスト アカウントを明確に作成してください。再設定された個人アカウントを使用することもありますが、正式なテスト計画ではそれに頼らないでください。テスターは、明確に定義されたプロパティを使用してさまざまな異なるアカウントを管理する必要があると想定してください。

システムが「余分な」テストアカウントをサポートしていない場合、それは解決しなければならない問題です。さまざまなプロファイルと権限でシステムを実行することは、テスト容易性の基本ですが、多くの組織がこれを怠っています。

5.TiP の基本技術を学ぶ

TiPに必要なことをすべて教えるには、この紹介の範囲を超えています。ここでのポイントは、TiPは従来のテストとは異なるということです。TiPの基本的な手法をしっかりと理解することで、TiPの学習はより意味のあるものになるでしょう。

大学の講義に通う、本を読む、自分で実装する、カンファレンスに参加する、チームで講演会を開催するなど、自分の状況に合った方法でこれらの技術を学ぶことができます。TiPを進めるには、より多くの知識を持つ人たちを利用する必要があります。また、基本的な語彙を共有していれば、相手を理解するのは簡単です。

TiP を強みにする

もしも TiP が危険あるいは脅威的であると感じたら、「あなたはすでに本番環境でテストしている」ということを思い出してください。少し注意すれば、うまくおこなうことができます。すなわち、計画と結果を管理し、セキュリティと安定性を強化し、TiPを偶然の出来事ではなく強みにします。

テストは常に団体競技であることを認識してください。この TiPの簡単な紹介でさえ、マーケティング、サポート、開発、インフラなどの分野で同僚と連携する方法が提案されています。他者から学べば、特に他者がTiPに見出す価値を学べば、より遠くへ、より良く進むことができます。

作者について:

Cameron Laird は、受賞歴のあるソフトウェア開発者であり著作者です。業界のサポート団体や標準化団体に参加しており、Python Software Foundationの投票メンバーでもあります。長年テキサス湾岸に居を構え、お気に入りのアプリケーションは農業自動化向けのアプリケーションです。

(この記事は、開発元 Ranorex 社 Blog 「5 Steps to Succeed with Testing in Production」2019年9月5日の翻訳記事です。)