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
6.9k
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
WebシステムやモバイルアプリにおけるUIからの自動テスト事例3選
tomasagi
1
3.3k
自動テストの変遷_分断からコラボレーションの時代へ_.pdf
tomasagi
3
470
コラボレーションがテスト自動化の成否を分ける
tomasagi
1
2.5k
ソフトウェアテスト自動化の変遷。変わったことと変わらないこと。テスト自動化の導入パターン。
tomasagi
5
20k
Other Decks in Technology
See All in Technology
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
230
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
140
Taming you application's environments
salaboy
0
190
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
52
13k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Unsuck your backbone
ammeep
668
57k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
GitHub's CSS Performance
jonrohan
1030
460k
How GitHub (no longer) Works
holman
310
140k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Typedesign – Prime Four
hannesfritz
40
2.4k
The Language of Interfaces
destraynor
154
24k
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