1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「テスト駆動開発」の紹介

Last updated at Posted at 2020-10-03
1 / 19

テスト駆動開発
Kent Beck 著、和田 卓人 訳
オーム社
https://www.ohmsha.co.jp/book/9784274217883/

を読んでみたのでそのお話


テスト駆動開発とは...


「動作するきれいなコード」を書くための取り組み


単なる「テストファースト」ではない

「先にテストを書く」だけでは「動作するコード」にしかならない
「動作するきれいなコード」にする必要がある


テスト技法ではない

テストを通じてソースコードを改善し続けることがテスト駆動開発
要求仕様を満たしているか、パフォーマンスは十分か、セキュリティは問題ないかといったことはカバーできない


テスト駆動開発の原則

レッド(テストNG)・グリーン(テストOK)・リファクタリングを繰り返すことでソースコードを開発していく


少しずつ進める

「動作するきれいなコード」を書くステップ
・作る前に「どう動くのか」をテストで書く
・テストOKとなる「動作する」コードを書く
テストが通った後で「きれい」にする
・再度テストが通ったら、次のテストを書く


その結果として...


エンジニアがソースコードに自信を持っている状態を維持できる


カオス化するソースコード

プログラミングは「複雑で困難」なもの
何も対策しなければソースコードはだんだんとエンジニアの手に負えなくなる


ソースコードに「立ち向かう」

テストがあることでリファクタリングを安心して実施できる
→ソースコードを「動作するきれいなコード」で維持していられる


テスト駆動開発は個人スキル

チーム全体で導入しなければならない、というものではない
自分のプログラミングスキル向上のため今すぐ始められる


実際にやってみる

「付録B フィボナッチ」の内容を写経したもの
https://github.com/yoktave-yoknel/TDD_Fibonacci

VSCodeでの環境構築手順メモ
https://qiita.com/yoktave-yoknel/items/8e0e3a19a17d3dbd1b8b


振る舞い駆動開発

テスト駆動開発という名前により生じる「誤解」に対し、受け入れテストを取り込む形で発展したもの
「どう動くべきか」からスタートする


正しく伝播しなかった「テスト駆動開発」

「テストファースト」が独り歩き
リファクタリングを通じて「動作するきれいなコード」を実現するという本来の意味が置き去りに


エンジニアが技術に向き合う態度

あらゆる技術に「生まれてきた意図」がある
→背景に少しだけでも関心を持つ


もっと知るために

『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談
→訳者の和田卓人さんとアジャイルコーチの家永英治さんによる対談。本書の「付録C」の書かれた狙いについて語られています。

マニアが潰したテスト駆動開発
https://twop.agile.esm.co.jp/tdd-was-broken-by-mania-cb5a6e94b021

希薄化したTDD、プロダクトの成長のために必要なものは?
https://twop.agile.esm.co.jp/what-do-we-need-for-growth-of-future-65c43b5a8fe2


おしまい

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?