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
XP祭り2022 xUnit Test Patterns勉強会
Search
eiji.ienaga
October 03, 2022
0
710
XP祭り2022 xUnit Test Patterns勉強会
XP祭り2022で使用した資料。
eiji.ienaga
October 03, 2022
Tweet
Share
More Decks by eiji.ienaga
See All by eiji.ienaga
テストオートメーションと末長くお付き合いするための17のこと
haru01
3
470
20240913知識ポートフォリオ
haru01
0
19
Agile Studioウェビナー~モブプログラミング&テスト駆動開発はじめの一歩~
haru01
0
220
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
haru01
4
2k
agile459-feedback
haru01
1
1.8k
書籍『テスト駆動開発』の紹介(みんなのPython勉強会#37 の発表資料)
haru01
2
7.6k
書籍『テスト駆動開発』7つの魅力のご紹介
haru01
1
1.1k
いえぴょんによる弾丸特急フィードバック講座
haru01
5
600
アプレンティスシップ・パターンの紹介
haru01
0
330
Featured
See All Featured
Navigating Team Friction
lara
183
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Automating Front-end Workflow
addyosmani
1366
200k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Side Projects
sachag
452
42k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Documentation Writing (for coders)
carmenintech
66
4.5k
For a Future-Friendly Web
brad_frost
175
9.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Transcript
XP祭りの中でxUTP勉強会 家永英治
お品書きA • 声で参加してくれる⼈とチャット参加の分離 • チェックイン • xUnit Test Patternsの簡単なご紹介 ◦
意⾒交換 • テストの不吉な臭いをいくつか紹介 ◦ 意⾒交換 • テストのゴールをいくつか紹介 ◦ 意⾒交換 • チャットからの質問を拾いながら議論 • チェックアウト • 適当に休憩
xUnit Test Patternsの 簡単な紹介
プログラマー向け。テストオートメーションをテーマに パターンフォーマットで知識整理した本(残念ながら翻訳なし) 833ページと分厚い︕ 前半がサマリー、後半がカタログ集 「テストダブル」はよく引⽤される。 他にも、前半のサマリー部分がお勧め。 xUnit Test Patterns
xUTPは翻訳ないが、類似テーマなら この2冊の翻訳本がお勧め︕
過去に抜粋でブログ紹介したのでこちらも https://twop.agile.esm.co.jp/xunit-test-patterns-01- e2bc5532fe7d https://twop.agile.esm.co.jp/xunit-test-patterns-02-2b3115fcaf69 https://twop.agile.esm.co.jp/stub-spy-mock-d01432e79e68
ざっくり⽬次
前半部分
ゴール 原則 不吉な臭い
後半のパター ンカタログ
None
テストダブル テスト可能な設計 データベース テストの構造化 xUnitの基礎 検証 後処理 前処理 値 戦略
時間の都合で詳しくは話さない
800ページ全部読むのは⾟いので ビジュアルマップで気になった⾔葉 ツマミ読みしてみるもお勧めの xUTPの読書法
私が響いたのは 「不吉な臭い」の箇所と「ゴ ール」の箇所 当時先輩から引き継いだテストコードのメンテナンスし続けるに 悩んでた。何が起きているか最初よく分かってなかったがうまく説 明していることに驚いた︕
https://twop.agile.esm.co.jp/dialogue-about-healthy-code-to-make-business-thrive-continuously-6b13c8b344ac 私の悩みと解消の 詳しくは こちら
⽴ち位置別のお勧めの読み⽅ デバック地獄に陥って、開発のコントロールを失っている。 ゴールの箇所を読んで、 ユニットテストに取り組む情熱を⾼めよう︕ テストをどのように構造化するとメンテナンスしやすいか解らない。 原則やパターンをつまみ読みして、定⽯を知ろう︕ テストを書いたけど、メンテナンスが⾟く悩んでいる。⾃動化に取り組 み始めたけどメンテナンス⾼の罠に陥る前に抑えておきたい 不吉な臭いを読んで、その悩みの正体を知り、対処しよう︕
不吉な臭い
コードの読み書き中に 気付く臭い テスト実⾏して 気付く臭い プロジェクト運営中に 気付く臭い
テストを実⾏すればバグ がよく⾒つかる リリース後に本番で バグがよく⾒つかる テストのメンテナンス コストが⾼い 開発者が テストを書かない プロジェクト 運営中で気付く問題
Q1:皆さんの現場で起きている不吉な事象は︖ 原因は何だと思う︖ 新機能追加や影響 範囲調査中にバグ がよく⾒つかる 新機能/バグ対応 の⽐率でバグ対応 が増えている 外内部品質をコントロール できない苛⽴ちが⾼まり、
エンジニアがやめていく 開幕から時間プレッシャー がキツくてテストを書かな い 知識や経験不⾜で テストを書かない
適当に休憩
実⾏結果に⼀貫性がなく 成功したり失敗したり (Flaky Test) テスト実⾏に時間 がかかる ちょっとした修正で すぐ壊れるテスト テストするのに ⼿作業がある
デバッカーを頻繁に ⽴ち上げている 複数アサーションでどれが 失敗しているか判別難しい テスト実⾏して 気付く問題
Q2:皆さんの現場で起きている事象は︖ 原因は何だと思う︖ 横恋慕モック 横恋慕UIテスト 横恋慕データ
テストコードの 読み書き中に気付く臭い 重複 テストコードに複雑なロ ジックがある プロダクションコードの中に テストコードが混じっている テストコード読んでも 何をしているか解らない テストが難しい
コード
Q3:皆さんの現場で起きている事象は︖ 原因は何だと思う︖
休憩
⼀部気になったテストの 不吉な臭いの原因箇所を 軽く読んでみる
テストオートメー ションのゴール
テストのオートメーションで 達成&維持したいのはコスト削減 だけじゃなーい
https://speakerdeck.com/twada/building-automated-test-culture-2022-autumn-edition
到達や維持したい ゴール テストは仕様だ テストはドキュメントだ セーフティネット 問題箇所を特定しやすく 簡単に書けるように 外/内の品質改善 リスクを減らす バグよけ
完全⾃動 ⽬視ではなく⾃⼰検証 繰り返し実⾏できる 新たな要望変更に強い 1つのテストをコンパ クトにシンプルに ドメイン語彙で わかりやすく 関⼼の分離 テストへの信頼を 下げないように
Tests as Specification Tests as Documantation
https://bliki- ja.github.io/CodeAsDocum entation/
「コミュニケーション⼤事」 ならテスティングに 取り組むが、超お勧め︕
かる 気になる箇所軽く読んでディス カッション