【TDD】テスト駆動開発【TestFirst】

1 :デフォルトの名無しさん:2010/09/19(日) 21:26:12 .net
テスト駆動開発 (test-driven development; TDD) について マターリ 語りましょう

ツールについては別スレで
テストツールについて語るスレ 2
http://hibari.2ch.net/test/read.cgi/tech/1208013693/

2 :デフォルトの名無しさん:2010/09/19(日) 21:46:07

>>1
よろしければTDD入門によいWABサイトや、
書籍などの紹介を頼みます。

3 :デフォルトの名無しさん:2010/09/19(日) 21:49:44

日本人にテストファーストはなじまないと思うよ。
作りながら考えるPGが多すぎる。かくいう俺もそうだけどw

フレームワークが出来た後なら余裕だけど、
フレームワークを作ってる最中は作業に水を差されてるみたいでなんか辛い。

4 :デフォルトの名無しさん:2010/09/19(日) 22:22:46

プロトタイプ作ってる間はテストファーストはなあ。
フレームワークありきでTDDは効果出るよね。

フレームワークもある程度固まったらテスト書かないとふあんだけど。

ドラフト状態部分のフレームワーク部分はテストを後に回してもいいキガス。

てか設計に掛けられる時間が少なかったり、
複数人で設計をレビューしながらまとめる文化がないよね。

5 :デフォルトの名無しさん:2010/09/19(日) 23:05:17

ここは天才チンパンジーのアイちゃん(ry

6 :デフォルトの名無しさん:2010/09/19(日) 23:48:40

>>3
作りながら考えるからこそ
テストファーストになるんじゃないのか?

7 :デフォルトの名無しさん:2010/09/20(月) 01:28:15

最近TDDじゃなくてアレだよね
名前なんていうのか忘れたけど
DDDだっけ?HDDだっけ?

8 :デフォルトの名無しさん:2010/09/20(月) 01:35:38

DDD: GNUのGUIデバッガ
HDD: ハードディスクドライブ

9 :デフォルトの名無しさん:2010/09/20(月) 02:18:41

RDDのことか

10 :デフォルトの名無しさん:2010/09/20(月) 08:17:43

テストコードって書くの楽しくないからどうしても後回しにしたくなるんだよな
どうすれば楽しくなるのかな

11 :デフォルトの名無しさん:2010/09/20(月) 10:22:31

>>6
関数書き始めたとき、その関数がどんな時にエラーを返すか
詳細に検討してないことは、ままあるな。
先に考えるのメンドクセ。

12 :デフォルトの名無しさん:2010/09/20(月) 14:18:37

ググって見つかった最初のページに

以下は参考サイトのまとめ

○基本

[link]テスト駆動開発とPDCAサイクル – 開発者がテスト駆動開発をすると、生産性が上がる理由
[link]@IT – 「テスト駆動開発」はプログラマのストレスを軽減するか?
[link]テスト駆動開発やユニットテストを定着させるには

○実践

実際の開発では、すべてのコードに対してテストコードを書くなんてのは不可能。
どのコードに対してテストコードを書くと効果的か(価値があるか)、その判断基準の参考になる。

[link]リファクタリングとテストの関係(PDF)

13 :デフォルトの名無しさん:2010/09/20(月) 21:56:28

オライリーのビューティフルシリーズってどうなの?

ttp://www.oreilly.co.jp/catalog/soon.html
ビューティフルテスティング 978-4-87311-474-3 ¥¥¥¥3,360 2010年10月

14 :デフォルトの名無しさん:2010/09/20(月) 23:44:18

>>1
スレタイにBDDもいれろ

15 :デフォルトの名無しさん:2010/09/20(月) 23:46:06

それは置いておいて、
webアプリ作る時ってプロトタイプを3日間とかもしくは2時間ぐらいで
モックとともにガゥーーーっと作るじゃん?

そういうのっていちいちBDDなんかで振る舞いや仕様を定義して・・・とかやってると
とてもじゃないが時間かかりすぎるんだけどどうしてるの?

16 :デフォルトの名無しさん:2010/09/20(月) 23:49:35

おまえ、まさかプロトタイプを本番に使ってないよな?

17 :デフォルトの名無しさん:2010/09/21(火) 01:10:31

え、、、、

ダメなの?

18 :デフォルトの名無しさん:2010/09/21(火) 01:33:37

おまwww

捨てるプロトタイプと、コア実装としてのプロトタイプが
あるとは思うけど、後者はちゃんと設計して作るもんだ。

説明用に2時間で作ったもんは捨てれ。

19 :デフォルトの名無しさん:2010/09/21(火) 06:55:26

趣味なのか仕事なのかでも違うと思う

が、趣味でも大型の変更は一回作って傾向見て捨てて
その経験だけ頭に入れて別途作り直したほうが結局は早いな
1回目のコードを大事にしようとすると歪が溜まるのは同じ

22 :デフォルトの名無しさん:2010/10/12(火) 07:07:20

>>21
テスト駆動開発やテストファーストの「テスト」という単語が勘違いされてるからな
そのために、振る舞い駆動開発などというものもでてきているんじゃないのか?
ようするに

 「あれは(お前らが考えてる)テストじゃないんだ。振る舞いを定義してるんだ」

なんて

21 :デフォルトの名無しさん:2010/10/11(月) 20:33:31

なんかテスト駆動開発を勘違いしている奴多くないか。
全関数をテストするわけじゃなく、ある程度の単位でまとめて、そこで外部とのI/F決める。
その単位でのテストが目的で、普通は仮にでもそこを決めてから、コーディング始めるだろ。
じゃなかったら複数人での開発なんかできないぞ。

20 :デフォルトの名無しさん:2010/09/21(火) 09:53:02

プロトタイプを実践で使いたいなら導入時にテストをかいておきたいなあ。

23 :デフォルトの名無しさん:2010/12/22(水) 04:02:54

設計や実装の不具合がないことを示すテストじゃなくて
とりあえず実装完了を示すテストだといってみたらどうだろう

24 :デフォルトの名無しさん:2010/12/22(水) 07:01:25

プリミティブ、配列、ツリーだけでインプットとアウトプットを
構成することを規約化したらエクセルドキュメントから
テストコードを自動生成できないかな

モックとテストファーストが満たせないか

25 :デフォルトの名無しさん:2010/12/22(水) 20:20:05

テストコードからExcelファイルを自動生成すればよくね、Apache POI辺りを使って

26 :デフォルトの名無しさん:2010/12/23(木) 10:05:36

テストコードからExcel吐いたりしている人はいるらしい

Cucumberみたいな自然言語使う流れもあるけど、あれは誰に見せるものなんだよw

27 :デフォルトの名無しさん:2010/12/23(木) 14:23:43

1.テストケース(ドキュメント)
2.テストコード
3.実装

でしょ?

テストコード書いてテストケース生成するのはまずいのでは?

28 :デフォルトの名無しさん:2010/12/23(木) 20:43:31

テストコードがドキュメントみたいな開発スタイルもある
1週間で作るとか1ヶ月とかのプロジェクトだとドキュメントなんて作ってられん

29 :デフォルトの名無しさん:2010/12/24(金) 01:55:26

それは俗にいう誤ったTDD、
カウボーイ・コーディングのアジャイルでしょ

アジャイルに関する実際の需要はそっちだったりする?w

30 :デフォルトの名無しさん:2010/12/24(金) 06:57:25

安易に「誤った」なんて言っちゃうマヌケw

31 :デフォルトの名無しさん:2010/12/25(土) 14:32:58

テストコードからHTML生成やってみようかと思ったが
テストコード側が最悪に書きにくくなりそうだ
振る舞いのフローチャート化も本当に単純なことしかできそうにない

ttp://www.filebank.co.jp/filelink/133adb79503b26f344fad4fea1d0cf38

32 :デフォルトの名無しさん:2010/12/25(土) 14:52:11

>>31
Javaだったらすでにそういうツールありそうだな

33 :デフォルトの名無しさん:2010/12/25(土) 16:20:19

日本語のソースフォージにはなさそうだったから
立ち上げてみようかな。フローチャート図吐き出す案が思いついたら

34 :デフォルトの名無しさん:2010/12/25(土) 17:43:00

>31
JDaveにHTML reportってのは有る。

35 :31:2010/12/27(月) 07:16:40

垂直に上から下への一本線のフローチャートしかおもいつかないや
シーケンス図っぽくしたら良いのだろうか

36 :デフォルトの名無しさん:2010/12/27(月) 10:19:51

ユニットテストなら生成→値をセット・実行→値をゲット→検証
ぐらいの短いサイクルだけで十分

37 :デフォルトの名無しさん:2010/12/27(月) 11:42:33

RSpecの本まだー?
早う日本語で専門書だせー-

38 :デフォルトの名無しさん:2011/01/17(月) 05:52:00

粒度の高い結合テストしてから粒度の低い単体テストしないと無駄が多いって
聞いたことがあるけど

粒度の低いクラスから作っていく印象があるTDDはどうなのよ

39 :デフォルトの名無しさん:2011/01/22(土) 20:49:54

ネタがないね

43 :デフォルトの名無しさん:2011/02/07(月) 11:01:02

別に無理してやらなくてもいいのでは?
隣の芝生が青いだけでしょ

48 :デフォルトの名無しさん:2011/02/08(火) 07:48:30

よくあるAnimal->Dog,Catなクラスのbark関数ってどうやってテストするの?
javaであればSystem.out.print(“Mew”);, C++なら cout<<“Mew”; ってのがちゃんと出てるかテストするような道具もTDDツールにはあるのかな?

50 :デフォルトの名無しさん:2011/02/09(水) 00:44:31

>>48
テストしにくい、つまり設計がよくないということがテストできた

53 :デフォルトの名無しさん:2011/02/09(水) 19:19:09

自分ならファイルを情報を取得する部分と
その内容を処理する部分に分けて設計し個別にテスト。

61 :デフォルトの名無しさん:2011/02/17(木) 08:25:07

言語によるかもしれん
Rubyだと、なんかよくわからん細かさのメソッドが(ユーザーから隠されて)存在するほうが喜ばれる気がする
オープンクラス利用して手元で動作修正することがしばしば行われるので、クラスやメソッドがどでんと大きいと面倒

68 :デフォルトの名無しさん:2011/02/19(土) 13:28:24

それはちょっと違くねえか
TDD的に

91 :デフォルトの名無しさん:2011/07/05(火) 17:09:05.74

だいたい名前が売れてる人は、実際には他人のコードなのに、そいつが書いたかのような事になっている。

141 :デフォルトの名無しさん:2011/08/07(日) 17:22:20.47

滝への回帰としか思えん

158 :デフォルトの名無しさん:2011/09/15(木) 13:38:38.82

でも気持ちはわからなくはないかな。

テスト対象を書いた自分が信用できないからテストを書くわけだけど、
そのテストを自分で書いたらやっぱり信用できるテストなのかとうたがいたくなるよね。

まあ実際はそんなことやてたらきりがないわけだけど。

せめてテスト内容のレビューはしたいよね。
少人数プロジェクトはテストすらかかねえからなあ。

268 :デフォルトの名無しさん:2013/07/28(日) NY:AN:NY.AN

>>266
やっぱり出力を先に手計算しといたほうがいいのかな?
add(1,1) == 2 になることを調べるテストだって、右辺の2は前もって人間が計算してるわけだし。

ただ今回の場合は簡単な解が無くて、暗号化計算してわけのわからん値になったもの同士を比較するテストをして通っても、そのメソッドが正しいという確信が得られるような気がしないんだよなあ。
そんなテストよりは、暗号文の特性、複合すると元に戻ることとかを調べたほうが直感的な気がしたんだが…なんかもやもやする。

301 :デフォルトの名無しさん:2014/01/31(金) 10:18:11.76

ぐぐれ

557件をまとめました。
最新情報はこちら



スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク