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
atom
March 15, 2024
Technology
9
7k
UIからの自動テスト事例
JaSST Tokyo 2024
にて発表した資料です。
HP:
http://www.humancrest.co.jp
#JaSST #テスト自動化 #自動テスト #TestAutomation
atom
March 15, 2024
Tweet
Share
More Decks by atom
See All by atom
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
4.7k
WebシステムやモバイルアプリにおけるUIからの自動テスト事例3選
tomasagi
1
3.4k
自動テストの変遷_分断からコラボレーションの時代へ_.pdf
tomasagi
3
480
コラボレーションがテスト自動化の成否を分ける
tomasagi
1
2.6k
ソフトウェアテスト自動化の変遷。変わったことと変わらないこと。テスト自動化の導入パターン。
tomasagi
5
20k
Other Decks in Technology
See All in Technology
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
36
14k
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
250
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
190
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
460
Featured
See All Featured
Scaling GitHub
holman
458
140k
A better future with KSS
kneath
238
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Optimising Largest Contentful Paint
csswizardry
33
3k
How GitHub (no longer) Works
holman
311
140k
Side Projects
sachag
452
42k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Music & Morning Musume
bryan
46
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Practical Orchestrator
shlominoach
186
10k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Making Projects Easy
brettharned
116
5.9k
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