Slide 1

Slide 1 text

LeanとDevOpsのために E2Eテストができること 開発生産性Conference2024 2024-06-29

Slide 2

Slide 2 text

自動テストツール開発歴:15年目 Seleniumコミュニティ主催 Selenium実践入門執筆(共著) About me はじめに 伊藤 望 Ito Nozomi 株式会社MagicPod CEO Selenium実践入門 自動化による継続的なブラウザテスト 技術評論社

Slide 3

Slide 3 text

Web & モバイルアプリのE2Eテスト自動化SaaS 柔軟性とメンテナンス性が強み ノーコードで簡単にテスト作成

Slide 4

Slide 4 text

ユーザーさんの声 on Findy Tools はじめに

Slide 5

Slide 5 text

Agenda - LeanとDevOpsのためにE2Eテストができること 1. テスト自動化の成功をどう測るか 2. E2Eテスト自動化を妨げる要因 3. E2Eテスト自動化を成功させるには 4.まとめ

Slide 6

Slide 6 text

1. テスト自動化の成功をどう測るか 2. E2Eテスト自動化を妨げる要因 3. E2Eテスト自動化を成功させるには 4.まとめ Agenda - LeanとDevOpsのためにE2Eテストができること

Slide 7

Slide 7 text

E2Eテスト自動化の成功をどう測定するか? 1.テスト自動化の成功をどう測るか

Slide 8

Slide 8 text

コスト削減量? 見つけたバグの数? Four Keys? デプロイ頻度、変更リードタイム、MTTR、変更失敗率 ビジネスの成長? 利益率? E2Eテスト自動化の成功をどう測定するか? 1.テスト自動化の成功をどう測るか

Slide 9

Slide 9 text

継続 (少なくとも顧客はそう感じている) 料金に見合う成果が出ている 解約 料金に見合う成果が出ていない MagicPodの場合 1.テスト自動化の成功をどう測るか 顧客のテスト自動化の成功 顧客が解約せずに継続利用してくれる

Slide 10

Slide 10 text

有料プラン継続は本当に成果のサインか 1.テスト自動化の成功をどう測るか 無料だから解約しないだけでは? 契約で縛られていて解約できないのでは? 作ったテストがロックインされていて解約できないのでは?  

Slide 11

Slide 11 text

無料だから解約しないだけでは? → 2週間の無料トライアル後は有料 契約で縛られていて解約できないのでは? → 月額プランがあり解約は容易 😣 作ったテストがロックインされていて解約できないのでは?   → 成果が出ないテストは削除しても平気 😣 有料プラン継続は本当に成果のサインか 1.テスト自動化の成功をどう測るか 長期で見ると、成果が出ないと解約になってしまう

Slide 12

Slide 12 text

100社以上のMagicPodユーザ ーにヒアリング実施 (解約ユーザー含む) 「ヘルススコア」による成功度測定 1.テスト自動化の成功をどう測るか 自動化の成果と相関が高そうな 指標を元に「ヘルススコア」指 標を作成 スコアと解約状況を見なが ら、半年かけてチューニング ヘルススコアを元にCSアク ションを実施 ❶ ❷ ❸ ❹

Slide 13

Slide 13 text

100点満点 80点以上がグリーン、80-50点がオレンジ、50点未満がレッド 1週間・1ヶ月などの単位で計算 ヘルススコア詳細 1.テスト自動化の成功をどう測るか 35点 作ったテストは1日1回以上回しているか (実行したテスト数 x テスト実行日数) / (作成済テスト数 x 平日の日数) 35点 回しているテストは成功しているか 成功したテスト数 / 実行したテスト数 20点 メンテナンスしやすいテストの作りか 共通化の程度、長すぎるテストの割合、など 10点 その他 ざっくり内訳

Slide 14

Slide 14 text

ヘルススコアはテスト自動化の成功を 測定できているか 1.テスト自動化の成功をどう測るか レッドからオレンジに上がると、解約率が 以下に 1 2 レッドからグリーンに上がると、解約率が 以下に 1 5

Slide 15

Slide 15 text

ヘルススコアはテスト自動化の成功を 測定できているか 1.テスト自動化の成功をどう測るか 解約率(≒自動化の成功度)をうまく測定できている レッドからオレンジに上がると、解約率が 以下に 1 2 レッドからグリーンに上がると、解約率が 以下に 1 5

Slide 16

Slide 16 text

1.テスト自動化の成功をどう測るか ヘルススコアが測定しているのは、 「テストから信頼性のあるフィードバックを早い サイクルで得られているか」 「コスト削減できたか」とか「バグを見つけたか」とかではない 35点 作ったテストは1日1回以上回しているか → テストからフィードバックを早いサイクルで得ているか 35点 回しているテストは成功しているか → テストのフィードバックに信頼性があるか 20点 メンテナンスしやすいテストの作りか → テストのフィードバックの信頼性を持続できる作りになっているか 10点 その他

Slide 17

Slide 17 text

リードタイム 短縮 😄 デプロイの頻度 増加 😄 変更失敗率 低下 😄 平均修復時間 影響なし? Four Keysへの影響 1.テスト自動化の成功をどう測るか 「テストから信頼性のあるフィードバックを早いサイクルで得られる」と...

Slide 18

Slide 18 text

1.テスト自動化の成功をどう測るか テスト自動化の関連プラクティスのうちITパフォーマンスの予測尺度となりうるもの (ITパフォーマンスは業績と相関関係) 信頼性の高い自動化テストの実施 開発者が主体となった承認テストの作成・管理、および承認テストの容易な複 製・修正 Nicole Forsgren Ph.D. 他「LeanとDevOpsの科学」 P.65 和田 卓人 「組織に自動テストを書く文化を根付かせる戦略(2022秋版) 」P.45

Slide 19

Slide 19 text

継続したハイスコアから紐解く 自動テスト運用 LINEヤフー株式会社 ヘルススコア100に到達した 理由 株式会社メドレー ヘルススコアの改善の過程で生ま れたチームと自動テストの変化 株式会社リクルート 予約サイトのテスト ログインページ ヘルススコアはユーザーもアクセス可能 1.テスト自動化の成功をどう測るか ユーザー自身でスコアを改善する 取り組みが加速中

Slide 20

Slide 20 text

1. テスト自動化の成功をどう測るか 2. E2Eテスト自動化を妨げる要因 3. E2Eテスト自動化を成功させるには 4.まとめ Agenda - LeanとDevOpsのためにE2Eテストができること

Slide 21

Slide 21 text

ヘルススコアが上がらないのはなぜ? 2.E2Eテスト自動化を妨げる要因 プロジェクト体制 1. 開発チームの関与の欠如 2. E2Eテスト自動化しすぎ問題 3. MagicPodユーザーヒアリングで 見えてきた要因

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

開発 テスト タイプ デプロイ頻度 ヘルススコア 自社 自社 完全内製 高 😄 デプロイ頻度が高く手動では テスト困難 外注 外注 完全外注 中 😐 ウォーターフォールが多くデ プロイ頻度が上がらない 自社 外注 第三者検証 中 😐 作るのがゴールになりがち 外注 自社 ユーザー受入テストの 自動化 低 😰 自動化に労力を投資できない 1.プロジェクト体制 2.E2Eテスト自動化を妨げる要因

Slide 25

Slide 25 text

2.開発チームの関与の欠如 2.E2Eテスト自動化を妨げる要因 QAだけではCIにつなげない 開発生産性向上に活かせないと、自動化のメリットが大幅低下 テスト側で頑張るよりプロダクトのテスタビリティを上げる方が経 済的なことが多い 開発チームとの連携がないとE2Eテスト自動化の成功は難しい

Slide 26

Slide 26 text

テスト側で頑張るアプローチ プロダクトのテスタビリティを上げるアプローチ 😰 セキュリティ制限のあるモバイルアプリな ので実機でテスト 😄 エミュレータで自動テスト可能に制限を調整 😰 メンテナンス性の高いXPathやCSSセレクタ を試行錯誤 😄 各要素にテストIDやアクセシビリティIDを振る 😰 テストデータは毎回画面から作成・削除 😄 テストデータ投入・削除のテスト用APIを整備 2.開発チームの関与の欠如 2.E2Eテスト自動化を妨げる要因 テスト側で頑張るよりプロダクトのテスタビリティを上げる 方が経済的なことが多い

Slide 27

Slide 27 text

3.E2Eテスト自動化しすぎ問題 2.E2Eテスト自動化を妨げる要因 全てをE2Eテスト自動化する前提になってしまっている メンテナンス不能に.. 時間がかかる・不安定・共通化不十分により 全て自動化!! 1万件の手動テストケースを

Slide 28

Slide 28 text

3つの要因は相互に関連している 2.E2Eテスト自動化を妨げる要因 プロジェクト体制 開発チームの 関与の欠如 E2Eテスト 自動化しすぎ問題 開発を外注していると、 契約外のテスト向けの 改修を依頼できない QAだけでテストを作っていると、 ユニットテストでカバーする 発想にならない 第三者検証会社に 依頼する場合、 大量の作成を依頼しがち

Slide 29

Slide 29 text

1. テスト自動化の成功をどう測るか 2. E2Eテスト自動化を妨げる要因 3. E2Eテスト自動化を成功させるには 4.まとめ Agenda - LeanとDevOpsのためにE2Eテストができること

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

1.プロジェクト体制 3.E2Eテスト自動化を成功させるには 開発 テスト タイプ デプロイ頻度 ヘルススコア 対策 自社 自社 完全内製 高 😄 テストを毎日回して開発生産性向上 外注 外注 完全外注 中 😐 テストを毎日回して開発生産性を上げ るよう外注先に働きかける 自社 外注 第三者検証 中 😐 チームの一員としてメンテナンスフェ ーズまで深く継続関与してもらう 外注 自社 ユーザー受入テストの 自動化 低 😰 受入テスト自動化は、自社ではなく開 発元に依頼 開発生産性を上げる動機が生まれる / 過去実現した例はないので無理筋かも...

Slide 34

Slide 34 text

2.開発チームの関与の欠如 3.E2Eテスト自動化を成功させるには 開発チームもE2Eテスト自動化に関わる CIにつないで毎日実行 フィードバックを早め、開発生産性を向上 プロダクトのテスタビリティを高める

Slide 35

Slide 35 text

3.E2Eテスト自動化を成功させるには テスト自動化の関連プラクティスのうちITパフォーマンスの予測尺度となりうるもの (ITパフォーマンスは業績と相関関係) 信頼性の高い自動化テストの実施 開発者が主体となった承認テストの作成・管理、および承認テストの容易な複 製・修正 Nicole Forsgren Ph.D. 他「LeanとDevOpsの科学」 P.65 和田 卓人 「組織に自動テストを書く文化を根付かせる戦略(2022秋版) 」P.50

Slide 36

Slide 36 text

QA主体の自動化は意味がないのか? 3.E2Eテスト自動化を成功させるには 主としてQAチームか外注先が作成・管理している自動テストは、 ITパフォーマンスと相関関係にない Nicole Forsgren Ph.D. 他「LeanとDevOpsの科学」 P.65 和田 卓人 「組織に自動テストを書く文化を根付かせる戦略(2022秋版) 」P.51

Slide 37

Slide 37 text

3.E2Eテスト自動化を成功させるには テスターはソフトウェアデリバリのライフサイクルにおいて不可欠な役割 を果たす。探索型テスト、ユーザビリティテスト、承認テストなどを手動 で行い、開発者と協力して自動化テストスイートの作成と改良を助けるの である。 Nicole Forsgren Ph.D. 他「LeanとDevOpsの科学」 P.66 和田 卓人 「組織に自動テストを書く文化を根付かせる戦略(2022秋版) 」P.57

Slide 38

Slide 38 text

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/

Slide 39

Slide 39 text

3.E2Eテスト自動化を成功させるには QAが自動テストをやるなとは言っていない 開発とQAが一緒に自動化を進める、QAも開発チームの一員 となる、といったコラボレーションが真に成果を出すために は重要

Slide 40

Slide 40 text

3.E2Eテスト自動化しすぎ問題 3.E2Eテスト自動化を成功させるには 適切なテストピラミッドのバランスにできる ユニットテスト 結合テスト E2Eテスト 自動テストケース設計から開発チームが関わるべき

Slide 41

Slide 41 text

毎日テストを回しながら増やしていく メンテナンスできない量のテストは自然と作れなくなる MagicPod的には、 「常にヘルススコアをグリーンに保ちなが らテストを増やしていく」 3.E2Eテスト自動化しすぎ問題 3.E2Eテスト自動化を成功させるには

Slide 42

Slide 42 text

1. テスト自動化の成功をどう測るか 2. E2Eテスト自動化を妨げる要因 3. E2Eテスト自動化を成功させるには 4.まとめ Agenda - LeanとDevOpsのためにE2Eテストができること

Slide 43

Slide 43 text

E2Eテスト自動化成功のためにすべきこと 4.まとめ テストを継続的に回し、素早くフィードバックを得る 安定して信頼性の高いテストの構築 開発者がE2Eテスト自動化に関わる ちゃんとやれば成功できる時代になってきている ちゃんとやれば開発生産性向上にもつながっていく

Slide 44

Slide 44 text

E2Eテストツールベンダーがすべきこと 4.まとめ 顧客の成功とベンダーの成功が同期するビジネスモデル 買い切りではなく月額課金 どこに課金するか ベストプラクティスの実践を助ける機能性 信頼性の高いテスト:安定、下位互換維持、ポータビリティ、UI 変更への耐性、高速 開発者・QA双方との親和性:簡単さ、柔軟性、開発者ツールとの 親和性、コラボレーション促進

Slide 45

Slide 45 text

No content