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

LeanとDevOpsのためにE2Eテストができること

MagicPod
June 29, 2024

 LeanとDevOpsのためにE2Eテストができること

2024.6.29に行われた「開発生産性Conference2024」の登壇資料です。
https://dev-productivity-con.findy-code.io/2024

MagicPod

June 29, 2024
Tweet

More Decks by MagicPod

Other Decks in Technology

Transcript

  1. 自動テストツール開発歴:15年目 Seleniumコミュニティ主催 Selenium実践入門執筆(共著) About me はじめに 伊藤 望 Ito Nozomi

    株式会社MagicPod CEO Selenium実践入門 自動化による継続的なブラウザテスト 技術評論社
  2. 無料だから解約しないだけでは? → 2週間の無料トライアル後は有料 契約で縛られていて解約できないのでは? → 月額プランがあり解約は容易 😣 作ったテストがロックインされていて解約できないのでは?   →

    成果が出ないテストは削除しても平気 😣 有料プラン継続は本当に成果のサインか 1.テスト自動化の成功をどう測るか 長期で見ると、成果が出ないと解約になってしまう
  3. 100点満点 80点以上がグリーン、80-50点がオレンジ、50点未満がレッド 1週間・1ヶ月などの単位で計算 ヘルススコア詳細 1.テスト自動化の成功をどう測るか 35点 作ったテストは1日1回以上回しているか (実行したテスト数 x テスト実行日数)

    / (作成済テスト数 x 平日の日数) 35点 回しているテストは成功しているか 成功したテスト数 / 実行したテスト数 20点 メンテナンスしやすいテストの作りか 共通化の程度、長すぎるテストの割合、など 10点 その他 ざっくり内訳
  4. リードタイム 短縮 😄 デプロイの頻度 増加 😄 変更失敗率 低下 😄 平均修復時間

    影響なし? Four Keysへの影響 1.テスト自動化の成功をどう測るか 「テストから信頼性のあるフィードバックを早いサイクルで得られる」と...
  5. 開発 テスト タイプ デプロイ頻度 ヘルススコア 自社 自社 完全内製 外注 外注

    完全外注 自社 外注 第三者検証 外注 自社 ユーザー受入テストの自動化 1.プロジェクト体制 2.E2Eテスト自動化を妨げる要因
  6. 開発 テスト タイプ デプロイ頻度 ヘルススコア 自社 自社 完全内製 高 😄

    外注 外注 完全外注 中 😐 自社 外注 第三者検証 中 😐 外注 自社 ユーザー受入テストの自動化 低 😰 1.プロジェクト体制 2.E2Eテスト自動化を妨げる要因 そもそも「完全内製」以外はヘルススコアが上がりにくい
  7. 開発 テスト タイプ デプロイ頻度 ヘルススコア 自社 自社 完全内製 高 😄

    デプロイ頻度が高く手動では テスト困難 外注 外注 完全外注 中 😐 ウォーターフォールが多くデ プロイ頻度が上がらない 自社 外注 第三者検証 中 😐 作るのがゴールになりがち 外注 自社 ユーザー受入テストの 自動化 低 😰 自動化に労力を投資できない 1.プロジェクト体制 2.E2Eテスト自動化を妨げる要因
  8. テスト側で頑張るアプローチ プロダクトのテスタビリティを上げるアプローチ 😰 セキュリティ制限のあるモバイルアプリな ので実機でテスト 😄 エミュレータで自動テスト可能に制限を調整 😰 メンテナンス性の高いXPathやCSSセレクタ を試行錯誤

    😄 各要素にテストIDやアクセシビリティIDを振る 😰 テストデータは毎回画面から作成・削除 😄 テストデータ投入・削除のテスト用APIを整備 2.開発チームの関与の欠如 2.E2Eテスト自動化を妨げる要因 テスト側で頑張るよりプロダクトのテスタビリティを上げる 方が経済的なことが多い
  9. 3つの要因は相互に関連している 2.E2Eテスト自動化を妨げる要因 プロジェクト体制 開発チームの 関与の欠如 E2Eテスト 自動化しすぎ問題 開発を外注していると、 契約外のテスト向けの 改修を依頼できない

    QAだけでテストを作っていると、 ユニットテストでカバーする 発想にならない 第三者検証会社に 依頼する場合、 大量の作成を依頼しがち
  10. 1.プロジェクト体制 3.E2Eテスト自動化を成功させるには (再掲) 開発 テスト タイプ デプロイ頻度 ヘルススコア 自社 自社

    完全内製 高 😄 外注 外注 完全外注 中 😐 自社 外注 第三者検証 中 😐 外注 自社 ユーザー受入テストの自動化 低 😰
  11. 1.プロジェクト体制 3.E2Eテスト自動化を成功させるには 開発 テスト タイプ デプロイ頻度 ヘルススコア 対策 自社 自社

    完全内製 高 😄 テストを毎日回して開発生産性向上 外注 外注 完全外注 中 😐 テストを毎日回して開発生産性を上 げるよう外注先に働きかける 自社 外注 第三者検証 中 😐 外注 自社 ユーザー受入テストの 自動化 低 😰
  12. 1.プロジェクト体制 3.E2Eテスト自動化を成功させるには 開発 テスト タイプ デプロイ頻度 ヘルススコア 対策 自社 自社

    完全内製 高 😄 テストを毎日回して開発生産性向上 外注 外注 完全外注 中 😐 テストを毎日回して開発生産性を上 げるよう外注先に働きかける 自社 外注 第三者検証 中 😐 チームの一員としてメンテナンスフ ェーズまで深く継続関与してもらう 外注 自社 ユーザー受入テストの 自動化 低 😰 テストを作った数ではなく人月で契約する / MagicPodユーザーではいくつか成功事例もあり
  13. 1.プロジェクト体制 3.E2Eテスト自動化を成功させるには 開発 テスト タイプ デプロイ頻度 ヘルススコア 対策 自社 自社

    完全内製 高 😄 テストを毎日回して開発生産性向上 外注 外注 完全外注 中 😐 テストを毎日回して開発生産性を上げ るよう外注先に働きかける 自社 外注 第三者検証 中 😐 チームの一員としてメンテナンスフェ ーズまで深く継続関与してもらう 外注 自社 ユーザー受入テストの 自動化 低 😰 受入テスト自動化は、自社ではなく開 発元に依頼 開発生産性を上げる動機が生まれる / 過去実現した例はないので無理筋かも...
  14. 3.E2Eテスト自動化を成功させるには Testers have a unique perspective on the system because

    they understand how users interact with it. It's a good practice to pair testers with developers to create and evolve the suites of automated tests, using screen sharing tools if teams are not physically colocated. This way, they can learn from each other and solve problems in real time. テスターはユーザーがどうシステムを触るかを理解しており、そのシステムに対するユニー クな視点を持っている。テスターと開発者がペアになり、チームが物理的に同じ場所にいら れない場合は画面共有ツールを使って、自動テストスイートを作成し改善していくことは良 い活動である。このやり方で、お互いに学び合いリアルタイムで問題を解決することができ る。 DORAのウェブサイトより: https://dora.dev/devops-capabilities/technical/test-automation/