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

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

Autify
March 04, 2021

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

Autify

March 04, 2021
Tweet

More Decks by Autify

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 01.
    Introduction

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. テスト自動化の論文

    View Slide

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

    動化のコスト効果は高まる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. 06.
    Autify自身のジャーニー

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  53. 07.
    ジャーニーの終着点

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide