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
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and ...
Search
YasuhiroKimesawa
May 17, 2021
Programming
150
0
Share
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and coverage Share the essence within the team
第13回 Webナイト宮崎 〜てげLT祭りしたい〜
2021/05/14
LT資料
YasuhiroKimesawa
May 17, 2021
More Decks by YasuhiroKimesawa
See All by YasuhiroKimesawa
社内請負スクラムから脱却する〜複雑性に適応するスクラムチームの作り方〜
yasuhirokimesawa
2
290
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
800
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
550
DIPのことを知っておこう
yasuhirokimesawa
0
92
タスク管理術
yasuhirokimesawa
0
40
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
420
良いコードに正解はあるか
yasuhirokimesawa
0
550
数学とバッファ
yasuhirokimesawa
0
440
Other Decks in Programming
See All in Programming
CSC307 Lecture 17
javiergs
PRO
0
310
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
160
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
130
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.2k
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
120
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
Zod v4 Codec でスキーマに型変換を埋め込む REST API 設計 #TSKaigi2026
ryutaro_yako
0
180
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
250
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
260
今さら聞けないCancellationToken
htkym
0
210
Oxcを導入して開発体験が向上した話
yug1224
4
260
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
300
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Designing for Performance
lara
611
70k
Marketing to machines
jonoalderson
1
5.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The SEO identity crisis: Don't let AI make you average
varn
0
480
Evolving SEO for Evolving Search Engines
ryanjones
0
210
The Spectacular Lies of Maps
axbom
PRO
1
780
Tell your own story through comics
letsgokoyo
1
940
Into the Great Unknown - MozCon
thekraken
41
2.5k
Transcript
ユニットテストとカバレッジの 本質をチーム内で共有する 第13回 Webナイト宮崎 〜てげLT祭りしたい〜 2021/05/14 株式会社ZOZOテクノロジーズ ブランドソリューション開発部 木目沢 康廣
Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ ブランドソリューション開発部 木目沢 康廣 弊社サービスFulfillment by
ZOZO 開発担当 認定スクラムマスター Qiita: @YasuhiroKimesawa Twitter: pilgrim_reds Blog: https://pilgrim-lifestyle.jp/ 2
© ZOZO Technologies, Inc. https://zozo.jp/ • 日本最大級のファッション通販サイト • 1,400以上のショップ、8,100以上のブランドの取り扱い(ともに2020年12 月末時点)
• 常時83万点以上の商品アイテム数と毎日平均3,000点以上の新着 商 品を掲載 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など 3
© ZOZO Technologies, Inc. 4 https://fbz.zozo.com/ • ZOZOTOWN出店企業の自社ECのフルフィルメント支援サービス •
自社EC運営のための撮影・採寸・梱包・配送などの各種フルフィルメン ト業務を、ZOZOTOWNの物流センター「ZOZOBASE」が受託 • 設備投資・人件費・在庫保管料などの負担なしで、自社ECの運営が可 能 • 各販売チャネル(自社EC・店舗・ZOZOTOWN)の在庫連携が可能。これ により、商品欠品による販売機会の損失を最小化
© ZOZO Technologies, Inc. ユニットテストを書く意味・カバレッジを計測する意味 話してみたら意外とチームで共有でき ていなかった ユニットテストを書く意味とカバレッジを計測する意味をあらためて考えてみたい 5
© ZOZO Technologies, Inc. なぜユニットテストを書くのか?① X品質を上げるため ◦品質をわかるようにするため 品質を上げるのはあくまで設計・プログラミング。 6
© ZOZO Technologies, Inc. なぜユニットテストを書くのか?② 今の品質がわかれば、再設計とリファ クタリングにチャレンジしやすい 品質を上げるのはあくまで設計・プログラミング。つまり、再設計とリファクタリングが品質を上げる。 ユニットテストがなければ再設計もリファクタリングも着手しづらい。 7
© ZOZO Technologies, Inc. なぜカバレッジを計測するのか?① カバレッジが低い(=ユニットテストが 少ない)と品質が「わからない」 数値が低いうちは計測することに意味がある。では何%を目指すべきか 8
© ZOZO Technologies, Inc. なぜカバレッジを計測するのか?① 何%をめざすべきか? ‘思慮深くテストを実施すれば、テストカバレッジはおそらく80%台後半か90%台になるだろう。 カバレッジの数値が低い場合、たとえば50%以下の場合は、おそらく問題があるだろう。高いカバレッジの数値にはあ まり意味はない。ダッシュボードの数字に意味がなくなる助けをするだけだ。 以下の質問に「はい」と答えられるならば、おそらくテストは十分だろう:
• 本番環境で発見されるバグはほとんどない。 • 本番環境でバグを出すことを恐れてコードの変更をためらうことがない。’ by マーチン・ファウラー https://bliki-ja.github.io/TestCoverage/ より 9
© ZOZO Technologies, Inc. ユニットテストとカバレッジを使って品質を見える化するツール SonarCloudを導入 • 10 ・カバー率、ファイルごとの未カバー箇所のチェック
・セキュリティ的に不備がある箇所の自動チェック ・コードの不吉な匂いの自動チェック(定数のEnum化する 提案、文字列を定数化する提案、メソッドの分割の提案、 引数が多すぎる指摘など) 参考:書籍 リファクタリング:第三章コードの不吉な匂い (https://www.amazon.co.jp/dp/427405019X)
© ZOZO Technologies, Inc. ユニットテストとカバレッジを使って品質を見える化するツール SonarCloud GitHubプラグイン 11 ・PullRequestごとに自動チェック
・ブランチの差分のみを計測する ・基準を満たさないとマージできないなどの設定も可能 ・人の手を介さずに品質の見える化が実現可能
© ZOZO Technologies, Inc. ユニットテストを書く意味・カバレッジを計測する意味 当たり前のようにテストを書く前に一 度チームでなぜやるのか会話してみ るのがおすすめです。 12
None