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
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
0
200
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
210
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
AGIについてChatGPTに聞いてみた
blueb
0
130
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
Bash Introduction
62gerente
608
210k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
How GitHub (no longer) Works
holman
310
140k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Being A Developer After 40
akosma
87
590k
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