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
AI自動テストツールを支える開発・テストプロセス
Search
Nozomi Ito
January 23, 2021
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AI自動テストツールを支える開発・テストプロセス
Agile TEch EXPO - New Normal Agile Episode1 - (
https://202101.agiletechexpo.com/
)の登壇資料です。
Nozomi Ito
January 23, 2021
More Decks by Nozomi Ito
See All by Nozomi Ito
ノーコードに学ぶE2Eテスト自動化ベストプラクティス
nozomiito
0
1.1k
ノーコードE2Eテストで実現する高速開発
nozomiito
0
800
MagicPodで実現するE2Eテスト自動化
nozomiito
0
4k
MagicPod開発におけるテスト自動化とCI
nozomiito
0
890
最近のMagicPodまとめ
nozomiito
0
690
テスト自動化スタートアップがエバンジェリストを募集するワケ
nozomiito
0
380
MagicPodが取り組むテスト自動化最前線
nozomiito
0
550
ロケーターを学んでテスト自動化上級者を目指そう
nozomiito
1
9.6k
テスト自動化で起業した10年とテスト自動化普及の歴史を振り返る
nozomiito
4
2.7k
Other Decks in Technology
See All in Technology
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
6
1k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
事業価値と Engineering 2026年度版
recruitengineers
PRO
42
22k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.7k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.5k
Webアクセシビリティ入門 2026
recruitengineers
PRO
2
450
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
290
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
200
TypeScript入門 2026
recruitengineers
PRO
2
490
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
250
AI時代の強いチームの作り方
yuukiyo
25
16k
Featured
See All Featured
Design in an AI World
tapps
1
270
How to Ace a Technical Interview
jacobian
281
24k
Statistics for Hackers
jakevdp
799
230k
HDC tutorial
michielstock
2
780
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
119
120k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
330
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
350
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
400
Transcript
AI自動テストツールを支える 開発・テストプロセス TRIDENT 伊藤 望
About Me p 伊藤 望(Ito Nozomi) p 株式会社TRIDENT代表取締役 n AI自動テストツール「Magic
Pod」の運営 p 日本Seleniumユーザーコミュニティ主宰 p 著書
Magic Pod (@TRIDENTInc) p E2Eテスト自動化クラウドサービス p Webとモバイルアプリのテストに対応 p AI技術を活用 n
テストスクリプトを読みやすい日本語化 n テスト対象画面に変更があったら、テスト手順を自動修正 p 利用者も順調に増加中
今日話すこと 1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4.
Magic Pod開発のCI運用
1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4. Magic
Pod開発のCI運用
テスト自動化とは p テスト手順をプログラム化しておくと、コンピュータが 自動でテスト実行してくれる。 システム全体を通しでテスト UIテストツールなどを活用 複数の部品を結合してテスト APIテストツールなどを活用 個々の関数やクラスのテスト ユニットテストツールなどを活用
E2E Test Integration Test Unit Test
アジャイル開発で重要なこと プロセス 技術 カギは「自動化」
アジャイル開発と「自動化」 ビルド テスト リリース 設計 開発 ビルド テスト リリース 設計
開発 ビルド テスト リリース 設計 開発
アジャイル開発と「自動化」 ビルド テスト リリース 設計 開発 ビルド テスト リリース 設計
開発 ビルド テスト リリース 設計 開発 自動化しないと 繰り返し困難
アジャイル開発と「自動化」 ビルド テスト リリース 設計 開発 ビルド テスト リリース 設計
開発 ビルド テスト リリース 設計 開発 一番工数がかかるのに 一番自動化が難しい
なぜ今テスト自動化なのか p フィードバックのサイクルを早くするには 「テストの自動化」がカギだから p 「開発サイクルの高速化」を目的とした自動化が増加 n 従来は「コスト削減」がメイン
1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4. Magic
Pod開発のCI運用
Magic Podの開発環境 p Webサーバ・AIエンジン: Python、Django p 自動テストエンジン: Node.js p 開発者:
約6人 p QA: 0人 n ただし、 n 本書いている人とか、Selenium/Appiumコントリビュータとか p ほぼフルリモート p 読み書き(Slack、GitHub等)は英語 テスト自動化のエキスパートは多数
Magic Podの開発フロー p アジャイル的開発 p 2週間ごとのイテレーション(& リリース) n 細かいパッチリリースは随時 p
ビルド、デプロイは自動化
Magic Podの開発フロー p テスト n 新規開発部分は各自手動テスト n 一部のテストは自動化 n リリース前の3日間は社内ドッグフーディング
3日前 main branch 次の開発 feature branches リリース 次の開発
1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4. Magic
Pod開発のCI運用
Magic Podのテスト自動化 p 全テスト自動化はできないので、絞って自動化 p 手動テスト量の削減 & リグレッションの削減を目指す
どのテストを自動化するか 1. 自動化コストが低いところ 2. 処理が複雑なところ 3. 重要なところ
どのテストを自動化するか 1. 自動化コストが低いところ 2. 処理が複雑なところ 3. 重要なところ AIエンジン 静的解析 セキュリティ、自動テストエンジン、主要画面
1. 自動化コストが低いところ p ツールを設定するだけでチェックができるもの p スクリプトのメンテナンスが(ほぼ)不要なもの p Magic Pod開発でやっているもの: n
ソースコード静的解析 p やっていないもの: n Botでサイトリンクをたどり404エラー検出(モンキーテスト) n アプリクラッシュ検知(Firebase Crashlytics)
ソースコード静的解析 p Python: PyLint p JavaScript: ESLint p nginx: 構文チェック
ソースコード静的解析 p PyLint、ESLint n 動的型言語だと、コンパイラ代わりになるので効果的 n 静的型言語だと、書式統一以上のメリットは少ないかも p nginx構文チェック n
構文が間違っているとサーバが起動しなくなるので、 チェックは効果的
2. 処理が複雑なところ p そもそも複雑すぎて人力では品質を担保できないロ ジック n テストコードを書きながら開発を進めることが不可欠 p Magic Pod開発でやっているもの:
n AIエンジンのUnit Test、Integration Test
AIエンジンのUnit Test - UI解析AIのテスト p UI画像とツリーを解析し、操作できる要素をリスト アップするAI n 特殊な画面のパターンを多数テスト
AIエンジンのUnit Test - 自動修復AIのテスト p テスト対象画面のバージョンアップでテストが失敗し そうになった時に、スクリプト側を自動修正するAI n どんな失敗をどう修正するかのパターンを多数テスト
AIエンジンのIntegration Test - 自動修復AIのテスト p 複数のテストで使い回されている要素の修復など p DBを使ったテスト n レコード数を少なくすれば、DBアクセスしても十分高速
p 画面やWeb APIは特に利用しない MySQL テストコード (pytest)
3. 重要なところ p 不具合があるとビジネスインパクトが大きいところ p Magic Pod開発でやっているもの: n セキュリティテスト(Integration Test)
n 自動テストエンジンのテスト(E2E Test) n 主要な画面のテスト(E2E Test)
セキュリティテスト (Integration Test) p ふだん目に見えないので軽視しがちなので注意 p 問題が起きると最悪サービス終了くらいのインパクト p テスト内容は割愛
自動テストエンジンのテスト (E2E Test) 自動テストツールが最も避けるべきこと
自動テストエンジンのテスト (E2E Test) 自動テストツールが最も避けるべきこと テスト対象にバグが無いのに テスト失敗すること
自動テストエンジンのテスト (E2E Test) 偽のテスト失敗が続くと… テスト結果をチェックする 優先度が下がる テストのエラーが 放置されるようになる 自動化プロジェクト 失敗
自動テストエンジンのテスト (E2E Test) p ユーザーが作ったテストがMagic Podのバージョン アップで落ちないことはとても重要 p 対策は、TRIDENT社内で大量のMagic Podテストを流
すこと
自動テストエンジンのテスト (E2E Test) 各コマンド 各ブラウザ・OS 各環境 × × Magic Podクラウド
ローカル端末
自動テストエンジンのテスト (E2E Test) p 各コマンドのテスト(モバイルアプリテスト)
自動テストエンジンのテスト (E2E Test) p 各コマンドのテスト(ブラウザテスト)
自動テストエンジンのテスト (E2E Test) p ひたすら色々なブラウザ・OS・環境で実行 モバイルアプリテスト (On CircleCI) ブラウザテスト (On
CircleCI) ブラウザテスト (On AppVeyor)
自動テストエンジンのテスト (E2E Test) p テスト結果(iOSアプリテスト)
自動テストエンジンのテスト (E2E Test) p テスト結果(ブラウザテスト)
自動テストエンジンのテスト (E2E Test) p テストパターンは他にも… p Magic Pod内スケジューラからのテスト実行 p Bitriseからのモバイルアプリテスト実行
p 下位バージョンのクライアントの互換性テスト
主要な画面のテスト (E2E Test) p ユーザー登録、テスト作成・編集、有料プラン申込、 などなど p Magic PodでMagic Podの画面テストを自動化
n ドッグフーディングにもなる
主要な画面のテスト (E2E Test) p Magic PodによるMagic Pod画面のテスト
主要な画面のテスト (E2E Test) p Magic PodによるMagic Pod画面のテスト
主要な画面のテスト (E2E Test) p Magic PodによるMagic Pod画面のテスト(テスト結果)
主要な画面のテスト (E2E Test) p ついでに画像差分チェックも実施(reg-cli) p 正解画像1枚で画面全体の項目とレイアウトが チェックできるので、コスパがいい
主要な画面のテスト (E2E Test) p 画像差分チェック(reg-cli)
どのテストを自動化するか まとめ 1. 自動化コストが低いところ 2. 処理が複雑なところ 3. 重要なところ AIエンジン 静的解析
セキュリティ、自動テストエンジン、主要画面
1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4. Magic
Pod開発のCI運用
Magic Pod開発のCI運用 p GitHubにプルリクエストを出しながら開発を進める p 変更がコミットされた各タイミングでCircleCIによるビル ドを実施 main branch プルリクエスト
プルリクエスト feature branches
プルリクエストをマージする前 p feature branchesでは、高速に終わる「静的解析」 「Unit Test」を実施 p コードレビュー前に一定の品質を担保
プルリクエストをマージした後 p main branchでは、さらに「Dockerコンテナのビルド」 「結合テスト」も実施 p 変更がコミットされるたび
E2E Test p 1日 1〜2回実施 p メンバーが増えたら、ここの頻度もあげた方がいいかも
1. なぜ今テスト自動化なのか 2. Magic Pod開発の体制 3. Magic Pod開発のテスト自動化 4. Magic
Pod開発のCI運用
まとめ p テスト自動化により、アジャイル開発・継続的リリース が容易になる p 自動テストツールも自動テストしてます
宣伝 https://www.wantedly.com/companies/trident-qa
ありがとうございました!