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
670
デブサミ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
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
Storage Browser for Amazon S3
miu_crescent
1
140
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
130
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
200
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
36
13k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
The Pragmatic Product Professional
lauravandoore
32
6.3k
GitHub's CSS Performance
jonrohan
1030
460k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
It's Worth the Effort
3n
183
28k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Fireside Chat
paigeccino
34
3.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
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