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
650
デブサミ2021:ソフトウェアテスト自動化ジャーニー
https://event.shoeisha.jp/devsumi/20210218/session/3056/
Autify
March 04, 2021
Tweet
Share
More Decks by Autify
See All by Autify
読みやすいテストコードの書き方
autifyhq
0
140
AIが変革するシステム開発
autifyhq
0
150
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
Autify Company Deck
autifyhq
1
38k
テスト自動化プラットフォームAutifyはどのようにAutify自身を自動テストしているか
autifyhq
0
2.2k
テスト自動化から、 開発を支える継続的テストへ
autifyhq
27
12k
テスト自動化プラットフォーム「Autify」におけるAI
autifyhq
0
2.1k
AWSコスト削減事例祭り
autifyhq
1
3.2k
Autifyの海外進出で得た世界のQA事情
autifyhq
0
770
Other Decks in Technology
See All in Technology
プロダクト価値を考えるための情報透明化とチーム文化づくり
nyo_taro
1
140
軽いノリで"自動化"に取り組んではいけないという話
tetsuyaooooo
1
500
Webセキュリティのあるきかた
akiym
32
10k
LINE-ChatGPT 倫理問題を整理する全力肯定彼氏くん [LuC4]に訪れたサービス開始以来の最大の危機
o_ob
1
150
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
14k
LeSSはスクラムではない!?LeSSにおけるスクラムマスターの振る舞い方とは / Scrum Master Behavior in LeSS
toma_sm
0
210
トークナイザー入門
payanotty
2
970
【shownet.conf_】ShowNet 2024 ~ Inter * Network ~
shownet
PRO
0
530
tenntennはなんでnewmoにnew社したの? - YAPC::Hakodate 2024
tenntenn
PRO
0
270
LINEヤフー新卒採用 コーディングテスト解説 アルゴリズム問題編
lycorp_recruit_jp
0
13k
Kubernetes Meetup Tokyo #67 - KEP-3619: Fine-grained SupplementalGroups Control / k8sjp67-kep-3619
everpeace
0
120
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
1.4k
Featured
See All Featured
Designing with Data
zakiwarfel
98
5.1k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Designing for Performance
lara
604
68k
Atom: Resistance is Futile
akmur
261
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Become a Pro
speakerdeck
PRO
24
4.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
1
290
Designing the Hi-DPI Web
ddemaree
280
34k
Faster Mobile Websites
deanohume
304
30k
The Invisible Customer
myddelton
119
13k
The Language of Interfaces
destraynor
154
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
249
21k
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