Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and ...
Search
YasuhiroKimesawa
May 17, 2021
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ユニットテストとカバレッジの 本質をチーム内で共有する / 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
320
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
1.1k
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
580
DIPのことを知っておこう
yasuhirokimesawa
0
110
タスク管理術
yasuhirokimesawa
0
72
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
430
良いコードに正解はあるか
yasuhirokimesawa
0
570
数学とバッファ
yasuhirokimesawa
0
490
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
0
110
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
130
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
20
21k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
phperだってパンチカードでコーディングしたい
o0h
PRO
0
220
速習iPhone Duo対応
yuukiw00w
2
960
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
110
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
340
APNsからLive Activityを開始する話
yumnumm
0
150
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
R8 の設定見直しでアプリサイズ削減
andpad
0
180
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
350
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
A Soul's Torment
seathinner
8
3.7k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
The Curse of the Amulet
leimatthew05
3
15k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Optimizing for Happiness
mojombo
378
71k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
600
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