Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
デブサミ2021:ソフトウェアテスト自動化ジャーニー
Search
Autify
March 04, 2021
Technology
1
660
デブサミ2021:ソフトウェアテスト自動化ジャーニー
https://event.shoeisha.jp/devsumi/20210218/session/3056/
※社名・ロゴ・サービス内容等は発表当時のものとなります。
Autify
March 04, 2021
Tweet
Share
More Decks by Autify
See All by Autify
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
Autify Company Deck
autifyhq
1
39k
読みやすいテストコードの書き方
autifyhq
0
190
AIが変革するシステム開発
autifyhq
0
210
テスト自動化プラットフォームAutifyはどのようにAutify自身を自動テストしているか
autifyhq
0
2.4k
テスト自動化から、 開発を支える継続的テストへ
autifyhq
27
12k
テスト自動化プラットフォーム「Autify」におけるAI
autifyhq
0
2.3k
AWSコスト削減事例祭り
autifyhq
1
3.3k
Autifyの海外進出で得た世界のQA事情
autifyhq
0
810
Other Decks in Technology
See All in Technology
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
860
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
360
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
150
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Lambdaと地方とコミュニティ
miu_crescent
2
370
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Writing Fast Ruby
sferik
627
61k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Designing for Performance
lara
604
68k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Unsuck your backbone
ammeep
668
57k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Transcript
ソフトウェアテスト自動化ジャーニー Feb 19, 2021 Autify CEO 近澤 良
1. Introduction 2. ジャーニーを歩むべきか 3. ジャーニーの第一歩 4. E2Eジャーニーの第一歩 5. E2Eジャーニーの成功パターン
6. Autify自身のジャーニー 7. ジャーニーの終着点 01. テキスト アジェンダ
01. Introduction
• エンジニア歴10年以上、3カ国で開発に従事 • ブログ「顧客のBurning needsを解決する」 自己紹介 Ryo Chikazawa (近澤 良)
AutifyのSolution No 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回以上実施しないと自動化のコストが見 合わない • リリースサイクルが長いと自動化のメリット は低い • リリースサイクルが短ければ短いほど 自 動化のコスト効果は高まる
1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回
6. 半年に1回 リリース頻度はどのくらいですか?
リリース頻度調査 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テスト自動化フレームワークは 数多く存在する
エンジニアの人数は充分ですか? Yes 🙆 No 🙅
E2Eテスト自動化フレームワークの落とし穴 1. コードを書かないといけない 2. よく落ちるのでメンテナンスが手間 3. クロスブラウザ実行の闇
1. コードを書かないといけない • 技術知識が必要 • できる人が限定され属人化 • コードの構築に時間がかかる
2. よく落ちるのでメンテナンスが手間 • 要素が表示される前にクリック • 謎の1500msのwait • classやidを変更して落ちる
3. クロスブラウザ実行の闇 • ブラウザごとのWebDriver設定の闇 • Basic認証の闇 • 各ブラウザの実装の違いの闇 本質的ではない戦いを強いられることに https://speakerdeck.com/tsuemura/kurosuburauzatesutofalsean-to
an-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-circleci Feature develop master (main) Feature
Feature 本番環境 ステージング環境
Autifyだけじゃない • CodeceptJS ◦ Chrome ExtensionのRecorder • Jest ◦ Web
Frontend ◦ Test worker • Rspec ◦ Rails • メンテナンスAI ◦ 独自のJSスクリプト
07. ジャーニーの終着点
テスト自動化の成果 • リグレッションテストの工数削減 • 人手ではできなかったテストまでできるよ うに • 生まれた時間でより本質的な業務に集中 • リリースサイクルの短縮化
ジャーニーは続く • テスト分析から前のめりな品質改善へ • 実装フェーズからE2E自動化を実施 (Shift Left) • 本番環境での定点観測 (Shift
Right)
Enjoy the journey Enjoy the journey! “自動化する時間がないのは、自動化していないから”
積極採用中!(フルリモート) • セールス&マーケティング(インターン) • テスト自動化エンジニア • バックエンドエンジニア • フロントエンドエンジニア •
マーケター • 人事 デモリクエスト受付中! • Autify for Web デモリクエスト受付中 • Autify for Mobile β登録受付中 デモリクエスト受付中 & 積極採用中 https://autify.com/ja https://autify.com/ja/careers https://autify.com/ja/mobile