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
自動テストの世界に、この5年間で起きたこと
Search
Autify
February 13, 2025
Technology
10
8.1k
自動テストの世界に、この5年間で起きたこと
自動テストの世界に、この5年間で起きたこと
2025/02/13 Developer Summit 2025
Quality Evangelist 末村拓也による発表
Autify
February 13, 2025
Tweet
Share
More Decks by Autify
See All by Autify
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
120k
Autify Company Deck
autifyhq
2
41k
読みやすいテストコードの書き方
autifyhq
0
330
AIが変革するシステム開発
autifyhq
0
330
テスト自動化プラットフォームAutifyはどのようにAutify自身を自動テストしているか
autifyhq
1
2.6k
テスト自動化から、 開発を支える継続的テストへ
autifyhq
27
12k
テスト自動化プラットフォーム「Autify」におけるAI
autifyhq
0
2.7k
AWSコスト削減事例祭り
autifyhq
1
3.5k
Autifyの海外進出で得た世界のQA事情
autifyhq
0
920
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
57k
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
2.9k
現場で役立つAPIデザイン
nagix
32
11k
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
120
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
10
1.5k
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
320
RECRUIT TECH CONFERENCE 2025 プレイベント【高橋】
recruitengineers
PRO
0
120
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
5.8k
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
330
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
350
Culture Deck
optfit
0
390
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
990
Featured
See All Featured
Facilitating Awesome Meetings
lara
51
6.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Faster Mobile Websites
deanohume
306
31k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
It's Worth the Effort
3n
184
28k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The World Runs on Bad Software
bkeepers
PRO
67
11k
How to Ace a Technical Interview
jacobian
276
23k
Code Reviewing Like a Champion
maltzj
521
39k
Transcript
自動テストの世界に、 この5年間で起きたこと 2025/02/13 Developer Summit 2025 Takuya Suemura Quality Evangelist
@ Autify, Inc.
自動テストの世界に、 この5年間で起きたこと (30分短縮版) 2025/02/13 Developer Summit 2025 Takuya Suemura Quality
Evangelist @ Autify, Inc.
60分セッションだと勘違いしていたからです え、なんで短縮版?
今日話すこと Autify が正式リリース されて丸5年が経ちました 現在も NoCode Web と名を変えて ご愛顧頂いております (おれは2019年8月入社)
ノーコードで誰でも簡単 AIが自動でメンテナンス AIを用いたノーコードテスト自動化ツール
5年の間に自動テストの技術やエンジニアのマインドセット 開発スタイルの潮流は大きく変わりました この発表では5年前のカスタマーペイン それに対してAutifyが提示したソリューションと 5年間で変わったものについて リリース前夜から同社にいた 一人の自動化エンジニアの視点から語りたいと思います 今日話すこと
タイトルタイトルタイトルタイトルタ イトルタイトルタイトル 小見出し小見出し小見出し小見出し 末村 拓也 (Takuya Suemura) Autify, Inc. (2019
-) Quality Evangelist • Ex. QA Manager • Ex. Senior Technical Support Engineer • Ex. Test Automation Engineer OPENLOGI (2017 - 2019) QA Engineer それより前はPHP開発をしていたり 倉庫でフォークリフトに載ったりしていました ソフトウェア品質や自動テストのあるべき姿を 業界の皆さんと一緒に考えるのが仕事です
タイトルタイトルタイトルタイトルタ イトルタイトルタイトル 小見出し小見出し小見出し小見出し テスト自動化実践ガイド (2024) Coming soon… (2025 Summer)
Pain & Solution 01.
• テストコードの作成が面倒 • テストコードのメンテナンスが大変 • 環境構築と運用が大変 2019年当時の課題感
• 当時は id や class などの内部構造を要素探索のキーにするのが一般的 • テストコードを書くたびにDevToolsと格闘 • リーダビリティ上も問題があった
当時の課題感 (1) テストコードの作成 ぼくのかんがえたさいきょうのE2Eフレームワーク with CodeceptJS
• E2Eテストは開発が終わってから ステージングなどの統合環境で実行され ることが多かった • リリースの直前になってテストが古いこと が分かると駆け込みでの修正を余儀なく されてしまう 当時の課題感 (2)
テストコードのメンテナンス テスト自動化実践ガイド 第2章「開発を支える自動テスト」より
レコードアンドリプレイ型のツール 「Autify Recorder」 操作した内容が 自動で記録されていく スクリーンショット付きで見やすいのは UI自動テストにおいて大きなアドバンテージだった ソリューション (1) ノーコード
Autify Recorderで記録した要素のメタ情報を元に DOM上の「一番近い要素」を探索 ソリューション (2) メンテナンス AI メタ情報の例 • タグ名
• アクセシブルロール • id や class などの属性 • 文言 • 親要素や兄弟要素 • 要素の座標 • 絶対パス
Autifyユーザーの方が (サポートから聞いた情報を元に) 仕組みを図示してくれている! 余談)この図について https://qiita.com/megmogmog1965/items/53a201e09929aea34657
やりたいことに対して 準備しないといけないことが多い ほぼ別のアプリケーションを 作るぐらいのレベル 当時の課題感 (3) 環境構築と運用 Software Testing 誌
2020年6月 「はじめよう、高速E2Eテスト」を元に一部加筆
色々なところに互換性バグの種があった • Webサイトとブラウザの互換性(←見つけたいやつ) • WebサイトとWebDriverの互換性 • ブラウザとWebDriverの互換性 • 自動化コードとWebDriverの互換性 •
WebDriver自体のバグ 自分のプロダクトの自動テストをしたいのに 自動テストフレームワークのデバッグからはじめないといけない E2E自動テストは本質的に複雑
Webサイト <> Selenium/Appium間で発生する ありとあらゆるエッジケースを踏み抜いたものたちだ、面構えが違う • deprecatedのCSSスタイル zoom を使うとクリック位置がおかしくなる • 古いバージョンの
prototype.js は Array.reduce() などの prototypeを書き換えておりSeleniumを壊す • AMPのサイトは HTMLElement を上書きしており、 instanceof HTMLElement が期待した値を返さない • Appiumの nativeWebTap を有効にした状態で JSの scrollTo() でスクロールされる とタップ位置がズレる 余談)Autifyのテクニカルサポート
ソリューション (3) Out of the box Autifyクラウド(エミュレーター環境) Autify実機環境(Device Farm) Windows
10.11 macOS 80種類を超える端末から 自由選択 Edge/Windows server Chrome/Linux Chrome / iOS,Android 「箱から出してすぐ」並列実行やクロスブラウザテストができる • Autifyがホストしているクラウド環境は並列実行向き • デバイスファーム上でクロスデバイス・クロスブラウザテストが可能
私たちがつくりました
世の中に起きた変化 03.
• フロントエンドエコシステムとの統合 • リッチなデバッグ体験 • CI/CDパイプラインへの組み込みが楽になった ◦ 同時期に登場した GitHub Actions
/ CircleCI Orb などが後押しした • クロスブラウザ環境構築が楽に 新たなツール群はテストのハードルを下げた
• テストはテスト対象のふるまいに依存すべきである • E2Eテストは技術的制約から内部構造に依存しがちであった ◦ ID, class, タグ名など • Testing
Libraryの登場と共に 文字列、セマンティクス、 alt-textなど アクセシブルな属性をロケーターに使う考え方が普及した アクセシビリティベースのロケーター Testing Library page.getByRole('button', { name: '送信' }); page.locator('input[type="button"]');
マインドセットの浸透 🦁
マインドセットの浸透 🦁
マインドセットの浸透 https://findy-code.io/engineer-lab/t-wada より引用
• 多くの人々🦁🥦による普及活動の末、 自動テストの重要性や TDD/BDD/ATDD といった考え方が浸透した ◦ この2人と17時からパネルやるから来てね • 高速なリリースサイクルが 開発生産性を支えるという考え方が浸透した
今やテストの話が無いカンファレンスの方が珍しくなりましたね マインドセットの浸透
自動テストのこれから 04.
自動テスト実装は簡単になったが、どんなテストを実装すれば良いか分からない • E2Eテストカバレッジを増やしたいけど 何をどうすれば増えるのか分からない • どのようなテストがあれば障害の予防に 効果的なのかが分からない テスト設計に課題を抱える会社が多かったが 非定型的な業務のため、改善が難しかった 新たに見つけた課題
既存の自動化とは異なり • 何らかのフォーマットで定式化されて いなくても理解できる • 繰り返し実施する ものでなくても効果を発揮する 仕様書の分析・テスト設計のような ワンショットかつ複雑な業務も自動化できる可能性が出てきた LLMは既存の自動化に向いていないタスクを処理できる
テキスト以外の入力も扱える = モック・画面遷移図なども扱える マルチモーダル AIの登場 出展: [マルチモーダルAIとは?](https://www.aist.go.jp/aist_j/magazine/20231129.html)
開発者の視点 ユーザーの視点 テスト手法の視点 様々なドキュメントをシナリオ生成に利用する テストシナリオ 作成 トレーニング済みの観点 要件 定義書 画面
設計図 仕様書 開発ドキュメント
• E2Eテストそのもののアーキテクチャーの複雑さ ◦ ブラウザが複雑である以上どうしようもない • トラブルシュートの労力 自動テストツールの選定において 「サポートとNDAに金を払う」側面は今後も捨てきれなさそう (テストツールのトラブルシューティングに情熱を費やす人、良かったら弊社に来て下さい 超楽しいと思います)
変わらないもの
• 自動化を進めたいが、目先のテスト業務に追われている ◦ 既に手動テストがたくさんあるような会社だとこの感じが多い • 全員がモダンな文化を受け入れているわけではないことも ◦ 便利なツールを入れる前に良い文化を入れる必要があるかも ◦ ??「自動テストの工数は誰が払うんですか?」
◦ ??「自動テストより売上につながる機能開発が もちろん優先ですよね?」 ベストプラクティスと現実の狭間に揺れる人たちは今も昔も多い印象 木こりのジレンマと文化
テスト自動化導入支援・品質保証サービス 自動化カバレッ ジの向上 QAコンサルティ ング 開発・テストのア ジャイル化 自社運用までの 伴走支援 自動テスト
作成・運用代行 QAリソース 確保・工数削減 QAチームの 立ち上げ 自動化導入支 援検証(PoC)
• 自動テストは手動テストの代替ではなく 高速な開発サイクルの礎になるものである • 「リリース前にテストしたい」から「常にテストし続けたい」に ニーズが変化した 高度化したニーズに対応できる 新たなソリューションが必要 ニーズの高度化への対応 https://en.wikipedia.org/wiki/DevOps_toolchain
• E2Eテストは忠実だが低速 • それゆえに限定的な利用がベストプラクティスとされていた 技術の進歩が促進するもの https://gihyo.jp/dev/serial/01/savanna-letter/0005 https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications これはアンチパターン
理想的にはE2Eテストは「ユーザーが取りうるふるまい」の 数だけ存在していてほしい E2Eテストが十分高速になれば 「実行可能なユースケースの 完璧なカタログ」も 実用的になってくるはず 技術の進歩が促進するもの テスト自動化実践ガイド 第1章「自動テストに取り組む前に」より
今後、E2E テストを縛る技術的制約が飛躍的に改善 されれば、将来のベストプラクティスはむしろアイスク リームコーン型に近い形になるかもしれません。 開発者たちが必要とする最低限の単体テストと、信 頼性を保つための多くの結合テスト、そしてユーザー 目線での品質を保つ大規模な E2E テスト群を備えた テストスイートは、さながらアイスクリームパフェのよう
な形になるでしょう(図 4-4)。 技術の進歩が促進するもの テスト自動化実践ガイド 第4章「E2Eテストとは何か」より
• テスト設計などの上流工程の自動化 ◦ 生成AIの力で現実的になってきた • より良いソフトウェアエンジニアリングを支える 技術と文化の実装支援 • 高速なフィードバックサイクルを支援するE2Eテストの進化 ◦
ユーザージャーニーを直接テストできる唯一のテストレベル ◦ 最も忠実度の高い実行可能なユーザージャーニーのドキュメント これから
AI-powered Quality Engineering Platform AutifyはAI, 生成AIを活用したプロダクトと 品質保証のプロフェッショナルがテストプロセスのすべてをサポート
何でも相談に乗ってくれる Testing Baby 自動化関係ない、Autify関係ないことでもOK テストとDevOpsのスペシャリストとして 何でも相談に乗ります • 自社の開発プロセスについて第三者の目線から意見を聞 きたい •
理想の自動テストのあり方についてエンジニアたちとざっく ばらんに意見交換してほしい • 講演しにきてほしい • サインほしい 詳しくはAutifyブース or 懇親会でつかまえてください
Appiumのミートアップやるからみんな東日本橋来てくれ! 最後に1つだけおしらせ
ご清聴ありがとうございました 60分フルバージョンは後日またどこかで Enjoy Testing!