Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【 STAC2020】テスト自動化導入に取り組んだ1年の歩み 〜E2E編〜

saik1010
December 05, 2020

【 STAC2020】テスト自動化導入に取り組んだ1年の歩み 〜E2E編〜

昨年、テスト自動化カンファレンスで発表させて頂いたテスト自動化の計画。この発表から約1年。0ベースからE2Eレイヤーの自動テストの導入へ取り組んできました。今回は、自動テストの「テスト観点洗い出し〜ツール選定〜運用」といった一連の流れで得られた知見をベースに、ぶち当たった壁、テスト自動化を導入して効果は出たのか?といったお話をさせて頂きます。

saik1010

December 05, 2020
Tweet

More Decks by saik1010

Other Decks in Technology

Transcript

  1. SECTION 01 今日お話すること(昨年のおさらい含む) UI (E2E test) Service (API test) Unit

    (unit test) 本日のスコープはE2Eの 導入部分になります!
  2. SECTION 02 テスト自動化導入へのステップ 評価項目(一部抜粋) カテゴリ 評価項目 基本機能 • cURLベースのHTTPリクエストとステータスが取得できること •

    DOM要素の取得ができること • 画像キャプチャが取れること • 画像の差分比較ができること 開発 • URLの追加/削除ができること • 全てのソースがバージョン管理ができること(git) • Docker上で動作可能なこと(実行環境に大きく依存しない) • QAチームで保守できる範囲のFW/言語であること SaaS連携 • Slackへの通知が可能であること • GitLabCIとの連携が可能であること パフォーマンス • 1分/100URLの速度が出せること • 1回/2hの運用に耐えうること
  3. SECTION 02 テスト自動化導入へのステップ 評価項目(一部抜粋) カテゴリ 評価項目 基本機能 cURLベースのHTTPリクエストとステータスが取得できること DOM要素の取得ができること 画像キャプチャが取れること

    画像の差分比較ができること 開発 URLの追加/削除ができること 全てのソースがバージョン管理ができること(git) Docker上で動作可能なこと(実行環境に大きく依存しない) QAチームで保守できる範囲のFW/言語であること SaaS連携 slackへの通知が可能であること GitLabCIとの連携が可能であること パフォーマンス 1分/100URLの速度が出せること 1回/2hの運用に耐えうること 詳細はテックブログでも記載してます!
  4. SECTION 02 テスト自動化導入へのステップ 意識したこと 1. 運用に乗せることを第一優先に! 先人の知恵を見ると、運用に乗ってから予期せぬエラー/パフォーマンス面の課題が 出てくると感じていたので、とにかく最短で運用へ! コーディング規約/ディレクトリ構造をどうするかなどは、細かく決めすぎない! 2.

    UI変更に対して適切に対応できるように E2Eでは、UI変更でfailするのは当然だが、表面的な変更だけに影響を受ける形にしたい。 特にこの記事を参考に内部構造での要素操作は絶対にしない 「なぜE2Eテストでidを使うべきではないのか」
  5. SECTION 03 得られた効果、見えてきた課題 見えてきた課題 1. テストデータの保守 大きいサービスであればあるほど、テストデータを用意することが簡単ではない。 特に日付の経過とともに状態が変わるようなテストデータが原因でテストがfailし てしまうことが多々ある 2.

    パフォーマンス(テスト実行時間) 現状だと、1サイトに対して1時間ほどかかるものもあり、気軽に回してFBを得られ る状況ではない。本当はコード変更が起きる度にCI/CDで動かして「エラーが起き た開発コードはマージさせない」などのパイプラインを組みたい。