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
UIからの自動テスト事例
Search
Tomo
March 15, 2024
Technology
9
8.2k
UIからの自動テスト事例
JaSST Tokyo 2024
にて発表した資料です。
HP:
http://www.humancrest.co.jp
#JaSST #テスト自動化 #自動テスト #TestAutomation
Tomo
March 15, 2024
Tweet
Share
More Decks by Tomo
See All by Tomo
QA Strategy in the AI Era
tomasagi
0
24
Agile TPIを活用した品質改善事例
tomasagi
0
1.5k
Why Mastering QA Skills Beyond AI is Needed
tomasagi
0
51
プロセス改善による品質向上事例
tomasagi
3
7.1k
Explore the world of test automation through insightful real-world case studies
tomasagi
0
110
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
2
6.8k
WebシステムやモバイルアプリにおけるUIからの自動テスト事例3選
tomasagi
1
4.5k
自動テストの変遷_分断からコラボレーションの時代へ_.pdf
tomasagi
3
560
コラボレーションがテスト自動化の成否を分ける
tomasagi
1
3k
Other Decks in Technology
See All in Technology
from Sakichi Toyoda to Agile
kawaguti
PRO
1
110
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
8
4.1k
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
140
社内お問い合わせBotの仕組みと学び
nish01
1
570
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
2
210
AWS IoT 超入門 2025
hattori
0
310
Large Vision Language Modelを用いた 文書画像データ化作業自動化の検証、運用 / shibuya_AI
sansan_randd
0
130
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
440
【Oracle Cloud ウェビナー】クラウド導入に「専用クラウド」という選択肢、Oracle AlloyとOCI Dedicated Region とは
oracle4engineer
PRO
3
130
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
380
そのWAFのブロック、どう活かす? サービスを守るための実践的多層防御と思考法 / WAF blocks defense decision
kaminashi
0
160
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
1
160
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Building Adaptive Systems
keathley
43
2.8k
Typedesign – Prime Four
hannesfritz
42
2.8k
Embracing the Ebb and Flow
colly
88
4.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Building Applications with DynamoDB
mza
96
6.7k
Music & Morning Musume
bryan
46
6.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
30
2.7k
Designing Experiences People Love
moore
142
24k
How GitHub (no longer) Works
holman
315
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
株式会社ヒューマンクレスト UIからの⾃動テスト事例2選 取締役 兼 技術推進本部 本部⻑ 浅⻩ 友隆 1
© 2024 Human Crest Co., Ltd. AGENDA 本⽇のアジェンダ 1. ⾃動テストの⼭
2. 環境の変化 3. 事例 1. 何を⾃動テストするのか︖ 2. 運⽤課題を克服する 4. 継続したその先に 5. まとめ 2
© 2024 Human Crest Co., Ltd. ⾃⼰紹介 浅⻩ 友隆 技術推進本部
本部⻑ 3 • ⾃動テスト⼤好き • 趣味 : カメラ、ドライブ • 職歴 : 営業→開発→テスト
© 2024 Human Crest Co., Ltd. 株式会社ヒューマンクレスト 4 • ソフトウェアのテストを専業にしている
© 2024 Human Crest Co., Ltd. 株式会社ヒューマンクレスト 5 Japan Quality
Co., Ltd./ DADラボ(海外検証拠点) ベトナム ダナン 16F, Da Nang Software Park, 02 Quang Trung, Thach Thang Ward, Hai Chau District, Da Nang, VIETNAM ARRANGILITY SDN. BHD. マレーシア サイバージャヤ Unit LG-02 & LG-03, Ground Floor, CoPlace 5 Block 3710, Persiaran APEC, Cyber 8, 63000 Cyberjaya Selangor Darul Ehsan, MALAYSIA
© 2024 Human Crest Co., Ltd. 本⽇の事例に関して • 決してだれかを⾮難しているわけではありません。 •
⾃動テストは、UI層を操作するE2Eテストに限った話です。Unitテスト等は 含まれておりません。 UI Service Unit 6
© 2024 Human Crest Co., Ltd. 現状、⾃動テストやってないんですか︖ • やりたいんだけど、どこからやればいいのか︖ •
⾃動テストを始めるに当たって ◦ どんな技術を使っているのか︖ ◦ どのように実現しているのか︖ ◦ どんなテストを実⾏しているのか︖ 7
© 2024 Human Crest Co., Ltd. 8 ⽬的 実⾏ レポーティング
結果分析 ツ ー ル フ レ ー ム ワ ー ク 環 境 CI/CD ス コ ー プ 戦略 設 計 リソース チーム ⽂化 スキルセット テスト⾃動化 ソリューション
© 2024 Human Crest Co., Ltd. ⾃動テストの⼭ 1. 9
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ ⾃動テスト ⾃動テスト
登るべき⼭が2つある 10
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 11
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 12
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 初期構築を素早くできるか︖ 13
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト テストをリファクタリングできるか︖ 14
© 2024 Human Crest Co., Ltd. 環境の変化 2. 15
© 2024 Human Crest Co., Ltd. 2.1 環境の変化 ー プロセス
• ウォーターフォールからアジャイルへ 16
© 2024 Human Crest Co., Ltd. 2.2 環境の変化 ー テクノロジー
• ツールの変化 商⽤ツール OSS SaaS 17
© 2024 Human Crest Co., Ltd. 2.3 環境の変化 ー テストへの期待
18 • テストは、実施するものではなく、実⾏されているもの • テストは、バグを⾒つけるものではなく、フィードバックを得るもの
© 2024 Human Crest Co., Ltd. 事例 3. 19
© 2024 Human Crest Co., Ltd. 事例の前に、共通している「技術」の話 • テスト⾃動化のフレームワーク ◦
Selenium(Selenium Grid) ◦ Appium • テストフレームワーク ◦ JUnit ◦ Cucumber • テスト実⾏環境 ◦ 実機 ◦ Workspaces ◦ Docker • CI環境 ◦ Jenkins ◦ GitLab • スクリプト⾔語 ◦ Java • テストケース管理 ◦ エクセル ◦ (テストフレームワーク) • その他 ◦ OpenCV(画像⽐較) 20
© 2024 Human Crest Co., Ltd. ⼀般的な構成図 21 WorkSpaces Node
Hub EC2 Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c LynxDashboard LynxRun GitLab Excel管理 テストケース テスト 対象
© 2024 Human Crest Co., Ltd. 事例 1 何を⾃動テストするのか︖ 3.1
22
© 2024 Human Crest Co., Ltd. 事例 1 • BtoB
Webサービス会社 • テスト対象システム Webアプリケーション ◦ A システム(PHP) ◦ B システム(Java) • ステージング環境 23
© 2024 Human Crest Co., Ltd. 事例1 チームに関して • プロダクト毎にチームがある(5〜8名)
◦ プロダクトオーナー ◦ 開発者 ◦ サポート • チーム内のコミュニケーションは良好 ◦ 毎週、チーム毎にミーティングを⾏い、⽬標、結果、対応状況の共有 • 開発プロセスはウォーターフォール ◦ 期限はあるが、開発者にお任せ状態 ◦ 機能追加、機能改善などを⾏いながらも、サポートからの問い合わせ、調査が発 ⽣した場合は、優先事項が変更され⽇々追われている 24
© 2024 Human Crest Co., Ltd. 事例1 • 課題 ◦
リグレッションテストができていないなど品質⾯で不安がある、不具合はユーザ ーからの報告があがって初めて気がつくこともある • 思い ◦ アップデートで動かなくなったところがないか、確認したい ◦ 不具合が発⽣していないか知りたい ◦ 毎⽇⾃動テストが動いている状態にしたい 25
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 何を⾃動テストにするか︖ 26
© 2024 Human Crest Co., Ltd. 事例1 テストピラミッド 27 UI
Service Unit 2009年 Mike Cohn, Succeeding with Agile: Software Development Using Scrum Manual Testing
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める ユーザーに提供している 基本的な機能をテストする
28
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 29
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 30
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める • テストケース数
◦ Aシステム︓20ケース ◦ Bシステム︓77ケース • 最初の1テストケースが回り始めるまで 3週間 • 全てのテストケースが作成完了したのが、2ヶ⽉後 • テスト実⾏は、毎⽇1回 • テスト失敗時、Slackへ概要とスクショを送信 31
© 2024 Human Crest Co., Ltd. 事例1 変化 • スクラムが導⼊された。
• Unitテストの⾃動化も始まった。 • リファクタリングできるようになった。 • 今後 ◦ アンチパターンにならないように 気をつける必要がある 32 https://testing.googleblog.com/2020/11/fixing-test-hourglass.html
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める とにかく 1テストケースが
毎⽇実⾏される テスト実⾏環境を 最速でつくる 33
© 2024 Human Crest Co., Ltd. 事例 2 運⽤課題を克服する 3.2
34
© 2024 Human Crest Co., Ltd. 事例2 35
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの概要 「CASIO WATCHES」にてデグレチェックを中⼼とした⾃動テストを実施し、
基本機能が正常に稼働していることを確認する • ⽬的 ◦ 開発中の不具合の早期発⾒、⼿戻り削減、開発負荷の軽減、テスト⼯数の削減 ◦ 本番リリース後の全体チェック、市場不具合の早期発⾒、市場品質の確保 • 対象 ◦ 開発環境でのリグレッションテスト(回帰テスト) ◦ 本番環境でのリグレッションテスト(回帰テスト) ◦ (市場問題となったケース) 36
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの概要 • 対象アプリ
◦ 本番アプリ ◦ 開発アプリ ◦ (リリース直前) • テスト内容 ◦ 機能テスト ◦ 284ケース/スイート • テスト実⾏頻度 ◦ 固定時間(0時、12時) 37
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの全体構成 1200実⾏/⽇ 38
Mac Mac mini Mac mini Mac mini
© 2024 Human Crest Co., Ltd. 事例2 テスト実⾏の⼯夫 39
© 2024 Human Crest Co., Ltd. ⾃動テストを継続するために 運⽤の課題を克服する 40
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤で発⽣した課題 1. テスト失敗時の対応が⼤変
2. テストが不安定すぎる 41
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤における課題1 • 課題︓テストが失敗した時、原因調査、修正まで数時間かかる
◦ 1テストケースの実⾏時間が⻑い(10〜30分) →再実⾏→途中で落ちる… 修正確認で、また落ちる… • 原因 ◦ 画⾯単位のテストケースを⾃動化していた。 • 対策 ◦ ⾃動テスト⽤にケースを再設計し分割。 元々は48ケースだったが、現在284ケース(最終的には500ケース) • 効果 ◦ テストが安定した ◦ 原因調査時間を⼤幅に短縮できた 42
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤における課題2 • ちょっとした画⾯の変更でテストが失敗する
◦ テストスクリプトの修正が頻発 ◦ (常に不安定な箇所がたくさんあった) • 原因 ◦ ⻑いXPATH、スクロールで変わってしまう ◦ OpenCVの画像マッチングの精度問題 • 対策 ◦ (Appiumで認識できる) IDをつける • 効果 ◦ テストが安定した ◦ 開発チームとコラボレーションができた 43
© 2024 Human Crest Co., Ltd. 事例2 継続する為のポイント • 担当者を決める(まずは属⼈化)
• 失敗テストを放置しない(24時間以内に⽅針を決める) • テストを安定化させる(不安定なテストは捨てる) • テストのリファクタリングを常に⾏う(テストの⽬的、価値を再構築する) • 開発者や他のメンバーの協⼒を得る(コラボレーションしよう︕) 44
© 2024 Human Crest Co., Ltd. 継続したその先に 4. 45
© 2024 Human Crest Co., Ltd. 4. 新しい技術を取り⼊れよう • 10年
⾃動テストを続けているお客様がいる • 常に新しい技術を取り⼊れ、安定したテストを⽬指す 46 初期 • Windows実機 • Selenium 1.X • Windowsスケ ジューラー クラサバ期 • SeleniumGrid • Jenkinsの導⼊ クラウド化 • コンテナ化 • AWSの利⽤
© 2024 Human Crest Co., Ltd. 4.最近の取り組み • Firebase Test
Lab上での⾃動テスト 47
© 2024 Human Crest Co., Ltd. まとめ 5. 48
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント1 始める
継続する ⾃動テスト ⾃動テスト 49
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント2 始める
継続する ⾃動テスト ⾃動テスト 50
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント2 始める
継続する ⾃動テスト ⾃動テスト 初期構築を素早く⾏う 51
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント3 始める
継続する ⾃動テスト ⾃動テスト 52
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント3 始める
継続する ⾃動テスト ⾃動テスト テストを リファクタリングする 53
© 2024 Human Crest Co., Ltd. (再掲) 事例2 継続する為のポイント •
担当者を決める(まずは属⼈化) • 失敗テストを放置しない(24時間以内に⽅針を決める) • テストを安定化させる(不安定なテストは捨てる) • テストのリファクタリングを常に⾏う(テストの⽬的、価値を再構築する) • 開発者や他のメンバーの協⼒を得る(コラボレーションしよう︕) 54
© 2024 Human Crest Co., Ltd. 5. まとめ E2Eの⾃動テストは •
基本的な機能のテストにとどめる • すぐ始める • リファクタリングする • 技術トレンドを追う 55 UI Service Unit 始める 継続する ⾃動テスト ⾃動テスト
© 2024 Human Crest Co., Ltd. See the world not
as it is, but as it should be. 56 あるがままでなく、あるべき世界をみろ
© 2024 Human Crest Co., Ltd. 変⾰と研鑽 57
© 2024 Human Crest Co., Ltd. ご清聴ありがとうございました 58