テスト駆動開発 (test-driven development; TDD) について マターリ 語りましょう
ツールについては別スレで
テストツールについて語るスレ 2
http://hibari.2ch.net/test/read.cgi/tech/1208013693/
探検
【TDD】テスト駆動開発【TestFirst】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/09/19(日) 21:26:12547デフォルトの名無しさん
2015/12/01(火) 13:00:01.79ID:j87epvlp >>543
どんな設計手法も、その手法を使わないよりも良い設計を目指すためにあると思うよ。
より良い設計というのはバグが無いという意味ではなくて、費用対効果の面で妥当な設計、と言い換えても良いけど。
新規の何らかのクラスを設計するときに、シーケンス図を書いて複数人でレビューしてから実装には入った方が費用対効果が高いのか、TDDで実装してから本体とテストコードをレビューした方が費用対効果が高いのか?
もし、TDDの方が高いとき、それは何故なのか?
っという観点の話にすれば、俺の主張は以下になる。
TDDはテストによってより早くフィードバックが得られるから費用対効果が高いが、そのフィードバックを解釈するのにも経験が必要で、テストが通りさえすれば良い、という考え方では効果は発揮できない。
また、レビューアにもフィードバックを解釈する能力が要求されるうえ、ペアプログラミングでない場合はテストがNGになった時点の情報が得られないため、設計者よりも少ない情報から設計を判断するための高い能力が必要になるかもしれない。
シーケンス図の方も書けば良い設計になるわけじゃないし、シーケンス図から問題点を読み解く能力が必要だが、おそらくTDDよりはレビューが易しい気がする。
だが、TDDのテストは実行可能ということが利点であり、レビューアが疑問があればテストを追加して実行することが出来る。これを利用すれば、費用対効果を更に高めることが出来るのではないか?
どんな設計手法も、その手法を使わないよりも良い設計を目指すためにあると思うよ。
より良い設計というのはバグが無いという意味ではなくて、費用対効果の面で妥当な設計、と言い換えても良いけど。
新規の何らかのクラスを設計するときに、シーケンス図を書いて複数人でレビューしてから実装には入った方が費用対効果が高いのか、TDDで実装してから本体とテストコードをレビューした方が費用対効果が高いのか?
もし、TDDの方が高いとき、それは何故なのか?
っという観点の話にすれば、俺の主張は以下になる。
TDDはテストによってより早くフィードバックが得られるから費用対効果が高いが、そのフィードバックを解釈するのにも経験が必要で、テストが通りさえすれば良い、という考え方では効果は発揮できない。
また、レビューアにもフィードバックを解釈する能力が要求されるうえ、ペアプログラミングでない場合はテストがNGになった時点の情報が得られないため、設計者よりも少ない情報から設計を判断するための高い能力が必要になるかもしれない。
シーケンス図の方も書けば良い設計になるわけじゃないし、シーケンス図から問題点を読み解く能力が必要だが、おそらくTDDよりはレビューが易しい気がする。
だが、TDDのテストは実行可能ということが利点であり、レビューアが疑問があればテストを追加して実行することが出来る。これを利用すれば、費用対効果を更に高めることが出来るのではないか?
548デフォルトの名無しさん
2015/12/01(火) 14:07:41.90ID:Fb8Lo38E >>547
本当にTDDを理解して実戦しているのか疑わしいレベル。
> そのフィードバックを解釈するのにも経験が必要
意味がわからない。
テストによるフィードバックは失敗あるいは成功しかなく、正しく実装できたはずなのに失敗するのは、
・テストが間違っている
・正しく実装できたはずというのが思い違い
のどちらか、あるいはその両方しかなく、解釈もクソもない。
自分が書いたテストが失敗して、その原因もわからないレベルなら、それはTDDをする資格がない。
というか、そんな奴にプロダクトコード書かせるな。
> ペアプログラミングでない場合はテストがNGになった時点の情報が得られないため、
> 設計者よりも少ない情報から設計を判断するための高い能力が必要になるかもしれない。
これも意味がわからない。
> どんな設計手法も、その手法を使わないよりも良い設計を目指すためにあると思うよ。
そもそも、TDDは設計手法というより開発手法と言うべきで、極言すれば実装手法でしかない。
というか「よい設計」の定義が俺と大幅にずれてる気がする。
俺が思う「よい設計」というのは、例えば
・SOLID原則が守られている(あるいはそれほど重大な違反は無い)
・カプセル化が守られている
・メンテナンス性が良い(リーダビリティが良い)
・パフォーマンスが良い
などなど。
そういう意味の「よい設計」ができる奴は、TDDをしなくとも良い設計はできる。
本当にTDDを理解して実戦しているのか疑わしいレベル。
> そのフィードバックを解釈するのにも経験が必要
意味がわからない。
テストによるフィードバックは失敗あるいは成功しかなく、正しく実装できたはずなのに失敗するのは、
・テストが間違っている
・正しく実装できたはずというのが思い違い
のどちらか、あるいはその両方しかなく、解釈もクソもない。
自分が書いたテストが失敗して、その原因もわからないレベルなら、それはTDDをする資格がない。
というか、そんな奴にプロダクトコード書かせるな。
> ペアプログラミングでない場合はテストがNGになった時点の情報が得られないため、
> 設計者よりも少ない情報から設計を判断するための高い能力が必要になるかもしれない。
これも意味がわからない。
> どんな設計手法も、その手法を使わないよりも良い設計を目指すためにあると思うよ。
そもそも、TDDは設計手法というより開発手法と言うべきで、極言すれば実装手法でしかない。
というか「よい設計」の定義が俺と大幅にずれてる気がする。
俺が思う「よい設計」というのは、例えば
・SOLID原則が守られている(あるいはそれほど重大な違反は無い)
・カプセル化が守られている
・メンテナンス性が良い(リーダビリティが良い)
・パフォーマンスが良い
などなど。
そういう意味の「よい設計」ができる奴は、TDDをしなくとも良い設計はできる。
549デフォルトの名無しさん
2015/12/01(火) 14:10:57.54ID:Fb8Lo38E あと、TDDにおける「素早いフィードバック」というのは、
・正しくテストが実装できたであろう実感(red -> green)
・思い通りのコードが実装できたであろう実感(green -> refactoring -> green)
だぞ。
設計が正しい、あるいは妥当であるというフィードバックではない。
・正しくテストが実装できたであろう実感(red -> green)
・思い通りのコードが実装できたであろう実感(green -> refactoring -> green)
だぞ。
設計が正しい、あるいは妥当であるというフィードバックではない。
550デフォルトの名無しさん
2015/12/04(金) 15:28:40.97ID:dm9hxmiU >>547
今時、シーケンス図を書いて複数人でレビューしてから実装に入るって、どんな分野のどれくらいの規模なの?
リファクタリングが一般化した現在、クラス図でさえ事前にかっちりしたもの書くと手戻りが発生していやがられるのに。
今時、シーケンス図を書いて複数人でレビューしてから実装に入るって、どんな分野のどれくらいの規模なの?
リファクタリングが一般化した現在、クラス図でさえ事前にかっちりしたもの書くと手戻りが発生していやがられるのに。
551デフォルトの名無しさん
2015/12/14(月) 22:58:51.50ID:dPco7zPj 手戻りが嫌ならプログラムを書かなければいい
552デフォルトの名無しさん
2015/12/16(水) 07:23:08.19ID:JxdBAlmf それは言える
メタプログラミングでプログラムは自動生成にしておけば
手戻り発生しても仕様書直すだけで済む
メタプログラミングでプログラムは自動生成にしておけば
手戻り発生しても仕様書直すだけで済む
553デフォルトの名無しさん
2016/02/14(日) 07:50:17.63ID:KRGWcZPF 自動生成するプログラムの修正が必要になるだろタコ。
554デフォルトの名無しさん
2016/04/01(金) 19:49:18.66ID:xvbiumjA test
555デフォルトの名無しさん
2016/04/18(月) 21:10:16.12ID:WJpLEkGK カバレッジって自動じゃないテスト(ようは手動の結合テスト)でも使えんの?
556デフォルトの名無しさん
2016/04/18(月) 21:36:07.56ID:QSS7pC1U ?
何を言ってるのかさっぱり理解できない
何を言ってるのかさっぱり理解できない
557デフォルトの名無しさん
2016/04/18(月) 22:20:56.27ID:i/DZEEkh >>555
使えるってどういう意味で?
使えるってどういう意味で?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相答弁「二度といわないぐらいいわないと国民は納得できない」 台湾有事質問した立民・岡田克也氏 [少考さん★]
- 石破前首相「日本に決してプラスにならない」 官邸関係者の“核保有”発言めぐり見解「原子力政策成り立たなくなる」 生放送で指摘 [少考さん★]
- タワマンに戻りたい…子どものため郊外の庭付き一軒家に引っ越した世帯年収1,600万円の40代パワーカップル「心底後悔しています」 ★5 [樽悶★]
- マイナ保険証「メリットなし」が最多 1.1万人調査で見えた“不安と様子見” ★3 [♪♪♪★]
- 【野球】村上宗隆のメジャー移籍の交渉期限が残り48時間に… いまだ合意発表なく駆け込み契約なるか [冬月記者★]
- 【日独】「残業しない」「バカンスを取る」ドイツ人に、日本人は2倍働いても敵わない★2 [七波羅探題★]
- 高市早苗さん、ものすごい勢いで海外に金をばら撒き始める [931948549]
- 【悲報】安倍晋三「暑すぎるだろ。」世界中で観測史上最アツの冬になる見込み😲 [518915984]
- 日本人農家、わずか5年で34万2千人減少😭・・・残りの農家は102万人😱・・・どうすんの?🥺 [441660812]
- 普通の日本人「ジョジョはジャンプではずっと中堅だった」👈これマジなの??? [339035499]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪
- Twitter「障害年金でNISA満額埋められますw 労働者の皆さん納税ご苦労w」メッチャ煽ってXで叩かれる。納税者激怒! [201193242]
