End to End Test Integration Test Unit Test Manual Test Manual Test: 手 動で機能が正常に動くか End to End Test: シナリオを形成し、機能単位で アプリケーションが期待通りに実 行 されるか Integration Test: 複数のユニットが期待通りに実 行 されるか Unit Test: 単 一 クラスや関数が期待通りに実 行 されるか
の 自 動テスト導 入 前のテスト体制 End to End Test Integration Test Unit Test Manual Test Manual Test: QC、リリース前にアプリチームでの検証 End to End Test: 試験的に導 入 したシナリオがひとつ Integration Test: なし Unit Test: レイヤーによってカバレッジが 高 い箇所と 低い箇所が存在する
ff ort (テストに必要な労 力 ) と Con fi dence (テスト実 行 による信頼性) を図 示 したものです。 6 2 3 . 1 . Test Matrix から注 力 ポイントを分析する https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence
. Test Matrix から注 力 ポイントを分析する Test Matrix の E ff ort とは ... • インストール: テストが実 行 できる環境の作成時間 • 作成: テスト作成の難易度や所要時間 • 実 行 : テスト スイートの実 行 にかかる時間 • デバッグ: テスト失敗時に問題の特定と修正のしやすさ • メンテナンス: テストを維持するために必要なコスト https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence Unit Test
. Test Matrix から注 力 ポイントを分析する Test Matrix の E ff ort とは ... • インストール: テストが実 行 できる環境の作成時間 • 作成: テスト作成の難易度や所要時間 • 実 行 : テスト スイートの実 行 にかかる時間 • デバッグ: テスト失敗時に問題の特定と修正のしやすさ • メンテナンス: テストを維持するために必要なコスト https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence プロジェクトの成熟に伴い、 機能追加だけだと少しずつ E ff ort が増加していく Unit Test
. Test Matrix から注 力 ポイントを分析する Test Matrix の考え 方 を応 用 する Unit Test、VRT Test、E 2 E Test それぞれを図内に プロットし、E 2 E Test の課題点を把握する https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence Unit Test VRT Test
. Test Matrix から注 力 ポイントを分析する Test Matrix の考え 方 を応 用 する Unit Test、VRT Test、E 2 E Test それぞれを図内に プロットし、E 2 E Test の課題点を把握する https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence Unit Test VRT Test E 2 E Test E 2 E Test そもそも書けない ・ 書くのが難しいシナリオ →
. Test Matrix から注 力 ポイントを分析する Test Matrix の考え 方 を応 用 する Unit Test、VRT Test、E 2 E Test それぞれを図内に プロットし、E 2 E Test の課題点を把握する https://portal.gitnation.org/contents/testing-pyramid-makes-little-sense-what-we-can-use-instead https://semaphoreci.com/blog/testing-pyramid Low E ff ort High E ff ort High Con fi dence Low Con fi dence E 2 E Test E 2 E Test そもそも書けない ・ 書くのが難しいシナリオ → E 2 E Test High E ff ort になってる原因 を改善し、E 2 E をLow E ff ort へ Unit Test VRT Test
. Robot Pattern の採 用 とコーディングルールの制定 E 2 E Testのデザインパターン - Robot Pattern 最終的に Robot Pattern の考えをベースに以下の形で落ち着いた • Robot Class を PageDriver Class と PageFindable Class に分割 • 認証やオンボーディング画 面 などの 一 連の動作の流れを共通化するための FlowDriver Class を作成 Robot Class 同様、アクション関数を定義し、 呼び出すための Class Driver Class が利 用 するコンポーネントの 定義を集約し、管理するための Class
シナリオごとに 見 ると、 高 い信頼性につながる シナリオと、それにつながりにくいシナリオが存在する。 9 6 3.4. 機能別のシナリオ作成のやる ・ やらないの判断基準、優先度を標準化 High Con fi dence に繋がりにくいシナリオ例: • ユーザーが閲覧することしかできない競輪選 手 の詳細画 面 • 利 用 規約などの機能を持たない画 面 Low E ff ort High E ff ort High Con fi dence Low Con fi dence E 2 E Test E 2 E Test そもそも書けない ・ 書くのが難しいシナリオ →
シナリオごとに 見 ると、 高 い信頼性につながる シナリオと、それにつながりにくいシナリオが存在する。 9 7 3.4. 機能別のシナリオ作成のやる ・ やらないの判断基準、優先度を標準化 High Con fi dence に繋がりにくいシナリオ例: • ユーザーが閲覧することしかできない競輪選 手 の詳細画 面 • 利 用 規約などの機能を持たない画 面 Low E ff ort High E ff ort High Con fi dence Low Con fi dence E 2 E Test E 2 E Test そもそも書けない ・ 書くのが難しいシナリオ → 書く E 2 E Test 書かない E 2 E Test
E 2 E Test のシナリオ作成フローを機能開発時に組み込む QCチームと連携し、QCチームが作成した項 目 書をアプリチームに共有。 これをアプリチームのエンジニアがシナリオ実装の指針とし、シナリオの品質を担保する。 PR Unit Test VRT レビュー マージ QC リリース 🛠 🤖 👀 🧑🔧 ✈ シナリオ作成 E 2 E Test