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
280
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
750
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
530
DIPのことを知っておこう
yasuhirokimesawa
0
71
タスク管理術
yasuhirokimesawa
0
34
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
420
良いコードに正解はあるか
yasuhirokimesawa
0
540
数学とバッファ
yasuhirokimesawa
0
400
Other Decks in Programming
See All in Programming
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
300
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
530
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.2k
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
The free-lunch guide to idea circularity
hollycummins
0
290
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
250
AHC061解説
shun_pi
0
410
PHPで TLSのプロトコルを実装してみる
higaki_program
0
310
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
480
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記 / "It’s Not Working!" A Struggle with Error Handling in API Platform using DI
mkmk884
0
110
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
350
存在論的プログラミング: 時間と存在を記述する
koriym
3
210
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
52k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Building AI with AI
inesmontani
PRO
1
810
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
830
Six Lessons from altMBA
skipperchong
29
4.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Making Projects Easy
brettharned
120
6.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
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