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
単体テストのすすめ
Search
uesho
April 18, 2020
Programming
36
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
単体テストのすすめ
身内勉強会で使用。
uesho
April 18, 2020
More Decks by uesho
See All by uesho
AIによるコードレビューで個人開発の質を高める
uesho
0
870
Other Decks in Programming
See All in Programming
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
560
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
Deep dive into the select statement (GopherCon UK)
jespino
0
170
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
190
Webプラットフォームで議論されているセキュリティ課題 / Security issues being discussed on Web Platforms
petamoriken
0
320
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
460
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
AIの中の人になってみる
htkym
0
170
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The agentic SEO stack - context over prompts
schlessera
0
910
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
520
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
It's Worth the Effort
3n
188
29k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Why Our Code Smells
bkeepers
PRO
340
58k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Designing for Performance
lara
611
70k
Transcript
単体テストのすすめ uesho
単体テスト(Unit Test)とは? • ユニット(モジュール、クラス、メソッド) 単位でテストするからユニット テストと言う • アプリケーションを横断的・全体的にテストする結合テストに比べ て、非常に小さい、軽量なテスト
原則 モジュールの数だけ、テストコードを書く Module1 Module2 Module3 Test for Module1 Test for
Module1 Test for Module1 Application Test for Application
原則 パターンの数だけ、テストコードを書く Function パターン1 パターン2 パターン3 Test for Function
例
ポイント • テストコードは正常形だけでなく、異常系も書く • テストコードは、適切な粒度で書く ◦ パターンを意識しすぎると、冗長で無駄なテストが増えていく (保守性が低下する) • テストコードは実装ではなく仕様に基づいて書く
• テストコードが書きづらい関数は、よくない関数 ◦ 何をするか不明瞭 ◦ やっていることが多すぎる などなど
メリット • 仕様が明確になる ◦ OSSとかもテストコードを見ると挙動がわかったりする • 機能追加やリファクタリングが容易になる ◦ これ本当に楽になる!!!!!!!
原則 テストコードはこまめに書く!!!TDDが理想 • 「アプリケーションを作って最後に書く」これはアカン ◦ テストによって見つけられるはずの早期不具合が見つけられ なくなる ◦ 一気にテストコードを書くのは苦痛...
原則 テストコードは常にアップデートする • テストコードを見て仕様が分かるのが理想 • 仕様がアップデートされるたびにテストコードがアップデートされる べき • そうしないとテストコードが腐る →
自動テスト(CI)を活用する
ユニットテストライブラリ プログラミング言語ごとに主要なユニットテストライブラリがあるので、言語・ 開発環境に合わせ選択する 書き方も大体どのライブラリも似ているが、ライブラリごとに異なる記法もあ るので、これは覚えましょう
単体テストを書くにあったって • 「何を確認するか」がWhat • それを確認するための具体的なテストコードがHow ◦ Whatがないと、「色々書いてあるけど何を確認しているん だ?」となる • テスト観点をテストメソッド名に書く
Given-When-Then • GIVEN : テストの前提条件を表す。 • WHEN : 操作 •
THEN : 期待する結果 を明示的に記述する ※似たようなものに、Arrange-Act-Assert というものもある
テストコードは、品質をあげるものではなく維 持するもの!!!! サービス提供のスピードが要求される昨今、テストコードは必要不可欠 もし、現在テストがなく今後サービスを成長させていくのであれば、少しづつでもテストを書いていこう