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
DevOps Testing AIの力でリリースサイクルを加速する
Search
Autify
March 16, 2021
Technology
0
110
DevOps Testing AIの力でリリースサイクルを加速する
※社名・ロゴ・サービス内容等は発表当時のものとなります。
Autify
March 16, 2021
Tweet
Share
More Decks by Autify
See All by Autify
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
120k
Autify Company Deck
autifyhq
2
40k
読みやすいテストコードの書き方
autifyhq
0
250
AIが変革するシステム開発
autifyhq
0
260
テスト自動化プラットフォームAutifyはどのようにAutify自身を自動テストしているか
autifyhq
0
2.5k
テスト自動化から、 開発を支える継続的テストへ
autifyhq
27
12k
テスト自動化プラットフォーム「Autify」におけるAI
autifyhq
0
2.5k
AWSコスト削減事例祭り
autifyhq
1
3.4k
Autifyの海外進出で得た世界のQA事情
autifyhq
0
840
Other Decks in Technology
See All in Technology
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
450
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
160
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
C++26 エラー性動作
faithandbrave
2
730
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
770
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
36
13k
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
A Philosophy of Restraint
colly
203
16k
Designing Experiences People Love
moore
138
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Raft: Consensus for Rubyists
vanstee
137
6.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Faster Mobile Websites
deanohume
305
30k
Transcript
DevOps Testing: AIの力でリリースサイクルを加速する Mar 15, 2021 Autify CEO 近澤 良
1. Introduction 2. リリースサイクルを速める重要性 3. DevOpsとは 4. テスト自動化の進め方 5. E2Eテスト自動化の進め方
6. DevOps Testing 7. DevOps TestingにおけるAI 8. まとめ アジェンダ
01. Introduction
• エンジニア歴10年以上、3カ国で開発に従事 • ブログ「顧客のBurning needsを解決する」 自己紹介 Ryo Chikazawa (近澤 良)
AutifyのSolution No codeで誰でも簡単 AIがメンテナンス AIを用いたWeb/MobileアプリのE2Eテスト自動化サービスです。
事業の成長 ローンチ半年で累計100社導入、現在は300社を超えました
様々な組織のテスト自動化を支援
Autify for Web & Autify for Mobile Autify for Webデモリクエスト受付中
Autify for Mobileβ登録受付中
02. リリースサイクルを速める重要性
変化の早い時代に
Software Is Eating the World • 著名投資家Marc Andreessenによる 2011年のブログ記事 •
ソフトウェアがあらゆるビジネスを飲み込 む • ニーズが多様化し、市場が急速に変化
ウォーターフォール開発の問題点 途中での手戻りが許されず、 変化に弱くリリースサイクルが長い → リリースした頃にはユーザーが欲しいものは変わっているかも → 競合が同じものを早く出すかも 変化の激しい市場ではフィットしない
サブスクリプションビジネスの台頭 • 継続的に価値を届けないと解約される • 素早いリリースが重要になってくる • Adobeはサブスクリプションへの完全移行 から株価が急騰し続けている サブスクリプションへの完全移行 Adobeの株価
激しい変化の市場で成功する 変化の激しい時代で成功するには、 素早いリ リースサイクルが必須
1. 週1回以上 2. 週1回 3. 隔週 4. 1ヶ月に1回 5. 3ヶ月に1回
6. 半年に1回 リリース頻度はどのくらいですか?
リリース頻度調査 79.31%が月1回以上リリース → 顧客ニーズの素早い変化に対応するには、高速なリ リースサイクルが必要不可欠
03. DevOpsとは
DevOpsとは • 2009年のFlickrのプレゼンテーションが発 端 • 当時既に1日10回デプロイしていた
DevOpsとは • Plan - 企画 • Buid - 開発 •
Continuous Integration - テスト • Deploy - リリース • Operate - 監視 • Continuous Feedback - 企画へフィードバック 開発と運用が一体となり、速い開発サイクルを実現 する Dev Ops
Agile vs DevOps • Agileの延長でDevOpsが存在 • Agileが顧客と開発のギャップに焦点を当てたのに対し、 DevOpsは開発と運用のギャップに焦点 • Agileが2
~ 3週間でのリリースを目指すのに対し、DevOpsでは1日に複数回のリリースを目指す DevOps Agile
良くあるケース Continuous Integrationが実現できずにテストがボトルネックになる
高速なリリースサイクルにおけるテスト リリースの度にテスト量が 線形に増加 → 未テスト領域で障害が発生
リリースサイクルを遅くするか 障害のリスクを許容するか 手動のテストに依存していると
高速なリリースサイクルの実現にはテス ト自動化が必須 テスト自動化が必須に
04. テスト自動化の進め方
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テストを自動化して負荷を下げる
05. E2Eテスト自動化の進め方
エンジニアの人数は充分ですか? Yes 🙆 No 🙅
E2Eテスト自動化フレームワーク E2Eテスト自動化フレームワークは 数多く存在する
• 実装フェーズにて、エンジニア/SETが開 発した機能のE2E自動テストを実装。 • ペアプロ的に実行し、DoDに含める。 • USの大手企業などにあるパターン エンジニア/SETが充分な場合
エンジニアの人数は充分ですか? 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が落とし穴を解決
06. DevOps Testing
ここまでの話 テストのボトルネックを解消し、テストフェーズを最適化
Continuous Testing in DevOps より素早く継続的にユーザーに価値を届け るには、あらゆるフェーズでテストを行う必 要がある → テストフェーズがなくなり常にテストし続 ける
Test Test Test Test Test Test
デプロイ/運用 - CI/CD連携 - 本番環境での外形 監視 - ケイオスエンジニ アリング テスト
- リグレッション テストの自動化 各フェーズでのテスト自動化 要件定義 - BDD/ATDD 設計 - TDD - 形式手法/モデル 駆動テスト 実装 - コードレビュー - 新機能の E2E自動化 - コードリポジトリと CI の連携
07. DevOps TestingにおけるAI
AIがDevOps Testingを支える - 深層強化学習でテストを生成 - スクリーンショットを賢く比較 - ログからテストを生成 - 画像認識でメンテナンス
あらゆるフェーズでサポートを行う
Machine Learning in Autify Nauman Mustafa Senior Machine Learning Engineer
08. まとめ
順番に進める 1. まずはテストフェーズを最適化する 2. あらゆるフェーズでテストを行う 3. テストフェーズがなくなり、高速なリリース サイクルが実現できる
顧客に素早く継続的に価値を届けるには • リグレッションテストの工数削減 • 人手ではできなかったテストも行う • より本質的な業務に集中
Enjoy testing Enjoy testing! “自動化する時間がないのは、自動化していないから”
積極採用中!(フルリモート) • テスト自動化エンジニア • バックエンドエンジニア • フロントエンドエンジニア • マーケター •
アカウントエクゼクティブ • 人事 デモリクエスト受付中! • Autify for Web デモリクエスト受付中 • Autify for Mobile β登録受付中 デモリクエスト受付中 & 積極採用中 https://autify.com/ja https://autify.com/ja/careers https://autify.com/ja/mobile
09. Q&A
ご質問への回答 1. 自動化導入で上手くいった事例で特に上手くいったことがあればどんな前 提だったか伺いたいです。自動化のタイミングなどに制約などあれば併せ て教えていただけると助かります。 2. Autifiyがうまく導入できたQAチームや組織、企業の特徴があったら教えて 下さい。 先日のDevelopers Summit
2021での講演「ソフトウェアテスト自動化ジャー ニー」にて詳しくお話しました。是非こちらの スライドをご覧ください。
ご質問への回答 Autify は顧客や導入先のサービスごとにどのような機能をどの程度カスタマイズ しているのか,あるいは汎用的な機能を利用してもらっているのかを可能であれ ば伺えればと思います カスタマイズは一切しておらず、汎用的な機能をご利用頂いています。カスタマイ ズのご要望を頂いたこと自体がほとんどなく、その必要性が今の所ないためで す。
ご質問への回答 リリースを高速化するために自動化されたテストを捨てていくときの考え方やテク ニックなどあれば伺いたいと思いました 仕様が大胆に変わった場合を除き、自動化されたテストを捨てる大きな理由はな いと考えています。パフォーマンスの問題であれば状況に応じて実施するテスト を絞ることもできますし、仕様や画面のちょっとした変更であれば、メンテナンス することをオススメします。
ご質問への回答 後付けでUNIT TESTが機能するシチュエーションはどんな状況か、ご経験があれ ばぜひ伺いたいです。 レガシーなアーキテクチャに対して後から Unit Testを書くことは、難しいケースが 多いと考えています。一方最初からリーダブルかつメンテナブルなアーキテク チャになっていれば、現状 Unit
Testが無くても既にテスタブルな構造になってい ると言えるので、後からでも Unit Testを書いていくべきでしょう。
ご質問への回答 Autifyさんは「テスト自動化エンジニア」を採用されていますが「 QAエンジニア」は 採用されていないのですね。ツールである Autify自身のテスト・QAはどのように実 施されていますか? 弊社では、テスト自動化スペシャリストの末村主導の元、 Autifyを使って自動化出 来る部分は自動化し、そうでない部分は別の手段を使って自動化しています。 Autifyのテスト戦略はこちらやこちらの資料もご参考ください。