Slide 1

Slide 1 text

動作する読みやすい E2Eを目指して 2024/9/28 XP祭り

Slide 2

Slide 2 text

2 藤原 考功(Takanori Fujiwara) ・株式会社ユーザベースの社員(テストエンジニア) ・XP祭り実行委員 ・JSTQB(Japan Software Testing Qualification Board)技術委員 自己紹介 https://www.shoeisha.co.jp/book/detail/9784798186061

Slide 3

Slide 3 text

3 E2Eテスト(以下、E2E)に対する改善活動 今日お話しすること

Slide 4

Slide 4 text

4 ● 画面やAPIなどの仕様を、 利用者の立場で記述する ● 上記に、動作を確認するための手順が 自動テストとして紐付いている 本セッションにおける「E2E」

Slide 5

Slide 5 text

5 ● 動作するドキュメント ○ 利用者の立場から見た仕様が書かれている ○ 自動テストとして動かすことができる  本セッションにおける「E2E」 特に、最新の仕様がタイムリーに反映されていることが重要だと思っています

Slide 6

Slide 6 text

6 ● 仕様を理解できる記述になっている ○ 利用者の立場から見た仕様が書かれている ● 安定して動作する ○ 自動テストとして動かすことができる  「E2E」が備えていてほしい要素 発表の都合上、後者の「安定して動作する」の方を先に話します

Slide 7

Slide 7 text

7 ● GaugeとSelenideを採用 ● 自然言語で記述し、テストコードと紐付ける  私たちのチームの場合

Slide 8

Slide 8 text

8 紐付けの例

Slide 9

Slide 9 text

動作するE2E | 01 | 9

Slide 10

Slide 10 text

10 ・まずは最低限動作するコードを書く ・テストがGreenな状態を保ったまま  コードを綺麗にする テスト駆動開発の考え方

Slide 11

Slide 11 text

11 ・まず安定して動作することが大事 ・動作しない(特に不安定な)テストコードは  余計なストレスを生む ・安定して動くから安心して試行錯誤できる E2Eにも同じことが言えるはず

Slide 12

Slide 12 text

12 ・安定しない原因を愚直に調べる ・安易なリトライもなるべくやめる どうしたら安定するのか

Slide 13

Slide 13 text

13 ・画面を開く ・画面の描画が終わるまで待つ ・画面内の要素を検証する 例えば、「待ち」を改善する

Slide 14

Slide 14 text

14 ・画面を開く ・画面の描画が終わるまで待つ←ここが抜けがち ・画面内の要素を検証する 例えば、「待ち」を改善する

Slide 15

Slide 15 text

読みやすいE2E | 02 | 15

Slide 16

Slide 16 text

16 テストコードは常に具体的な手順として 細かく書く必要があるので、 記述量が多くなりがち E2Eが読みづらくなってしまう理由 その1

Slide 17

Slide 17 text

17 ・ログイン画面を開く ・ログイン画面が表示されるまで待つ ・ユーザー名に「username」を入力する ・パスワードに「password」を入力する ・「ログイン」ボタンを押下する 記述量(手数)が多い例

Slide 18

Slide 18 text

18 対策:1行に置き換えて隠す

Slide 19

Slide 19 text

19 ・記述しない...は無理なので、  何らかの形で構造化する ・インデントする、色を分ける、  ファイルを分ける etc… 記述量への対策

Slide 20

Slide 20 text

20 ・具体的な事実しか書かれておらず、  仕様そのものや、なぜその仕様になったか  といった情報が欠落している E2Eが読みづらくなってしまう理由 その2

Slide 21

Slide 21 text

21 ・上映開始時刻が21:30である場合、  料金として1,500円を表示する 具体的な事実しか書かれていない例 仕様が読み取れない!!

Slide 22

Slide 22 text

22 対策:仕様がわかる記述に置き換える

Slide 23

Slide 23 text

まとめに替えて | 03 | 23

Slide 24

Slide 24 text

・安定して動作するE2Eを手に入れるために、  安定しない原因を少しずつ潰す ・綺麗で読みやすいE2Eを手に入れるために、  具体的(すぎる)記述に少しずつ手を入れる 24 動作する読みやすいE2Eを目指して 結局、こまめな片付けが大事ってことなんだと思います