• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tdd is really dead ?
 

Tdd is really dead ?

on

  • 1,283 views

会社の新卒歓迎会LTで発表した内容です。

会社の新卒歓迎会LTで発表した内容です。
まだTDDはおろか自動テストすら研修前で、TDDに対して変な先入観を持って欲しくなかったので、基本的にはやんごとなき方々の言葉の引用をメインにし、僕自身の意見は少なめにしています。

Statistics

Views

Total Views
1,283
Views on SlideShare
1,247
Embed Views
36

Actions

Likes
10
Downloads
5
Comments
0

5 Embeds 36

https://twitter.com 20
http://s.deeeki.com 13
http://www.google.co.jp 1
https://www.chatwork.com 1
https://balzac 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tdd is really dead ? Tdd is really dead ? Presentation Transcript

    • TDD is really dead ? 株式会社ファクトリアル 末並晃 Twitter: @a_suenami Github: a-suenami id: a_suenami
    • http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html TDD is dead
    • 新卒の方々がTDDを誤解するとよくないので、 ここ数日の議論を見て 僕なりの見解を述べておきます。
    • http://ja.wikipedia.org/wiki/テスト駆動開発 “テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD) とは、プログラム開発手法の一種で、 プログラムに必要な各機能について、最初にテストを書き(こ れをテストファーストと言う)、そのテストが動作する必要 最低限な実装をとりあえず行った後、コードを洗練させる、 という短い工程を繰り返すスタイルである。多くのアジャイ ルソフトウェア開発手法、例えばエクストリーム・プログラ ミングにおいて強く推奨されている。近年はビヘイビア駆動 開発へと発展を遂げている。”
    • http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html TDD is dead
    • DHH said • TDD原理主義者はユニットテスト偏重になり がち • テストファーストはしばしば設計を悪化させ る • より上位のテストを使って開発を進めるほう がよい場合が多い
    • TDD is Fun http://solnic.eu/2014/04/23/tdd-is-fun.html
    • Solnic said • TDDには多くのガイドラインがあり、必ずしもモッ クの使用を促すものではない • 期待する振る舞いをテストとして記述し、それをパス させなさい • ユニットテストだけがTDDではない • ユニットテストを書くタイミング、モックを使うタイ ミングを学ぶべきである
    • Test-first is evil ? • アーキテクチャが複雑化し設計が悪化するのは本当にテストファー ストが原因なのか? • テストファーストはテストと実装の密結合を防ぐためのよいア プローチ手段であり、多くの場合設計を支援する(私見) • テストがよい設計へ導いてくれないのであれば、何がその役割を 担うのか • フレームワークの規約 ? • ドメイン駆動設計 ?
    • Conclusion • 振る舞いをテストコードとして記述し、自動化することはコード 変更の信頼性を高め、健全なコードを維持することに寄与する • ユニットテストだけでなく、より上位のテストでもそれは可能 だし、意味がある • ハードウェアスペックの向上、テスティングツールの普及によ り以前より簡単になった • テストファーストのアプローチは実装とテストを疎結合にし、プ ロダクトコード/テストコード双方のメンテナンス性に寄与する (私見)
    • Conclusion • TDDは銀の弾丸ではない • テストがよりよい設計に導いているか、開発を駆動し ているか常に意識しよう • テストはよくない設計に気づく機会を与え、変更への 恐怖を和らげるが、実際にコードを改善し続けるには 設計スキルやリファクタリングスキルが必須 • TDDは楽しいが、楽しむためには学び続ける必要がある
    • TDD is not dead, just reborn.