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

デブサミ2021:ソフトウェアテスト自動化ジャーニー

B303a306959e28c9869d84aa5620814d?s=47 Autify
March 04, 2021

 デブサミ2021:ソフトウェアテスト自動化ジャーニー

B303a306959e28c9869d84aa5620814d?s=128

Autify

March 04, 2021
Tweet

Transcript

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

  2. 1. Introduction 2. ジャーニーを歩むべきか 3. ジャーニーの第一歩 4. E2Eジャーニーの第一歩 5. E2Eジャーニーの成功パターン

    6. Autify自身のジャーニー 7. ジャーニーの終着点 01. テキスト アジェンダ
  3. 01. Introduction

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

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

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

  7. 累計300社以上がご活用

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

  9. 1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回

    6. 半年に1回 リリース頻度はどのくらいですか?
  10. テスト自動化の論文

  11. テスト自動化の損益分岐点 When and what to automate in software testing?A multi-vocal

    literature review 損益分岐点 • 3回以上実施しないと自動化のコストが見 合わない • リリースサイクルが長いと自動化のメリット は低い • リリースサイクルが短ければ短いほど 自 動化のコスト効果は高まる
  12. 1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回

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

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

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

  16. 03. ジャーニーの第一歩

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

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

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

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

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

    テストへの理解が低い
  22. Ice cream coneの解消 • リファクタリングを行い、テスタビリティを向 上させる • レガシーアーキテクチャをモダンに書き換 える •

    テストの啓蒙活動を行う https://blog.autify.com/ja/how_can_we_improve_the_testability _of_applications
  23. Ice cream coneの解消 Ice cream coneの解消は容易ではない → E2Eテストを自動化して負荷を下げる

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

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

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

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

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

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

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

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

    an-toan
  32. 1. コードを書かないといけない → No codeで素早く誰でも自動化 2. よく落ちるのでメンテナンスが手間 → AIがメンテナンス 3.

    クロスブラウザ実行の闇 → クラウド上の豊富なブラウザと実機 Autifyが落とし穴を解決
  33. 05. E2Eジャーニーの成功パターン

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

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

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

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

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

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

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

    • No codeツールを用いることで誰でも品 質の当事者に
  41. 2. 全て自動化しようとする • 全てのテストが自動化できるわけではない (例:動画のテストなど) • 複雑なテストから始めると挫折する

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

    brgfx - www.freepik.com
  43. 2. 小さく始めて徐々に広げる - 事例 (1) サイトのcssとか見た目も崩れていないよね、というところか ら始めました。 (中略)お客様がRENOSYにアクセスしてき て、必要な不動産情報を拾えて、お問い合わせができるっ ていう状態が24時間確実に担保されていますよ、という世

    界観を作れただけでも相当の価値がありました。 株式会社GA technologies 様 • Ping打って200が返ってくる延長で、サイト の見た目の確認から • 徐々にフォームのテストなどに広げる
  44. 2. 小さく始めて徐々に広げる - 事例 (2) 例えばリグレッション項目を1つとってみても、すべてを一気 に自動化することは考えずに、できるところから1つずつ、き ちんと、自動化していくこと。(中略)徐々にシナリオ化して、 定期的に実行して、Autifyに任せるものを広げていきまし た。

    株式会社ディー・エヌ・エー 様 • 全てを一気に自動化しない • できるところから一つずつ • 徐々にシナリオ化して広げていく
  45. 3. 属人的なプロセスになる • できる人が限られてボトルネックになる • 早い開発サイクルについていけない

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

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

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

    株式会社タンバリン 様 • QAエンジニアがレールを敷き、チームメ ンバーがシナリオを作る • ナレッジ共有を重要視
  49. 06. Autify自身のジャーニー

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

  51. Autify Autifies Autify 詳しくはこちら https://speakerdeck.com/doublemarket/how-autify-autifies-autify-using-circleci Feature develop master (main) Feature

    Feature 本番環境 ステージング環境
  52. Autifyだけじゃない • CodeceptJS ◦ Chrome ExtensionのRecorder • Jest ◦ Web

    Frontend ◦ Test worker • Rspec ◦ Rails • メンテナンスAI ◦ 独自のJSスクリプト
  53. 07. ジャーニーの終着点

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

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

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

  57. 積極採用中!(フルリモート) • セールス&マーケティング(インターン) • テスト自動化エンジニア • バックエンドエンジニア • フロントエンドエンジニア •

    マーケター • 人事 デモリクエスト受付中! • Autify for Web デモリクエスト受付中 • Autify for Mobile β登録受付中 デモリクエスト受付中 & 積極採用中 https://autify.com/ja https://autify.com/ja/careers https://autify.com/ja/mobile