Gebでインフラをテストする。bluebirdスマートフォン用の表示で見るbluebird2016-12-12Gebでインフラをテストする。Qiitaの12日目エントリーです。Deployment導入記」というテーマで発表しましたが、その中でインフラ観点でのシステムテストにGebを活用した事例の紹介をしました。Ohnakaインフラのテストの観点の特徴としてあげられるのは、最終的な動作の確認をアプリケーション層に依存することがあげられます。設定ファイルの項目の確認アプリケーションのプロセスが起動しているかの確認ヘルスチェックのURLにアクセスして行う疎通の確認サーバーおよびネットワーク機器間の疎通の確認という観点まではServerspec等を用いたテストが可能ですが、それより上位レベルの観点はデプロイしたアプリケーション上の動作で確認することになります。過去のインフラ観点でのテストケースインフラ側のテスト担当者の勘などを参照して、テストケースを作成します。外部との連携先などの構成が複雑になるにつれ、インフラのテスト担当者がアプリケーション観点でテストケースを作成することへのハードルはあがってきます。この事例で取り上げたシステムの場合、システムが「エンドユーザーからのアクセスを受け付けるモードか」(主系)「動作確認のためのアクセスを受け付けるモードか」(副系)の二つのモードをもっており、その結果としてBlueサーバーが主系の場合のBlueサーバーへのアクセスBlueサーバーが主系の場合のGreenサーバーへのアクセスGreenサーバーが主系の場合のGreenサーバーへのアクセスGreenサーバーが主系の場合のBlueサーバーへのアクセスで、一つのテストパターンについて、都合四通りのテストの組み合わせを実施することになりました。そこで、この事例ではアプリケーションの観点から見たインフラのテストについて、全面的にアプリケーションの開発チームがGebによって作成したエンドツーエンドのテストを使用することになりました。エンドユーザー側から見た、アプリケーションの機能および外部サービスへの連携について、構築した環境上でGebによるエンドツーテストを実行し、その結果を確認することで、インフラ観点でのシステムテストを行うわけです。み合わせでテストを実行する場合の、実行コスト削減という効果を得ることができました。エンドツーエンドのテストを実装する場合、その効果はアプリケーションを開発する側のアプリケーションの修正に関わるコストの範囲内で語られがちです。エンドツーエンドの自動テストである程度の網羅性を担保することによって、インフラ側のテストの効率や精度の向上にも寄与することができる、というのが今回の事例で得られた知見です。月別アーカイブはてなブログをはじめよう!setoazusaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。