Slide 1

Slide 1 text

ソフトウェアテスト自動化ジャーニー Feb 19, 2021 Autify CEO 近澤 良

Slide 2

Slide 2 text

1. Introduction 2. ジャーニーを歩むべきか 3. ジャーニーの第一歩 4. E2Eジャーニーの第一歩 5. E2Eジャーニーの成功パターン 6. Autify自身のジャーニー 7. ジャーニーの終着点 01. テキスト アジェンダ

Slide 3

Slide 3 text

01. Introduction

Slide 4

Slide 4 text

● エンジニア歴10年以上、3カ国で開発に従事 ● ブログ「顧客のBurning needsを解決する」 自己紹介 Ryo Chikazawa (近澤 良)

Slide 5

Slide 5 text

AutifyのSolution No codeで誰でも簡単 AIがメンテナンス AIを用いたWeb/MobileアプリのE2Eテスト自動化サービスです。

Slide 6

Slide 6 text

事業の成長 ローンチ半年で累計100社導入、現在は300社を超えました

Slide 7

Slide 7 text

累計300社以上がご活用

Slide 8

Slide 8 text

02. ジャーニーを歩むべきか 自動化の必要性

Slide 9

Slide 9 text

1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回 6. 半年に1回 リリース頻度はどのくらいですか?

Slide 10

Slide 10 text

テスト自動化の論文

Slide 11

Slide 11 text

テスト自動化の損益分岐点 When and what to automate in software testing?A multi-vocal literature review 損益分岐点 ● 3回以上実施しないと自動化のコストが見 合わない ● リリースサイクルが長いと自動化のメリット は低い ● リリースサイクルが短ければ短いほど 自 動化のコスト効果は高まる

Slide 12

Slide 12 text

1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回 6. 半年に1回 リリース頻度はどのくらいですか?

Slide 13

Slide 13 text

リリース頻度調査 79.31%が月1回以上リリース → 顧客ニーズの素早い変化に対応するには、高速なリ リースサイクルが必要不可欠

Slide 14

Slide 14 text

アジャイル開発におけるテスト リリースの度にテスト量が 線形に増加 → 未テスト領域で障害が発生 Confidential

Slide 15

Slide 15 text

リリースサイクルを遅くするか 障害のリスクを許容するか 自動化しなければアジャイルにならない

Slide 16

Slide 16 text

03. ジャーニーの第一歩

Slide 17

Slide 17 text

Yes 🙆 Unitテスト書いてますか? No 🙅

Slide 18

Slide 18 text

テストピラミッド ● まずUnit/Integrationテストを書く ● カバーしきれない部分をE2E自動テスト/手 動E2Eテストで補う

Slide 19

Slide 19 text

Unitテスト書いてますか? Yes 🙆 No 🙅

Slide 20

Slide 20 text

Ice cream cone ● Unit/Integrationテストがほとんどない ● 大部分を手動E2Eテストに依存 ● 自動E2Eテストがほとんどない場合も

Slide 21

Slide 21 text

なぜIce cream coneが起きるのか ● スピード優先で開発してきたためテスト コードがない ● レガシーコードでUnit/Integrationテストが 書きにくい ● テストへの理解が低い

Slide 22

Slide 22 text

Ice cream coneの解消 ● リファクタリングを行い、テスタビリティを向 上させる ● レガシーアーキテクチャをモダンに書き換 える ● テストの啓蒙活動を行う https://blog.autify.com/ja/how_can_we_improve_the_testability _of_applications

Slide 23

Slide 23 text

Ice cream coneの解消 Ice cream coneの解消は容易ではない → E2Eテストを自動化して負荷を下げる

Slide 24

Slide 24 text

04. E2Eジャーニーの第一歩

Slide 25

Slide 25 text

エンジニアの人数は充分ですか? Yes 🙆 No 🙅

Slide 26

Slide 26 text

E2Eテスト自動化フレームワーク E2Eテスト自動化フレームワークは 数多く存在する

Slide 27

Slide 27 text

エンジニアの人数は充分ですか? Yes 🙆 No 🙅

Slide 28

Slide 28 text

E2Eテスト自動化フレームワークの落とし穴 1. コードを書かないといけない 2. よく落ちるのでメンテナンスが手間 3. クロスブラウザ実行の闇

Slide 29

Slide 29 text

1. コードを書かないといけない ● 技術知識が必要 ● できる人が限定され属人化 ● コードの構築に時間がかかる

Slide 30

Slide 30 text

2. よく落ちるのでメンテナンスが手間 ● 要素が表示される前にクリック ● 謎の1500msのwait ● classやidを変更して落ちる

Slide 31

Slide 31 text

3. クロスブラウザ実行の闇 ● ブラウザごとのWebDriver設定の闇 ● Basic認証の闇 ● 各ブラウザの実装の違いの闇 本質的ではない戦いを強いられることに https://speakerdeck.com/tsuemura/kurosuburauzatesutofalsean-to an-toan

Slide 32

Slide 32 text

1. コードを書かないといけない → No codeで素早く誰でも自動化 2. よく落ちるのでメンテナンスが手間 → AIがメンテナンス 3. クロスブラウザ実行の闇 → クラウド上の豊富なブラウザと実機 Autifyが落とし穴を解決

Slide 33

Slide 33 text

05. E2Eジャーニーの成功パターン

Slide 34

Slide 34 text

ツールを入れれば終わりではない ハマりやすいアンチパターン 1. 責任者不在により進まない 2. 全て自動化しようとする 3. 属人的なプロセスになる

Slide 35

Slide 35 text

1. 責任者不在により進まない ● 日々の業務に忙しいので、責任者を明確 にしないと誰も進めない ● 誰かがいつかやってくれると思ってしまう

Slide 36

Slide 36 text

責任者とプロセスを明確にする 少なくとも以下を明確にする ● いつ誰がどのシナリオの実装をするのか ● 誰がシナリオのメンテナンスを行うのか

Slide 37

Slide 37 text

組織に応じて様々パターンが存在 ● エンジニア/SETが充分な場合 ● QAチームがある場合 ● QAチームはないがエンジニアは充分で はない場合

Slide 38

Slide 38 text

● 実装フェーズにて、エンジニア/SETが開 発した機能のE2E自動テストを実装。 DoDに含める。 ● USの大手企業などにあるパターン エンジニア/SETが充分な場合

Slide 39

Slide 39 text

● QAがE2E自動テストを実装し、テスト フェーズを効率化 ● QAチームがない場合は開発者が行う ● 開発フェーズ内で同期的にE2E自動化は 簡単ではない QAチームがある場合/ない場合

Slide 40

Slide 40 text

「Autifyで進めましょう」となったとき、主幹をどの部署にする のかを協議しました。(中略)話し合った結果、PMの私とCS の山下で一緒に担当することになりました。 株式会社ROBOT PAYMENT 様 No codeを採用した場合 ● カスタマーサクセスとPMが担当 ● No codeツールを用いることで誰でも品 質の当事者に

Slide 41

Slide 41 text

2. 全て自動化しようとする ● 全てのテストが自動化できるわけではない (例:動画のテストなど) ● 複雑なテストから始めると挫折する

Slide 42

Slide 42 text

小さく始めて徐々に広げる ● 小さいがインパクトのあるテストから始め て徐々に広げる ● スモークテストレベルから Technology vector created by brgfx - www.freepik.com

Slide 43

Slide 43 text

2. 小さく始めて徐々に広げる - 事例 (1) サイトのcssとか見た目も崩れていないよね、というところか ら始めました。 (中略)お客様がRENOSYにアクセスしてき て、必要な不動産情報を拾えて、お問い合わせができるっ ていう状態が24時間確実に担保されていますよ、という世 界観を作れただけでも相当の価値がありました。 株式会社GA technologies 様 ● Ping打って200が返ってくる延長で、サイト の見た目の確認から ● 徐々にフォームのテストなどに広げる

Slide 44

Slide 44 text

2. 小さく始めて徐々に広げる - 事例 (2) 例えばリグレッション項目を1つとってみても、すべてを一気 に自動化することは考えずに、できるところから1つずつ、き ちんと、自動化していくこと。(中略)徐々にシナリオ化して、 定期的に実行して、Autifyに任せるものを広げていきまし た。 株式会社ディー・エヌ・エー 様 ● 全てを一気に自動化しない ● できるところから一つずつ ● 徐々にシナリオ化して広げていく

Slide 45

Slide 45 text

3. 属人的なプロセスになる ● できる人が限られてボトルネックになる ● 早い開発サイクルについていけない

Slide 46

Slide 46 text

共有と展開 ● どのようにテストを作っていくか方針を共 有する ● 上手く行くこと行かないことを共有 ● 他職種・他部署に横展開し、全社で品質 向上に取り組む

Slide 47

Slide 47 text

共有と展開 - 事例 (1) シナリオ作成は基本的にはQAエンジニアが行うのですが、 開発エンジニア側でも実行できるようなマニュアルを作成し て、チーム全体で運用できるようにしています。 株式会社LegalForce 様 ● シナリオ作成はQAエンジニア ● マニュアルを作成してチーム全体で運用

Slide 48

Slide 48 text

共有と展開 - 事例 (2) テストの考え方と組み立て方をメンバーに伝え、シナリオを 作ってもらいました。少し時間が掛かりましたが、シナリオ自 体を私が作ってしまうと依存してしまい、意味がないと考え たためです。(中略)1人でさばける量は限られているので、 いかに私のナレッジを共有していくかに重きを置いていま す。 株式会社タンバリン 様 ● QAエンジニアがレールを敷き、チームメ ンバーがシナリオを作る ● ナレッジ共有を重要視

Slide 49

Slide 49 text

06. Autify自身のジャーニー

Slide 50

Slide 50 text

AutifyのE2EテストもAutifyを使っています す!

Slide 51

Slide 51 text

Autify Autifies Autify 詳しくはこちら https://speakerdeck.com/doublemarket/how-autify-autifies-autify-using-circleci Feature develop master (main) Feature Feature 本番環境 ステージング環境

Slide 52

Slide 52 text

Autifyだけじゃない ● CodeceptJS ○ Chrome ExtensionのRecorder ● Jest ○ Web Frontend ○ Test worker ● Rspec ○ Rails ● メンテナンスAI ○ 独自のJSスクリプト

Slide 53

Slide 53 text

07. ジャーニーの終着点

Slide 54

Slide 54 text

テスト自動化の成果 ● リグレッションテストの工数削減 ● 人手ではできなかったテストまでできるよ うに ● 生まれた時間でより本質的な業務に集中 ● リリースサイクルの短縮化

Slide 55

Slide 55 text

ジャーニーは続く ● テスト分析から前のめりな品質改善へ ● 実装フェーズからE2E自動化を実施 (Shift Left) ● 本番環境での定点観測 (Shift Right)

Slide 56

Slide 56 text

Enjoy the journey Enjoy the journey! “自動化する時間がないのは、自動化していないから”

Slide 57

Slide 57 text

積極採用中!(フルリモート) ● セールス&マーケティング(インターン) ● テスト自動化エンジニア ● バックエンドエンジニア ● フロントエンドエンジニア ● マーケター ● 人事 デモリクエスト受付中! ● Autify for Web デモリクエスト受付中 ● Autify for Mobile β登録受付中 デモリクエスト受付中 & 積極採用中 https://autify.com/ja https://autify.com/ja/careers https://autify.com/ja/mobile