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
動作する読みやすいE2Eを目指して/Aim for readable E2E
Search
Culvert
October 16, 2024
Technology
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
動作する読みやすいE2Eを目指して/Aim for readable E2E
XP祭り2024の発表資料です。
Culvert
October 16, 2024
More Decks by Culvert
See All by Culvert
受け入れテスト駆動開発で不確実性に段階的に対処する/Addressing Uncertainty Incrementally with Acceptance Test-Driven-Development
culvert
5
1.8k
ソフトウェアの設計を学び、メンテナンスしやすいテストを作ろう / Learn software design, Create tests that are easy to maintain
culvert
3
2.8k
私が経験したアジャイルテスト
culvert
4
1.5k
NaITE__32_First_ML.pdf
culvert
0
430
naite31_jstqb_tm
culvert
0
580
地域の子どもを地域で育てる
culvert
0
250
モヤモヤと向き合う
culvert
0
610
デブサミに行ってきた話
culvert
0
160
Other Decks in Technology
See All in Technology
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
200
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
850
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
7
7.4k
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
2
600
振り返りこそエンジニアの本領
negima
0
330
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
170
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
160
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
320
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
220
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.3k
PfEingのアプローチで働こう
rindrics
0
190
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Building the Perfect Custom Keyboard
takai
2
860
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Odyssey Design
rkendrick25
PRO
2
800
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Un-Boring Meetings
codingconduct
0
410
Transcript
動作する読みやすい E2Eを目指して 2024/9/28 XP祭り
2 藤原 考功(Takanori Fujiwara) ・株式会社ユーザベースの社員(テストエンジニア) ・XP祭り実行委員 ・JSTQB(Japan Software Testing Qualification
Board)技術委員 自己紹介 https://www.shoeisha.co.jp/book/detail/9784798186061
3 E2Eテスト(以下、E2E)に対する改善活動 今日お話しすること
4 • 画面やAPIなどの仕様を、 利用者の立場で記述する • 上記に、動作を確認するための手順が 自動テストとして紐付いている 本セッションにおける「E2E」
5 • 動作するドキュメント ◦ 利用者の立場から見た仕様が書かれている ◦ 自動テストとして動かすことができる 本セッションにおける「E2E」 特に、最新の仕様がタイムリーに反映されていることが重要だと思っています
6 • 仕様を理解できる記述になっている ◦ 利用者の立場から見た仕様が書かれている • 安定して動作する ◦ 自動テストとして動かすことができる 「E2E」が備えていてほしい要素
発表の都合上、後者の「安定して動作する」の方を先に話します
7 • GaugeとSelenideを採用 • 自然言語で記述し、テストコードと紐付ける 私たちのチームの場合
8 紐付けの例
動作するE2E | 01 | 9
10 ・まずは最低限動作するコードを書く ・テストがGreenな状態を保ったまま コードを綺麗にする テスト駆動開発の考え方
11 ・まず安定して動作することが大事 ・動作しない(特に不安定な)テストコードは 余計なストレスを生む ・安定して動くから安心して試行錯誤できる E2Eにも同じことが言えるはず
12 ・安定しない原因を愚直に調べる ・安易なリトライもなるべくやめる どうしたら安定するのか
13 ・画面を開く ・画面の描画が終わるまで待つ ・画面内の要素を検証する 例えば、「待ち」を改善する
14 ・画面を開く ・画面の描画が終わるまで待つ←ここが抜けがち ・画面内の要素を検証する 例えば、「待ち」を改善する
読みやすいE2E | 02 | 15
16 テストコードは常に具体的な手順として 細かく書く必要があるので、 記述量が多くなりがち E2Eが読みづらくなってしまう理由 その1
17 ・ログイン画面を開く ・ログイン画面が表示されるまで待つ ・ユーザー名に「username」を入力する ・パスワードに「password」を入力する ・「ログイン」ボタンを押下する 記述量(手数)が多い例
18 対策:1行に置き換えて隠す
19 ・記述しない...は無理なので、 何らかの形で構造化する ・インデントする、色を分ける、 ファイルを分ける etc… 記述量への対策
20 ・具体的な事実しか書かれておらず、 仕様そのものや、なぜその仕様になったか といった情報が欠落している E2Eが読みづらくなってしまう理由 その2
21 ・上映開始時刻が21:30である場合、 料金として1,500円を表示する 具体的な事実しか書かれていない例 仕様が読み取れない!!
22 対策:仕様がわかる記述に置き換える
まとめに替えて | 03 | 23
・安定して動作するE2Eを手に入れるために、 安定しない原因を少しずつ潰す ・綺麗で読みやすいE2Eを手に入れるために、 具体的(すぎる)記述に少しずつ手を入れる 24 動作する読みやすいE2Eを目指して 結局、こまめな片付けが大事ってことなんだと思います