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
0
140
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and coverage Share the essence within the team
第13回 Webナイト宮崎 〜てげLT祭りしたい〜
2021/05/14
LT資料
YasuhiroKimesawa
May 17, 2021
Tweet
Share
More Decks by YasuhiroKimesawa
See All by YasuhiroKimesawa
社内請負スクラムから脱却する〜複雑性に適応するスクラムチームの作り方〜
yasuhirokimesawa
2
270
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
740
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
530
DIPのことを知っておこう
yasuhirokimesawa
0
70
タスク管理術
yasuhirokimesawa
0
33
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
420
良いコードに正解はあるか
yasuhirokimesawa
0
530
数学とバッファ
yasuhirokimesawa
0
400
Other Decks in Programming
See All in Programming
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
160
15年目のiOSアプリを1から作り直す技術
teakun
1
600
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
210
Event Storming
hschwentner
3
1.3k
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
150
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
170
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
200
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
330
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
200
Claude Code、ちょっとした工夫で開発体験が変わる
tigertora7571
0
200
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
[SF Ruby Conf 2025] Rails X
palkan
2
810
The Cult of Friendly URLs
andyhume
79
6.8k
Statistics for Hackers
jakevdp
799
230k
Music & Morning Musume
bryan
47
7.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
A Tale of Four Properties
chriscoyier
162
24k
Paper Plane
katiecoart
PRO
0
47k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
360
エンジニアに許された特別な時間の終わり
watany
106
240k
Practical Orchestrator
shlominoach
191
11k
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