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
ローンチ1年目プロダクトのテストコード事情 / 2021-08-25 devtestlt
Search
west-c
August 25, 2021
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ローンチ1年目プロダクトのテストコード事情 / 2021-08-25 devtestlt
https://rakus.connpass.com/event/218754/
west-c
August 25, 2021
More Decks by west-c
See All by west-c
大規模案件における手戻りを防ぐ要件定義・開発事例 / 2022-11-09 RAKUS Meetup
westc
0
1.5k
はじめてのフロントエンド・バックエンド分離 / 2020-08-25 RAKUS Meetup
westc
3
3.1k
売れてる SaaS へのオブジェクトストレージ導入にまつわる泥臭い話 / JJUG CCC 2019 Spring
westc
2
3.6k
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
BBQ
matthewcrist
89
10k
How to Talk to Developers About Accessibility
jct
2
560
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Transcript
ローンチ1年目プロダクトの テストコード事情 2021.08.25 開発×テスト LT会 #devtestlt @west_c_
自己紹介 west-c (@west_c_) • 2015年〜:株式会社ラクス所属 ◦ 楽楽勤怠の機能開発担当 ◦ 主戦場はJava
担当プロダクトについて 楽楽勤怠(勤怠管理サービス) • 2020年10月にローンチ ◦ 開発自体は2020年初頭からスタート • 開発経験豊富なメンバーの比率が高め • 新しいメンバーも徐々に参画してきている
ユニットテストにまつわる課題 ユニットテスト作成指針がふんわりしている • コアドメインの機能:ドメインに精通したメンバーが作成した テスト項目書をもとに実装 • それ以外の機能:大方針をもとに実装者が ”いい感じ” に実装 ◦
→どれだけ網羅できているか把握できていない
ユニットテストにまつわる課題 • 現在のユニットテストの網羅率は十分なのか? • 今後十分にユニットテストを作成するためにどうするか?
ユニットテストにまつわる課題 • 現在のユニットテストの網羅率は十分なのか? • 今後十分にユニットテストを作成するためにどうするか?
現状調査 • JaCoCoでプロダクトコードのテストカバレッジを計測
現状調査 • 結果: ◦ C0(命令網羅率): 約90% ◦ C1(分岐網羅率): 約80%
現状調査 • 結果: ◦ C0(命令網羅率): 約90% ◦ C1(分岐網羅率): 約80% •
思った以上に良い結果 • 極端にカバレッジが低いパッケージもいくつかある
既存コードへの対策 • カバレッジが低いパッケージのテスト作成 • 測定で発見したデッドコードの除去 • 【今後の課題】各種分析結果をもとにテスト作成指針の整備 ◦ 不具合分析結果からどういった観点のテストが漏れがちか
ユニットテストにまつわる課題 • 現在のユニットテストの網羅率は十分なのか? • 今後十分にユニットテストを作成するためにどうするか?
新規コードへの対策 カバレッジ指標の策定 • C1 Coverage: 80%(現状維持) • ロジックの正当性担保が目的のためC1で測定 • 本質のロジックのテストに注力するために、100%は目指さない
◦ equals(), hashCode() などの分岐網羅をがんばらない
新規コードへの対策 テスト指針の遵守をレビュー観点に追加 • GitLabのMerge Request上に網羅状況を可視化 https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html
新規コードへの対策 テスト指針の遵守をレビュー観点に追加 • GitLabのMerge Request上にカバレッジを表示 https://docs.gitlab.com/ee/ci/pipelines/settings.html#add-test-coverage-results-to-a-merge-request
新規コードへの対策 テスト指針の遵守をレビュー観点に追加 • カバレッジの推移をグラフ表示
おわりに • コード量・メンバー数ともにまだ規模が小さいためリカバリーが効きやすい • 割れ窓理論にならないよう、今のうちに整備を進めたい • プロダクトの状況に沿ったちょうどいい作成指針を見極めたい
ありがとうございました