社内ドキュメント標準シリーズ(第2回) 〜 試験観点一覧編 〜

はじめに

こんにちは、さいとう(白)です。ConfitほかアトラスサービスのPdM/PjMを担当しています。以前のブログで社内ドキュメント標準シリーズとして、アトラスの機能拡張仕様書の書き方を解説しました。今回はその第二弾、試験観点一覧についてご紹介していきます。

試験観点一覧とは?

試験はプロダクトが正しく動作するかを確認するための重要な工程です。その試験工程 において、どこを着眼点として、どういった切り口でプロダクトの動作を確認するのか、それを明確にするものが試験観点です。平たく言えば、試験の目的を決めるものと言ってよいでしょう。試験観点があることにより、試験実施者ごとに確認する内容が違ってしまうなど、試験精度のばらつきを防止できます。

また、Webアプリケーションやバッチプログラムなど、サービスを構成する各プロダクトの役割・特性によって、求められる振る舞いは異なります。アトラスでは、それらのプロダクトにおいてどのような試験が必要なのかを試験観点一覧としてまとめ、標準化しています。この一覧をもとにして、試験観点に抜け漏れがないようチェックしながら、試験計画・試験項目を作成しています。

ちなみにですが、この一覧をもとにした試験とは別に、単体レベルではテストコードとCIツールによる自動試験も実施しています。詳しくはこちらの記事をご覧ください。

試験観点一覧の記載内容

それでは、実際にアトラスで使用している試験観点一覧をご紹介します。下記リンクからExcelファイルをダウンロードしてください。

TestViewpoint.xlsx
実際はGoogleスプレッドシートで作成していますが、ダウンロード用にMS-Excel形式に変換してあります。以下はプレビューです(長いため抜粋して掲載しています)。

試験観点一覧プレビュー

縦軸に観点が並び、横軸にはどのプロダクト区分で実施するのか、どの試験工程で実施するのかが並んでいます。◯が付いている試験観点が実施対象になりますが、試験対象のプロダクトによって要否が変わってきます。実際の試験計画時には、試験対象機能を列方向に追加し、各観点の試験要否として◯×を付けたマトリクスを作成しています。

以下は各観点で確認する内容の補足です。シートではさらに細分化されていますが、詳細はシート備考欄の説明を読んでいただければわかると思います。

機能(正常系)

機能が果たすべき役割・目的を正しく遂行できるかを確認します。いわゆる正常系の動作を確認する際の試験観点です。画面やAPIの入出力とあわせ、データベースやファイルなどバックエンドの入出力も含めて、基本的な挙動はこの観点に沿って一通り確認します。
その他にもユーザーインターフェース、アクセシビリティについて確認しますが、これらは毎回ではなく、新規開発時や画面を大きく変更した際にチェックリストを用いて実施しています。チェックリストは、上記Excelファイル内の別シートに収録してあります。

機能(異常系)

インフラのトラブルなど、予期しない事態によりプロダクトが正常に稼働できなくなった際に、適切に対処できるかを確認します。いわゆる異常系の試験観点です。データベースやファイルシステムへのアクセスができないなど、実際にその場面に近い状態を再現し、プロダクトの挙動を確認します。

機能(組合せ)

おもにユーザーの操作に関する確認で、複数ユーザーによる同時処理や、単一ユーザーによる連続操作などをした際に、処理結果に矛盾が生じず、整合性が保たれることを確認します。
また、ユーザーアカウントやデータの状態の組み合わせを整理し、あらゆる条件下で期待する結果が得られるかを確認をします。いわゆるデシジョンテーブルを作成し、抜け漏れのないテストシナリオを検討します。

ユーザー

ユーザー環境に依存する内容を確認します。各種ブラウザやメーラーでの閲覧時に正しく動作するか、レイアウトの崩れはないかなどを確認します。
新機能の開発時であれば、この観点でユーザビリティテストを実施します。実施手法は過去のブログでもご紹介しています。

非機能

負荷耐久性や性能評価などの非機能要件が満たされているかを確認します。アクセス数、ユーザー数などの統計情報を参考に負荷レベルを想定し、JMeterなどのツールを使用して試験を実施します。
運用監視ツールが正しく設定されており、異常を検知してアラート発信できるかなど、保守観点の試験もここで実施します。

セキュリティ

XSSやSQLインジェクションなど、悪質なアクセスへの対策がされていることを確認します。具体的な試験内容は、IPA(情報処理推進機構)のサイトに掲載されているセキュリティ実装チェックリストを参考にしています。

システム連携

サービスを構成するプロダクトがいくつかに分かれており、その間でAPIやファイルインポート/エクスポートにより連携する機能がある場合に、その挙動を確認をします。
また、アトラスのサービスであるConfitには決済代行サービスと連携する機能がありますが、そういった外部サービスとの連携についても確認します。

メンテナンス

プロダクトをリリースする際の手順を確認します。リリース内容によっては、サーバ構成やデータ構成を変更することがあります。その際に、事前に用意した手順に従って問題なく構成変更やデータ移行を実施できるかを確認します。

障害復旧

アトラスのWebサービスは基本的に冗長構成にしていますが、実際にサーバダウンなどの事態が発生した場合に、サービスを停止せず継続稼働および復旧できるかを確認します。
毎回この観点で試験を実施するわけではありませんが、サーバ構成を変更したときなどに適切に判断して試験実施しています

おわりに

いかがでしたでしょうか。社内ドキュメント標準シリーズ第2回として、アトラスの試験観点一覧をご紹介しました。プロダクトの品質向上のためには、あらゆる観点で漏れなく試験を実施する必要があります。その参考として、今回ご紹介した試験観点一覧がお役に立てば幸いです。シリーズ第3回の記事にも、ぜひご期待くださいませ。