TDD で出来上がるもの
さかもと画伯曰く、 「TDDとTDLとは違う。」 …それでつらつら考えた。
TDD ( テスト駆動開発 ) で出来上がるもの。 っていうか、 成果物?。
# つれづれなるままに書くので、 いきなり信じてはいけません f(^^;
・ クラスやメソッドに対する、 厳密な外部仕様書。 ( テストコードのことね )
※ ソフトウェアの仕様書として正確なのかどうかは、 保証されません。 f(^^;
・ クラスやメソッドに対する、 必要十分なテスト。
※ ソフトウェアテストの経験が浅い開発者が作った場合は、 保証されません。 f(^^;
・ 厳密な外部仕様書を過不足なく満たす、 製品コード。
※ テストカバレッジのことを理解していない開発者が作った場合は、 保証されません。 f(^^;
・ リファクタリングされた、 美しい構造。
※ ソフトウェアの美しい構造に造詣の浅い開発者が作った場合は、 保証されません。 f(^^;
…ん~っと、 とりあえずそんなとこ? f(^^;
そうそう。 TDD では、 これらを長いタイムスパンで見れば、 同時並行開発します。 でも、 短いタイムスパン ( 数分とか数十分とか ) では、 どれか一つしか考えません。 やっつけねばならない問題の範囲を狭くシンプルにしてやって、 考えることもシンプルにしてやります。 ( …って、 これも、 分割・統治のモノ作りに慣れてないとダメか f(^^; )
複雑なことをいっぺんにたくさん考えるのは苦手だという人 ( 私とか f(^^; ) には、 ピッタリなやり方だと思います。 また、 コードが出来上がった後で、 やれ仕様と違うだの、 やれバグってるだのと言われて、 ぐじぐじと手離れしてくれないのは嫌いな短気な人 ( 私とか f(^^; ) にも、 向いてると思います。
ついでに。 テストは仕様書 ( スペック ) から作るもんです。 出来あがったソースコード ( 設計図 ) から作るもんじゃありません。 そんなことやったら、 出来上がったモノに引きずられて、 大甘なテストになっちゃいます。 ( 出来上がったモノを見て、 「あ、 しまった、 抜けてた」 ってのは往々にしてありますけど f(^^; )
これ、 ひょっとすると、 機械設計屋さんとソフト開発屋さんの、 大きな意識の違い?
それに、 どんなテストをされるのか明確にされてなかったら、 機械設計屋さんは強度計算ひとつ出来やしません。
また、 テストのために、 例えば、 部品を測定器に固定するためのタブ ( 出っ張り部 ) を設計図に盛り込むこととか、 当たり前のことです。 テスト出来なきゃ、 その部品を納品できませんから。
え? 機械設計屋さんの世界では、 テストは簡単に作れるのか、 って?
はい、 簡単です。 ( ソフトウェアに比べれば。)
なんせ、 毎回、 作るものはおおむね同じようなもんですから。 ( ソフトウェアに比べれば。)
比べると、 ソフトウェアのテストを作るのは、 難しいです。
毎回、 まったく違うモノを作ることが多いです。 どんなテストをすればよいか、 合格ラインをどの程度にすればよいか、 いまのところ、 毎回手探りで進むしかありません。 いっぺんに完璧なテストを用意しようというのは、 人間ワザでは不可能でしょう。
そこで、 仕様からラフなテストを作ってみて、 検証し ( つまり、 それに見合う実装を書いてみて )、 テストを追加したり修正したりしていくことで、 テストの精度を上げてくのがいいんじゃないかしらん。
なので、 テスト駆動開発では、 テストも同時並行で開発するのです。
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「-プログラミング ( わんくま )」カテゴリの記事
- [わんくま名古屋] 第21回: Metro サンプルコード解説 (1/3)(2012.04.15)
- [わんくま名古屋] 第21回は 4月 14日 - Windows 8 Metro をやるよ~♪(2012.04.12)
- [わんくま東京] 第59回の資料を公開しました(2011.06.02)
- [わんくま東京] 第59回は 5月 28日 - 名古屋から侵略します♪(2011.05.23)
- [わんくま名古屋] 第17回は 4月 9日 - TDD ネタで喋ります(2011.04.03)
「-プログラミング ( 開発プロセス )」カテゴリの記事
- Visual Studio 11 beta は Windows 8 beta と同時リリース! なんと、 TFS に Express 登場!!(2012.02.24)
- [本] アジャイルサムライ ~ アジャイルマインドの伝道書(2011.11.12)
- [MEMO] ファンクションポイントの算出法、あれこれ(2011.10.11)
- アジャイル開発を失敗させる 7つの大罪(2010.10.24)
- [岡崎図書館サイバー冤罪事件] MDIS って CMMI 認定を受けてる優秀なソフトウェア開発会社なんでしょ?(2010.09.26)
この記事へのコメントは終了しました。
コメント
あざーすっ!
続編拝見させて頂きます!
続々編とかもういっそのことシリーズにしてください。
投稿: さかもと | 2008年7月 3日 (木) 09時46分
> 途中での導入は難しそうですが、次で・・・。
ぉお、 頑張ってください。 というか、 頑張りましょう。 f(^^;
せっかく画伯にコメントを戴いたので、 「開発プロセスは導入するものじゃない」 って記事を書いてみました。
https://bluewatersoft.cocolog-nifty.com/blog/2008/07/post_0236.html
投稿: biac | 2008年7月 2日 (水) 23時41分
さかもとです。
今、相当に悩んでいます。現プロジェクトはもう走りだしているので途中での導入は難しそうですが、次で・・・。
導入コストどうしよう・・・。
ということで今週、重点的に徘徊させて頂きますw
投稿: さかもと | 2008年7月 2日 (水) 08時07分