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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
310
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
1.1k
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
580
DIPのことを知っておこう
yasuhirokimesawa
0
110
タスク管理術
yasuhirokimesawa
0
70
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
430
良いコードに正解はあるか
yasuhirokimesawa
0
570
数学とバッファ
yasuhirokimesawa
0
480
Other Decks in Programming
See All in Programming
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
140
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
100
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
110
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
390
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
速習iPhone Duo対応
yuukiw00w
1
510
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.2k
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
690
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
110
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
Balancing Empowerment & Direction
lara
6
1.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
500
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
350
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Test your architecture with Archunit
thirion
2
2.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
530
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
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