テスト駆動開発 (test-driven development; TDD) について マターリ 語りましょう
ツールについては別スレで
テストツールについて語るスレ 2
http://hibari.2ch.net/test/read.cgi/tech/1208013693/
探検
【TDD】テスト駆動開発【TestFirst】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/09/19(日) 21:26:12294デフォルトの名無しさん
2014/01/28(火) 13:48:03.51 >>293
ざっくり言えば、TDD = Design First + Test First + Refactoring
ざっくり言えば、TDD = Design First + Test First + Refactoring
295デフォルトの名無しさん
2014/01/28(火) 15:13:31.12 >「駆動」を忘れてるのか知らないのか無視してる奴が多い
スレタイのせいかもな
スレタイのせいかもな
296デフォルトの名無しさん
2014/01/28(火) 18:22:31.47 BDDと形式手法の違いって?
297デフォルトの名無しさん
2014/01/28(火) 18:34:16.93 >>296
形式手法って何?
形式手法って何?
298デフォルトの名無しさん
2014/01/28(火) 21:50:39.87 テストを書くときの気持ちのこと
299デフォルトの名無しさん
2014/01/29(水) 10:13:17.67 ぐぐればすぐ出てくるものを即座に質問する
これを脊髄駆動レスと呼びます
これを脊髄駆動レスと呼びます
300デフォルトの名無しさん
2014/01/29(水) 12:52:40.18301デフォルトの名無しさん
2014/01/31(金) 10:18:11.76 ぐぐれ
302デフォルトの名無しさん
2014/02/02(日) 04:03:14.23 こんなスレあったのか
しかもだいぶ前からあるとは
俺はTDDは必要だと思ってる
元々ゴリゴリコーディングして、デバッガー使ったりで人力でテストしてって感じだったけど、
思想を知ってから、あぁこんな洗練されたものがあったのかと思った
昔はテストなんて面倒くさいと思ってたけど、それでも思想を知ってからは無理して身体に覚えさせた
慣れだよね
DBやマルチプロセスとかの問題は言われてるけど、使い分けじゃないの?
有用なときは使い 、効率悪いときは別のやり方
完璧なものなんてないだろうし
なぜ流行らなかったとか別スレあるという事は、皆あんまテストしないのか?
しても後から曖昧にとか?
しかもだいぶ前からあるとは
俺はTDDは必要だと思ってる
元々ゴリゴリコーディングして、デバッガー使ったりで人力でテストしてって感じだったけど、
思想を知ってから、あぁこんな洗練されたものがあったのかと思った
昔はテストなんて面倒くさいと思ってたけど、それでも思想を知ってからは無理して身体に覚えさせた
慣れだよね
DBやマルチプロセスとかの問題は言われてるけど、使い分けじゃないの?
有用なときは使い 、効率悪いときは別のやり方
完璧なものなんてないだろうし
なぜ流行らなかったとか別スレあるという事は、皆あんまテストしないのか?
しても後から曖昧にとか?
303デフォルトの名無しさん
2014/02/02(日) 07:00:16.31304デフォルトの名無しさん
2014/02/02(日) 08:56:36.07 > 作ったテストもどきはテストとしては使わない。
> 使い捨てのコード。
は?
> 使い捨てのコード。
は?
305デフォルトの名無しさん
2014/02/02(日) 13:36:26.27306デフォルトの名無しさん
2014/02/02(日) 17:35:46.13307デフォルトの名無しさん
2014/02/02(日) 18:00:48.70 ああ、こりゃ「じゃあTDDって何だよ」って問うてもまともに答えられない展開ですわ
308デフォルトの名無しさん
2014/02/02(日) 18:54:00.78 【TDD】テスト駆動開発【TestFirst】
309デフォルトの名無しさん
2014/02/02(日) 19:03:43.35 TDDの良い所は、コーディングがキチっとなることだと思う
テストがどうとかじゃなく、ブレがないというか
DBがどうとか言うけど、スタブ、モックオブジェクト、なんやらあるだろ
テストがどうとかじゃなく、ブレがないというか
DBがどうとか言うけど、スタブ、モックオブジェクト、なんやらあるだろ
310デフォルトの名無しさん
2014/02/02(日) 20:02:31.60 俺こそがTDDの神祖
おまいらは邪教徒じゃ
おまいらは邪教徒じゃ
311デフォルトの名無しさん
2014/02/02(日) 20:48:15.81 BDDって使ったことないけど、どう違うの?
TestMethod()とかがUnittestだけど、
BDDの場合はshouldBeEmpty()とかになるんだろ?
TestMethod()とかがUnittestだけど、
BDDの場合はshouldBeEmpty()とかになるんだろ?
312デフォルトの名無しさん
2014/02/03(月) 14:30:29.47 >>307
> 「じゃあTDDって何だよ」って問うてもまともに答えられない
その質問は、ググればすぐにわかるから誰も答えないんじゃないの?
ちなみに、Googleの第一位はWikipediaですごくまとまってる。
http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA
> 「じゃあTDDって何だよ」って問うてもまともに答えられない
その質問は、ググればすぐにわかるから誰も答えないんじゃないの?
ちなみに、Googleの第一位はWikipediaですごくまとまってる。
http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA
313デフォルトの名無しさん
2014/02/03(月) 14:33:11.18314デフォルトの名無しさん
2014/02/03(月) 17:06:00.43 俺は、TDDで作ったテストメソッドの大部分は、「品質のためのテスト」でも使えるよう修正してくよ。
315デフォルトの名無しさん
2014/02/03(月) 18:38:14.74 >>313
そういうことだよな。
393 名前:デフォルトの名無しさん[sage] 投稿日:2014/02/02(日) 08:52:46.17
TDDでコーディングより先に書くテストっていうのは
ちゃんとしたテストじゃないんだ。
本番用のテストとして使えるものもあるが、使い捨てのテストも多い。
だから本番用のテストは別にちゃんと書かないといけない。
つまりこういうことなんだ。
「仮テスト→コーディング→本テスト」 VS 「コーディング→本テスト」
そういうことだよな。
393 名前:デフォルトの名無しさん[sage] 投稿日:2014/02/02(日) 08:52:46.17
TDDでコーディングより先に書くテストっていうのは
ちゃんとしたテストじゃないんだ。
本番用のテストとして使えるものもあるが、使い捨てのテストも多い。
だから本番用のテストは別にちゃんと書かないといけない。
つまりこういうことなんだ。
「仮テスト→コーディング→本テスト」 VS 「コーディング→本テスト」
316デフォルトの名無しさん
2014/02/03(月) 19:40:04.51317デフォルトの名無しさん
2014/02/05(水) 08:51:07.35 テストをTDDで開発してるのか
318デフォルトの名無しさん
2014/02/05(水) 18:24:02.84 t_wadaさんによるスライド
「TDD のこころ @ OSH2014」
http://www.slideshare.net/t_wada/osh2014-sprit-of-tdd
『テスト駆動開発入門』も
『リファクタリング』も
『達人プログラマー』も
絶版になってたなんて……。
「TDD のこころ @ OSH2014」
http://www.slideshare.net/t_wada/osh2014-sprit-of-tdd
『テスト駆動開発入門』も
『リファクタリング』も
『達人プログラマー』も
絶版になってたなんて……。
319デフォルトの名無しさん
2014/02/07(金) 16:30:20.46 >>318
「達人プログラマー」ってなんか東亜プランの中の人かとオモタ
「達人プログラマー」ってなんか東亜プランの中の人かとオモタ
320デフォルトの名無しさん
2014/02/07(金) 21:50:41.56 TDDの最大のメリットはテストしやすいソースになる事
321デフォルトの名無しさん
2014/02/08(土) 13:05:21.69 昔社内の文書でテスト騒動って書いている奴がいて笑った
そりゃ、テストで騒動が起きるのは困るよね
そりゃ、テストで騒動が起きるのは困るよね
322デフォルトの名無しさん
2014/02/08(土) 13:09:53.56 テストで騒動とかプロジェクト毎に起きてるぜ
323デフォルトの名無しさん
2014/02/08(土) 17:19:52.71324デフォルトの名無しさん
2014/02/09(日) 23:04:23.44 まぁ、バグが発生するのはテスト中だからな
325デフォルトの名無しさん
2014/02/12(水) 03:55:25.26 完成してなくてもいいから、コンパイルの通らないコードをリポジトリに登録するな、
でないと全体のコンパイルに支障が出る、というのと似たような感じで、
テストを通していないモジュールを登録するな、暫定的でもそれなりに動作するようなモジュールができていないと、
他のモジュールの開発に支障が出るから、ってことかね。
でないと全体のコンパイルに支障が出る、というのと似たような感じで、
テストを通していないモジュールを登録するな、暫定的でもそれなりに動作するようなモジュールができていないと、
他のモジュールの開発に支障が出るから、ってことかね。
326デフォルトの名無しさん
2014/02/12(水) 11:29:02.29327デフォルトの名無しさん
2014/02/12(水) 13:59:27.22 テストを“いちばん重要な財産”と考えると見えるもの
http://gihyo.jp/dev/serial/01/tdd_supremacy
タイトルと概要しか見てないけど、短かい文章でテストの重要性を言い表わしてるなと思ったんでコピっとく
http://gihyo.jp/dev/serial/01/tdd_supremacy
タイトルと概要しか見てないけど、短かい文章でテストの重要性を言い表わしてるなと思ったんでコピっとく
328デフォルトの名無しさん
2014/02/12(水) 14:39:26.47329デフォルトの名無しさん
2014/02/12(水) 15:34:30.78 >>328
いい加減、ちゃんと問題点を指摘できるようになろうぜw
いい加減、ちゃんと問題点を指摘できるようになろうぜw
330デフォルトの名無しさん
2014/02/12(水) 15:38:44.80 >>329
・コードのインデントがキモイ => 最近のコーディング標準知らないんじゃないの
・レイアウトがキモイ => 最近のコーディング標準知らないんじゃないの?静的解析したことないんじゃないの?
・newしたオブジェクトを=&で代入したり => お前いつの時代のPHPerだよ
・コードのインデントがキモイ => 最近のコーディング標準知らないんじゃないの
・レイアウトがキモイ => 最近のコーディング標準知らないんじゃないの?静的解析したことないんじゃないの?
・newしたオブジェクトを=&で代入したり => お前いつの時代のPHPerだよ
331デフォルトの名無しさん
2014/02/12(水) 15:41:04.76332デフォルトの名無しさん
2014/02/12(水) 16:00:01.69 >>331
PHPのことあまり知らないんだろうけど、最近はPSR-1/PSR-2/Zend/PEARのコーディング規約に
沿って書くのが普通。
まぁそれを知らないド素人でも、人のコードを見慣れてればあんな酷いコードは書かないだろう。
それに、今時varとかfunction &hoge()とか$fuga =& new Fuga()とかありえないから。
第2回もちょろっと見たけど、あり得ない酷いコードだわ。
PHPのことあまり知らないんだろうけど、最近はPSR-1/PSR-2/Zend/PEARのコーディング規約に
沿って書くのが普通。
まぁそれを知らないド素人でも、人のコードを見慣れてればあんな酷いコードは書かないだろう。
それに、今時varとかfunction &hoge()とか$fuga =& new Fuga()とかありえないから。
第2回もちょろっと見たけど、あり得ない酷いコードだわ。
333デフォルトの名無しさん
2014/02/12(水) 16:04:05.29 >>332
本文読んでないからわかってないんだろう?
> 前回,「これまでの記事で取り上げたコードを,テスト駆動ベースに移行していく」と書きました
これは「これまでの記事で取り上げたコード」だ
昔のコードだって書いてあるだろ。
本文読んでないからわかってないんだろう?
> 前回,「これまでの記事で取り上げたコードを,テスト駆動ベースに移行していく」と書きました
これは「これまでの記事で取り上げたコード」だ
昔のコードだって書いてあるだろ。
334デフォルトの名無しさん
2014/02/12(水) 16:21:46.58335デフォルトの名無しさん
2014/02/12(水) 16:32:05.04 PHP のことあまり知らないから他の言語の利用者にもわかるように
説明してくれると嬉しいところなんだけどな
コードレイアウトは技評の Web 記事編集が手を入れないのが悪い
説明してくれると嬉しいところなんだけどな
コードレイアウトは技評の Web 記事編集が手を入れないのが悪い
336デフォルトの名無しさん
2014/02/12(水) 16:47:05.39337デフォルトの名無しさん
2014/02/12(水) 20:31:31.24 > プログラミングにおいていちばん重要な財産はテストであり,
> 万一コードをすべて失ってしまったとしても,
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。
> −この考えを立証すべく,テストとコードの関係を考えます。
この時点で、オレオレテスト駆動
別の名前付ければいいのに
> 万一コードをすべて失ってしまったとしても,
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。
> −この考えを立証すべく,テストとコードの関係を考えます。
この時点で、オレオレテスト駆動
別の名前付ければいいのに
338デフォルトの名無しさん
2014/02/13(木) 00:48:59.46 >>337
> プログラミングにおいていちばん重要な財産はテストであり,
これは嘘w
あたりまえだけどテストよりも動くコードの方が重要。
テストコードはあっても今すぐには価値を生み出さない。
今すぐアプリとしては動かないのだから。価値を生み出すのはアプリのコードの方。
テストコードはなくても動くが、アプリのコードはなかったら動かない。
アプリコードからテストコードを生み出すことはできるが、
テストコードがあってもアプリコードは生み出せない。
仮にテストコードからアプリコードを作り出すことが可能だとして
それにかかる時間はどれくらいかかるか。その間テストコードに価値はない。
そしてテストコードからアプリコードを書くのは不可能
なぜなら全てのコードをテストしているわけじゃないから
その主な例がユーザーインターフェースデザイン、
分かりやすく言えばHTMLで作られた入力画面等。
テストコードがあっても使いやすい(同じ品質の)入力画面は復活不可能。
また現実的な問題としてテストコードが全て書かれているという証明はできない。
アプリコードがあるなら当然そこにすべての動作が記述されているが
テストコードは全てあるとは限らない。
あたりまえだけどアプリのコードのほうが重要。
> プログラミングにおいていちばん重要な財産はテストであり,
これは嘘w
あたりまえだけどテストよりも動くコードの方が重要。
テストコードはあっても今すぐには価値を生み出さない。
今すぐアプリとしては動かないのだから。価値を生み出すのはアプリのコードの方。
テストコードはなくても動くが、アプリのコードはなかったら動かない。
アプリコードからテストコードを生み出すことはできるが、
テストコードがあってもアプリコードは生み出せない。
仮にテストコードからアプリコードを作り出すことが可能だとして
それにかかる時間はどれくらいかかるか。その間テストコードに価値はない。
そしてテストコードからアプリコードを書くのは不可能
なぜなら全てのコードをテストしているわけじゃないから
その主な例がユーザーインターフェースデザイン、
分かりやすく言えばHTMLで作られた入力画面等。
テストコードがあっても使いやすい(同じ品質の)入力画面は復活不可能。
また現実的な問題としてテストコードが全て書かれているという証明はできない。
アプリコードがあるなら当然そこにすべての動作が記述されているが
テストコードは全てあるとは限らない。
あたりまえだけどアプリのコードのほうが重要。
339デフォルトの名無しさん
2014/02/13(木) 01:16:10.11 >>338
アプリコードの方が重要って考えは視点が違うだけだからなんとも
そもそもTDDスレとしての突っ込みどころはオレオレテスト駆動であって
そんなアプリコードとテストコードどっちが重要かってところに
そこまでの長文を書いてまで反応する意味が分からない
アプリコードの方が重要って考えは視点が違うだけだからなんとも
そもそもTDDスレとしての突っ込みどころはオレオレテスト駆動であって
そんなアプリコードとテストコードどっちが重要かってところに
そこまでの長文を書いてまで反応する意味が分からない
340デフォルトの名無しさん
2014/02/13(木) 02:24:17.12341デフォルトの名無しさん
2014/02/13(木) 09:57:16.39 プロレスで相手の手の内を出させないままキックだけで勝って俺TUEEEみたいな
342デフォルトの名無しさん
2014/02/13(木) 11:04:59.49 おまえら勘違いすんな
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。
同じ*品質*のコードといってるんだ
テストが保証するのはコードの品質であってアプリの価値ではない
ましてや同じ入力画面を復活させる事では全くない
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。
同じ*品質*のコードといってるんだ
テストが保証するのはコードの品質であってアプリの価値ではない
ましてや同じ入力画面を復活させる事では全くない
343デフォルトの名無しさん
2014/02/13(木) 11:22:44.29 ゴミページを擁護してる奴は何が目的なんだ
344デフォルトの名無しさん
2014/02/13(木) 13:59:44.58 TDDどうこうよりも、テスト対象のクラスを継承したテストクラスを作って、テスト結果の確認をテスト対象クラスのメンバに設定された値でアサートするというやり方がセンスないわ。
345デフォルトの名無しさん
2014/02/13(木) 20:48:44.35 アプリのソースだけ残った場合と
テストコードだけが残った場合
どっちが安価に元の状況に戻せるの?
テストコードだけが残った場合
どっちが安価に元の状況に戻せるの?
346デフォルトの名無しさん
2014/02/13(木) 20:55:48.07347デフォルトの名無しさん
2014/02/13(木) 22:49:05.90 TDDはアプリのソースとかテストコードがどっちが残ると〜とかそういうことを
語るもんではないんだが
語るもんではないんだが
348デフォルトの名無しさん
2014/02/14(金) 01:07:04.09 おおよそ、テストをどうやって書くかを考えるのが設計になり、
テストをどのように満たすかを考えるのが実装になる。
テストとコードを共に成長させていって開発を進めるのだから、
片方だけ残して、これがテスト駆動開発だ!とか言われると
ゲフンゲフンとなる。
品質との関連性は微妙
テストをどのように満たすかを考えるのが実装になる。
テストとコードを共に成長させていって開発を進めるのだから、
片方だけ残して、これがテスト駆動開発だ!とか言われると
ゲフンゲフンとなる。
品質との関連性は微妙
349デフォルトの名無しさん
2014/02/14(金) 02:07:53.24 >テストとコードを共に成長させていって開発を進めるのだから、
成長が順調に進むのであればテストファーストもコードファーストも大差なく
テストとコードのどちらを先に書くかの順番の違いしかないが、
成長が逆戻りした(コードに修正を加える必要が出てきた)ときに
テストを優先して(テストの中に設計を含めて)コードを大胆に修正できるようにするか、
コードを優先して(コードの中の設計を維持するように)コードの修正量をなるべく少なくするか、
という所に違いがある、という感じか。
成長が順調に進むのであればテストファーストもコードファーストも大差なく
テストとコードのどちらを先に書くかの順番の違いしかないが、
成長が逆戻りした(コードに修正を加える必要が出てきた)ときに
テストを優先して(テストの中に設計を含めて)コードを大胆に修正できるようにするか、
コードを優先して(コードの中の設計を維持するように)コードの修正量をなるべく少なくするか、
という所に違いがある、という感じか。
350デフォルトの名無しさん
2014/02/14(金) 02:10:51.12 >品質との関連性は微妙
実装フェーズが完了した段階ではコードもテストも固まっているから
テストファーストでもコードファーストでも同等の成果物が作成されて
同等の品質が得られているはず、ということなんだろうか、
それとも、実装フェーズではそれなりに動くモノができていればいい、
品質はその後の試験フェーズで高めていく、という考え方なんだろうか。
実装フェーズが完了した段階ではコードもテストも固まっているから
テストファーストでもコードファーストでも同等の成果物が作成されて
同等の品質が得られているはず、ということなんだろうか、
それとも、実装フェーズではそれなりに動くモノができていればいい、
品質はその後の試験フェーズで高めていく、という考え方なんだろうか。
351デフォルトの名無しさん
2014/02/14(金) 10:08:16.40 >>348
> テストとコードを共に成長させていって開発を進めるのだから、
> 片方だけ残して、これがテスト駆動開発だ!とか言われると
> ゲフンゲフンとなる。
誰も本当に片方捨てろなんて言ってない
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。−この考えを立証すべく
って考え方を言ってるんだよ
お前は抽象的な話しが出来ない奴か?
> テストとコードを共に成長させていって開発を進めるのだから、
> 片方だけ残して、これがテスト駆動開発だ!とか言われると
> ゲフンゲフンとなる。
誰も本当に片方捨てろなんて言ってない
> テストが無事なら元と同じ品質のコードをもう一度書くことができる。−この考えを立証すべく
って考え方を言ってるんだよ
お前は抽象的な話しが出来ない奴か?
352デフォルトの名無しさん
2014/02/14(金) 10:51:38.30 >>351
> > テストが無事なら元と同じ品質のコードをもう一度書くことができる。−この考えを立証すべく
>
> って考え方を言ってるんだよ
> お前は抽象的な話しが出来ない奴か?
これのどこが抽象的な話なんだ?
「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
で、論破。
> > テストが無事なら元と同じ品質のコードをもう一度書くことができる。−この考えを立証すべく
>
> って考え方を言ってるんだよ
> お前は抽象的な話しが出来ない奴か?
これのどこが抽象的な話なんだ?
「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
で、論破。
353デフォルトの名無しさん
2014/02/14(金) 11:11:56.77 後付けのC1カバレッジ100%で全ての副作用に対するassertionが記述されている
テスト一式があれば、元コードと同等のものを翔かもしれないが、このこととTDDは
一切関係無いね。
テスト一式があれば、元コードと同等のものを翔かもしれないが、このこととTDDは
一切関係無いね。
354デフォルトの名無しさん
2014/02/14(金) 11:31:08.45 >>352
> 「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
> で、論破。
論破って…単なる仮説を立てただけだろ。立証してから言ってくれ
そういう分かりやすい最終的な結論だけで話しを進めるたがる事を
抽象的な話しが出来ないっていうんだよ
> 「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
> で、論破。
論破って…単なる仮説を立てただけだろ。立証してから言ってくれ
そういう分かりやすい最終的な結論だけで話しを進めるたがる事を
抽象的な話しが出来ないっていうんだよ
355デフォルトの名無しさん
2014/02/14(金) 11:56:51.72 >>354
> 論破って…単なる仮説を立てただけだろ。立証してから言ってくれ
は?どうみても
「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
は明らかだろ。
> 抽象的な話しが出来ないっていうんだよ
抽象的を辞書で引け、アホ。
> 論破って…単なる仮説を立てただけだろ。立証してから言ってくれ
は?どうみても
「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
は明らかだろ。
> 抽象的な話しが出来ないっていうんだよ
抽象的を辞書で引け、アホ。
356デフォルトの名無しさん
2014/02/14(金) 12:45:53.91 >>351
なんであの糞記事を擁護するの?
なんであの糞記事を擁護するの?
357デフォルトの名無しさん
2014/02/14(金) 12:52:21.25 >>355
> 「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
> は明らかだろ。
明らか言われても論破された気にはなれないよ
ちなみに「できないときがある」の反対は「常にできる」だから該当記事の「〜ことができる」を
反論している事にはならないよ
むしろ同じ事を言っている
> 抽象的を辞書で引け、アホ。
辞書で引いてみたよ
1 いくつかの事物に共通なものを抜き出して、それを一般化して考えるさま。「本質を―にとらえる」
で、だから何?
> 「テストが無事でも元と同じ品質のコードをもう一度書くことができないときがある」
> は明らかだろ。
明らか言われても論破された気にはなれないよ
ちなみに「できないときがある」の反対は「常にできる」だから該当記事の「〜ことができる」を
反論している事にはならないよ
むしろ同じ事を言っている
> 抽象的を辞書で引け、アホ。
辞書で引いてみたよ
1 いくつかの事物に共通なものを抜き出して、それを一般化して考えるさま。「本質を―にとらえる」
で、だから何?
358デフォルトの名無しさん
2014/02/14(金) 14:24:13.22359デフォルトの名無しさん
2014/02/14(金) 14:31:22.73360デフォルトの名無しさん
2014/02/14(金) 17:22:33.79361デフォルトの名無しさん
2014/02/14(金) 17:32:25.39 >>360
> TDDにおけるテストの重要性は、「同じ品質」ではなく「同じ動作」を求めるため、
> しかもカバレッジ100%の完成したコードではなく実装途中のコードに対して、
> でよいよね?
そんなかんじ。
カバレッジに関しては、C0カバレッジですら100%に満たないよね。
TDDのテストは、その人が十分だと思う分しか書かれない。
そして、そのテストコードをいわゆる「単体テスト」では使わないという人もいる(extremeな人は全捨てするらしい。マジか)。
俺は使うけど。
> TDDにおけるテストの重要性は、「同じ品質」ではなく「同じ動作」を求めるため、
> しかもカバレッジ100%の完成したコードではなく実装途中のコードに対して、
> でよいよね?
そんなかんじ。
カバレッジに関しては、C0カバレッジですら100%に満たないよね。
TDDのテストは、その人が十分だと思う分しか書かれない。
そして、そのテストコードをいわゆる「単体テスト」では使わないという人もいる(extremeな人は全捨てするらしい。マジか)。
俺は使うけど。
362デフォルトの名無しさん
2014/02/14(金) 22:19:43.22 >>353
そうだな。誰もそこまでのテストは求めていないし、そんなことする気にもなれない。
そうだな。誰もそこまでのテストは求めていないし、そんなことする気にもなれない。
363デフォルトの名無しさん
2014/02/15(土) 00:21:14.85 テストとソースって
たまごとにわとりの関係なの?
たまごとにわとりの関係なの?
364デフォルトの名無しさん
2014/02/15(土) 07:15:22.29 たまごが成長すれば、ニワトリになり
そのニワトリが複数個のたまごを生む。
そのたまごがそれぞれ成長し
それぞれがたまごを複数個生む。
テストとソースはこういう関係です。
そのニワトリが複数個のたまごを生む。
そのたまごがそれぞれ成長し
それぞれがたまごを複数個生む。
テストとソースはこういう関係です。
365デフォルトの名無しさん
2014/02/15(土) 09:04:51.54 カバレッジは、ISOとかで必要なところもあるんだろう
あれも結局は認証されたxUnitでテストするらしいが
あれも結局は認証されたxUnitでテストするらしいが
366デフォルトの名無しさん
2014/03/02(日) 15:11:51.03 カバレッジのスレないのでここで。
テストするまでもないコードというのがある。
たとえば変数の初期化関数とか。
こういうのをテストしたってしょうがない。
だけど実行しないとカバレッジは上がらない。
カバレッジ100%を目指しているわけじゃないが
それはカバレッジを上げるために時間がかかりすぎるなら
コストとメリットを天秤にかけてやらなくていいという話なはず。
だから関数呼び出しだけで簡単にカバレッジがあがるならやってもいいではないか?
テストを行わないが関数実行だけはする。これに意味が無いかといえば
そうではなく。それはコードが確実に動くということを証明できる。
スクリプト言語系はスペルミスなど実行しなければエラーを検出できないことがある。
つまりだ。テストを行わないで関数を実行するだけ。というのは気持ち悪いがありなのだろうか?
テストはしていないが、あえて言うなら関数が動くことをテストしているということ。
テストするまでもないコードというのがある。
たとえば変数の初期化関数とか。
こういうのをテストしたってしょうがない。
だけど実行しないとカバレッジは上がらない。
カバレッジ100%を目指しているわけじゃないが
それはカバレッジを上げるために時間がかかりすぎるなら
コストとメリットを天秤にかけてやらなくていいという話なはず。
だから関数呼び出しだけで簡単にカバレッジがあがるならやってもいいではないか?
テストを行わないが関数実行だけはする。これに意味が無いかといえば
そうではなく。それはコードが確実に動くということを証明できる。
スクリプト言語系はスペルミスなど実行しなければエラーを検出できないことがある。
つまりだ。テストを行わないで関数を実行するだけ。というのは気持ち悪いがありなのだろうか?
テストはしていないが、あえて言うなら関数が動くことをテストしているということ。
367デフォルトの名無しさん
2014/03/02(日) 15:58:52.16 それは、なしです
368デフォルトの名無しさん
2014/03/02(日) 16:30:47.67 実は関数読んでなかったり別の関数呼んでたらどうするわけ?
369デフォルトの名無しさん
2014/03/02(日) 17:01:14.12 >367
理由は何ですか?
処理を実行してコンパイルエラーを
実際に見つけられているのです。
理由は何ですか?
処理を実行してコンパイルエラーを
実際に見つけられているのです。
370デフォルトの名無しさん
2014/03/02(日) 17:46:28.42 >>366はガバレッジとテストの関係について何か壮大に勘違いしてると思う
371デフォルトの名無しさん
2014/03/02(日) 18:15:04.54 なにがしかでも作業効率が改善できてるならいいんじゃないの
カバレッジ○○%達成できました!とか言って持ってきたら殴るけど
カバレッジ○○%達成できました!とか言って持ってきたら殴るけど
372デフォルトの名無しさん
2014/03/02(日) 19:06:23.64373デフォルトの名無しさん
2014/03/02(日) 19:12:20.55 話を聞いてないように見えるのはお前が基本を理解してないか
もしくは説明が下手だからだ
もしくは説明が下手だからだ
374デフォルトの名無しさん
2014/03/02(日) 19:31:34.78 あぁ、わかった。
例外が発生するテストの反対。
つまり例外が起きないテストと考えればいいわけだ。
ということはコードの最後に必ず成功するテストを入れた方がよさそうだ。
例外が発生するテストの反対。
つまり例外が起きないテストと考えればいいわけだ。
ということはコードの最後に必ず成功するテストを入れた方がよさそうだ。
375デフォルトの名無しさん
2014/03/03(月) 17:40:56.93 >>366
テストは、実際どのように使うのかというドキュメント性があり、また、テストを書くことによって設計が洗練されるということもあるので、ただ実行するだけのメソッドも意味は無くないと思うよ。
テストは、実際どのように使うのかというドキュメント性があり、また、テストを書くことによって設計が洗練されるということもあるので、ただ実行するだけのメソッドも意味は無くないと思うよ。
376デフォルトの名無しさん
2014/03/03(月) 19:28:18.39 書いたら保守せなあかん
簡単に書けるからと書くと、負の遺産になりかねないかも
変数の初期化関数とかは必要だからやってるのであって
それがないと困る箇所が本当は別にあるのではないだろうか
と妄想
簡単に書けるからと書くと、負の遺産になりかねないかも
変数の初期化関数とかは必要だからやってるのであって
それがないと困る箇所が本当は別にあるのではないだろうか
と妄想
378デフォルトの名無しさん
2014/04/06(日) 10:39:53.51ID:7IsAfKCx 2つ質問です。
テストを作ってから同じテストを別のオブジェクトにするとき
別のテストをつくりますか?
リファクタリングをするときソースを書き換えてもとに戻せなくならないように
リファクタリングをする前のファイルを保存しておきますか?
テストを作ってから同じテストを別のオブジェクトにするとき
別のテストをつくりますか?
リファクタリングをするときソースを書き換えてもとに戻せなくならないように
リファクタリングをする前のファイルを保存しておきますか?
379デフォルトの名無しさん
2014/04/06(日) 10:44:48.65ID:AUPUS+0I380デフォルトの名無しさん
2014/04/24(木) 16:15:35.14ID:Vet88S2u DHH(Ruby on Railsの作者)の"TDD is dead. Long live testing." (の訳)
http://d.hatena.ne.jp/yach/20140424#p1
http://d.hatena.ne.jp/yach/20140424#p1
381デフォルトの名無しさん
2014/04/24(木) 17:32:03.50ID:29x10p2Y 彼らは自分のエゴを満たすためにコードを書いてるんだから、
金色の牛を殺したりしたらダメだよね?(´・ω・`)
金色の牛を殺したりしたらダメだよね?(´・ω・`)
382デフォルトの名無しさん
2014/04/25(金) 16:52:52.53ID:TjzC2Fyr >>380
一行目から引いた
一行目から引いた
383デフォルトの名無しさん
2014/04/28(月) 12:40:27.17ID:97z81I41 Unit Test Frameworks
よんだけど、CPPUNITのことが全然書いてないので
CPPUNITの高度な使い方ってどうやってわかりますか?
よんだけど、CPPUNITのことが全然書いてないので
CPPUNITの高度な使い方ってどうやってわかりますか?
384デフォルトの名無しさん
2014/04/28(月) 15:56:01.02ID:GLzPd+IX385デフォルトの名無しさん
2014/04/28(月) 15:59:59.35ID:97z81I41 UnitTestFrameworks.pdf?
386デフォルトの名無しさん
2014/04/28(月) 16:19:09.38ID:GLzPd+IX つか、CppUnitの高度な使い方って何よ?
387デフォルトの名無しさん
2014/04/28(月) 16:20:09.84ID:GLzPd+IX388デフォルトの名無しさん
2014/04/28(月) 16:23:45.04ID:97z81I41 抽象クラスのテストを作って派生クラスのテストでテストしたいクラスを初期化する方法とか。
389デフォルトの名無しさん
2014/04/28(月) 16:24:20.94ID:97z81I41 UnitTestFrameworks.pdf
で検索すると出てくる著作権フリーの書籍。
で検索すると出てくる著作権フリーの書籍。
390デフォルトの名無しさん
2014/04/28(月) 16:27:49.28ID:GLzPd+IX391デフォルトの名無しさん
2014/04/28(月) 16:29:49.62ID:GLzPd+IX >>389
> UnitTestFrameworks.pdf
> で検索すると出てくる著作権フリーの書籍。
なんでずばっとURL書かないの?
俺が検索したら、O'REILLYの奴しか見つからなかったが。
これ、フリーじゃないだろ。
> UnitTestFrameworks.pdf
> で検索すると出てくる著作権フリーの書籍。
なんでずばっとURL書かないの?
俺が検索したら、O'REILLYの奴しか見つからなかったが。
これ、フリーじゃないだろ。
392デフォルトの名無しさん
2014/04/28(月) 16:30:35.56ID:97z81I41 >>391
O'REILLYはフリー
O'REILLYはフリー
393デフォルトの名無しさん
2014/04/28(月) 16:34:49.54ID:GLzPd+IX >>392
まさか、DRMフリーの意味がわからんのか?
まさか、DRMフリーの意味がわからんのか?
■ このスレッドは過去ログ倉庫に格納されています
