https://event.shoeisha.jp/devsumi/20210218/session/3056/
ソフトウェアテスト自動化ジャーニーFeb 19, 2021Autify CEO 近澤 良
View Slide
1. Introduction2. ジャーニーを歩むべきか3. ジャーニーの第一歩4. E2Eジャーニーの第一歩5. E2Eジャーニーの成功パターン6. Autify自身のジャーニー7. ジャーニーの終着点01. テキストアジェンダ
01.Introduction
● エンジニア歴10年以上、3カ国で開発に従事● ブログ「顧客のBurning needsを解決する」自己紹介Ryo Chikazawa (近澤 良)
AutifyのSolutionNo codeで誰でも簡単 AIがメンテナンスAIを用いたWeb/MobileアプリのE2Eテスト自動化サービスです。
事業の成長ローンチ半年で累計100社導入、現在は300社を超えました
累計300社以上がご活用
02.ジャーニーを歩むべきか自動化の必要性
1. 週1回以上2. 週1回3. 隔週4. 1ヶ月に1回5. 3ヶ月に1回6. 半年に1回リリース頻度はどのくらいですか?
テスト自動化の論文
テスト自動化の損益分岐点When and what to automate in software testing?A multi-vocal literature review損益分岐点● 3回以上実施しないと自動化のコストが見合わない● リリースサイクルが長いと自動化のメリットは低い● リリースサイクルが短ければ短いほど自動化のコスト効果は高まる
リリース頻度調査79.31%が月1回以上リリース→ 顧客ニーズの素早い変化に対応するには、高速なリリースサイクルが必要不可欠
アジャイル開発におけるテストリリースの度にテスト量が線形に増加→ 未テスト領域で障害が発生Confidential
リリースサイクルを遅くするか障害のリスクを許容するか自動化しなければアジャイルにならない
03.ジャーニーの第一歩
Yes 🙆Unitテスト書いてますか?No 🙅
テストピラミッド● まずUnit/Integrationテストを書く● カバーしきれない部分をE2E自動テスト/手動E2Eテストで補う
Unitテスト書いてますか?Yes 🙆 No 🙅
Ice cream cone● Unit/Integrationテストがほとんどない● 大部分を手動E2Eテストに依存● 自動E2Eテストがほとんどない場合も
なぜIce cream coneが起きるのか● スピード優先で開発してきたためテストコードがない● レガシーコードでUnit/Integrationテストが書きにくい● テストへの理解が低い
Ice cream coneの解消● リファクタリングを行い、テスタビリティを向上させる● レガシーアーキテクチャをモダンに書き換える● テストの啓蒙活動を行うhttps://blog.autify.com/ja/how_can_we_improve_the_testability_of_applications
Ice cream coneの解消Ice cream coneの解消は容易ではない→ E2Eテストを自動化して負荷を下げる
04.E2Eジャーニーの第一歩
エンジニアの人数は充分ですか?Yes 🙆 No 🙅
E2Eテスト自動化フレームワークE2Eテスト自動化フレームワークは数多く存在する
E2Eテスト自動化フレームワークの落とし穴1. コードを書かないといけない2. よく落ちるのでメンテナンスが手間3. クロスブラウザ実行の闇
1. コードを書かないといけない● 技術知識が必要● できる人が限定され属人化● コードの構築に時間がかかる
2. よく落ちるのでメンテナンスが手間● 要素が表示される前にクリック● 謎の1500msのwait● classやidを変更して落ちる
3. クロスブラウザ実行の闇● ブラウザごとのWebDriver設定の闇● Basic認証の闇● 各ブラウザの実装の違いの闇本質的ではない戦いを強いられることにhttps://speakerdeck.com/tsuemura/kurosuburauzatesutofalsean-toan-toan
1. コードを書かないといけない→ No codeで素早く誰でも自動化2. よく落ちるのでメンテナンスが手間→ AIがメンテナンス3. クロスブラウザ実行の闇→ クラウド上の豊富なブラウザと実機Autifyが落とし穴を解決
05.E2Eジャーニーの成功パターン
ツールを入れれば終わりではないハマりやすいアンチパターン1. 責任者不在により進まない2. 全て自動化しようとする3. 属人的なプロセスになる
1. 責任者不在により進まない● 日々の業務に忙しいので、責任者を明確にしないと誰も進めない● 誰かがいつかやってくれると思ってしまう
責任者とプロセスを明確にする少なくとも以下を明確にする● いつ誰がどのシナリオの実装をするのか● 誰がシナリオのメンテナンスを行うのか
組織に応じて様々パターンが存在● エンジニア/SETが充分な場合● QAチームがある場合● QAチームはないがエンジニアは充分ではない場合
● 実装フェーズにて、エンジニア/SETが開発した機能のE2E自動テストを実装。DoDに含める。● USの大手企業などにあるパターンエンジニア/SETが充分な場合
● QAがE2E自動テストを実装し、テストフェーズを効率化● QAチームがない場合は開発者が行う● 開発フェーズ内で同期的にE2E自動化は簡単ではないQAチームがある場合/ない場合
「Autifyで進めましょう」となったとき、主幹をどの部署にするのかを協議しました。(中略)話し合った結果、PMの私とCSの山下で一緒に担当することになりました。株式会社ROBOT PAYMENT 様No codeを採用した場合● カスタマーサクセスとPMが担当● No codeツールを用いることで誰でも品質の当事者に
2. 全て自動化しようとする● 全てのテストが自動化できるわけではない(例:動画のテストなど)● 複雑なテストから始めると挫折する
小さく始めて徐々に広げる● 小さいがインパクトのあるテストから始めて徐々に広げる● スモークテストレベルからTechnology vector created by brgfx - www.freepik.com
2. 小さく始めて徐々に広げる - 事例 (1)サイトのcssとか見た目も崩れていないよね、というところから始めました。 (中略)お客様がRENOSYにアクセスしてきて、必要な不動産情報を拾えて、お問い合わせができるっていう状態が24時間確実に担保されていますよ、という世界観を作れただけでも相当の価値がありました。株式会社GA technologies 様● Ping打って200が返ってくる延長で、サイトの見た目の確認から● 徐々にフォームのテストなどに広げる
2. 小さく始めて徐々に広げる - 事例 (2)例えばリグレッション項目を1つとってみても、すべてを一気に自動化することは考えずに、できるところから1つずつ、きちんと、自動化していくこと。(中略)徐々にシナリオ化して、定期的に実行して、Autifyに任せるものを広げていきました。株式会社ディー・エヌ・エー 様● 全てを一気に自動化しない● できるところから一つずつ● 徐々にシナリオ化して広げていく
3. 属人的なプロセスになる● できる人が限られてボトルネックになる● 早い開発サイクルについていけない
共有と展開● どのようにテストを作っていくか方針を共有する● 上手く行くこと行かないことを共有● 他職種・他部署に横展開し、全社で品質向上に取り組む
共有と展開 - 事例 (1)シナリオ作成は基本的にはQAエンジニアが行うのですが、開発エンジニア側でも実行できるようなマニュアルを作成して、チーム全体で運用できるようにしています。株式会社LegalForce 様● シナリオ作成はQAエンジニア● マニュアルを作成してチーム全体で運用
共有と展開 - 事例 (2)テストの考え方と組み立て方をメンバーに伝え、シナリオを作ってもらいました。少し時間が掛かりましたが、シナリオ自体を私が作ってしまうと依存してしまい、意味がないと考えたためです。(中略)1人でさばける量は限られているので、いかに私のナレッジを共有していくかに重きを置いています。株式会社タンバリン 様● QAエンジニアがレールを敷き、チームメンバーがシナリオを作る● ナレッジ共有を重要視
06.Autify自身のジャーニー
AutifyのE2EテストもAutifyを使っていますす!
Autify Autifies Autify詳しくはこちらhttps://speakerdeck.com/doublemarket/how-autify-autifies-autify-using-circleciFeaturedevelopmaster(main)FeatureFeature本番環境ステージング環境
Autifyだけじゃない● CodeceptJS○ Chrome ExtensionのRecorder● Jest○ Web Frontend○ Test worker● Rspec○ Rails● メンテナンスAI○ 独自のJSスクリプト
07.ジャーニーの終着点
テスト自動化の成果● リグレッションテストの工数削減● 人手ではできなかったテストまでできるように● 生まれた時間でより本質的な業務に集中● リリースサイクルの短縮化
ジャーニーは続く● テスト分析から前のめりな品質改善へ● 実装フェーズからE2E自動化を実施(Shift Left)● 本番環境での定点観測 (Shift Right)
Enjoy the journeyEnjoy the journey!“自動化する時間がないのは、自動化していないから”
積極採用中!(フルリモート)● セールス&マーケティング(インターン)● テスト自動化エンジニア● バックエンドエンジニア● フロントエンドエンジニア● マーケター● 人事デモリクエスト受付中!● Autify for Web デモリクエスト受付中● Autify for Mobile β登録受付中デモリクエスト受付中 & 積極採用中https://autify.com/jahttps://autify.com/ja/careershttps://autify.com/ja/mobile