テスト駆動開発 (test-driven development; TDD) について マターリ 語りましょう
ツールについては別スレで
テストツールについて語るスレ 2
http://hibari.2ch.net/test/read.cgi/tech/1208013693/
探検
【TDD】テスト駆動開発【TestFirst】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/09/19(日) 21:26:12354デフォルトの名無しさん
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フリーの意味がわからんのか?
394デフォルトの名無しさん
2014/04/28(月) 16:46:40.37ID:sLIIqVQo PDF の各ページのフッタ見ればわかるけどフリーで配布されてるわけじゃないね
395デフォルトの名無しさん
2014/04/28(月) 16:51:24.25ID:97z81I41 なんかの記事で見たけど、無断配布を禁止するより
しない方が本が売れるからわざとそうしてるらしい。
しない方が本が売れるからわざとそうしてるらしい。
396デフォルトの名無しさん
2014/04/28(月) 16:56:55.25ID:GLzPd+IX >>395
> なんかの記事で見たけど、無断配布を禁止するより
> しない方が本が売れるからわざとそうしてるらしい。
どこの記事だよ?
O'reillyはDRMはフリーにしたけど、無断配布は禁止だろ。
> なんかの記事で見たけど、無断配布を禁止するより
> しない方が本が売れるからわざとそうしてるらしい。
どこの記事だよ?
O'reillyはDRMはフリーにしたけど、無断配布は禁止だろ。
397デフォルトの名無しさん
2014/04/28(月) 20:05:02.12ID:2i2SR7ZO なんだ釣りか
398デフォルトの名無しさん
2014/04/29(火) 10:12:01.42ID:gWfSfq0v 別にDRMフリーって無料配布を禁止してないわけじゃないんだけどなw
399デフォルトの名無しさん
2014/04/29(火) 10:15:16.74ID:FmOJz83e A. オライリー・ジャパンが販売する書籍(Ebookも書籍だと考えています)は、
コピー・フリーではありますがコピーライト・フリーではありません。
日本国の著作権法による保護を受けており、
著作権法で定められた範囲を超えた複製、頒布、
送信などは、
著作権法に抵触する恐れがありますのでご注意ください。
コピー・フリーではありますがコピーライト・フリーではありません。
日本国の著作権法による保護を受けており、
著作権法で定められた範囲を超えた複製、頒布、
送信などは、
著作権法に抵触する恐れがありますのでご注意ください。
400デフォルトの名無しさん
2014/04/30(水) 12:43:00.88ID:4gXDKzV2 著作権フリーだの無断配布だの意味不明な俺用語でかたるのがおかしい
401デフォルトの名無しさん
2014/05/08(木) 10:55:00.04ID:7mqxxUyE > なんか誤解してるっぽく見えるからそれをときたいだけなのに原理主義だの教条主義だの
> テスト厨だのって言われるのは心外っすね。。こちらだって別に銀の弾丸だと思ってないし、
> ただ誤った理解を訂正したいだけなのに。。
正しい理解が為されればTDDがdisられないという考えがすでに宗教。
だから原理主義言われるんだよ。
> テスト厨だのって言われるのは心外っすね。。こちらだって別に銀の弾丸だと思ってないし、
> ただ誤った理解を訂正したいだけなのに。。
正しい理解が為されればTDDがdisられないという考えがすでに宗教。
だから原理主義言われるんだよ。
402デフォルトの名無しさん
2014/05/08(木) 13:18:58.75ID:QEfRwn3W そうだな
TDDという概念自体が完全に誤ったもの
動いてるコードに手を触れないことこそが真理
TDDという概念自体が完全に誤ったもの
動いてるコードに手を触れないことこそが真理
403デフォルトの名無しさん
2014/05/08(木) 23:11:10.80ID:o3vM5nSH >>402
君、概念以前にTDDが何なのかすらよく分かってないでしょ
君、概念以前にTDDが何なのかすらよく分かってないでしょ
404デフォルトの名無しさん
2014/06/14(土) 11:06:05.15ID:7s4E5mM1 うんこ
405デフォルトの名無しさん
2014/07/21(月) 15:26:18.47ID:f2PpmiaZ オウンコ
406デフォルトの名無しさん
2014/07/21(月) 15:27:39.55ID:SvZi82X8 マンコ
407デフォルトの名無しさん
2014/08/06(水) 12:12:57.58ID:B/o+YfUv テスト鳥文
408デフォルトの名無しさん
2014/08/19(火) 01:55:15.38ID:TPeuIISX とりぶん?
409デフォルトの名無しさん
2014/09/29(月) 15:59:03.19ID:PXDdRZQD なぜ流行らなかったスレが死滅したな
410デフォルトの名無しさん
2014/09/29(月) 22:02:10.49ID:QcGUG2KQ あのスレのカオスっぷりを見れば
なぜ流行らなかったのか良く分かる
なぜ流行らなかったのか良く分かる
411デフォルトの名無しさん
2014/09/29(月) 22:59:57.93ID:yt38cp2j 2ちゃんねらーの脳みそではテストなんて書けるわけがなかったってことだ
412デフォルトの名無しさん
2014/09/30(火) 08:06:51.52ID:76NHBRqV TDDはともかくユニットテストまで否定かよ
恐れ入る
恐れ入る
413デフォルトの名無しさん
2014/10/01(水) 16:56:59.90ID:+PWQCZCn TDDやユニットテストを否定する奴って、経験ゼロなのに経験豊富な奴の知見や実感なんかを否定するよね。
あと、自分の嫌いなスクリプト言語をわざわざdisりに行く奴とメンタルが似てる気がする。
あと、自分の嫌いなスクリプト言語をわざわざdisりに行く奴とメンタルが似てる気がする。
414デフォルトの名無しさん
2014/10/01(水) 17:01:54.48ID:YKNuKmx4 自己紹介ですね
わかります
わかります
415デフォルトの名無しさん
2014/10/01(水) 22:34:56.80ID:0wPPS909416デフォルトの名無しさん
2014/10/02(木) 14:30:41.58ID:Ob3tDv0H >>415
http://blog.fieldnotes.jp/entry/2014/05/07/225129
> DHH氏のTDD is dead. Long live testing. (DHH)のエントリは、国内でもさまざまな議論を
> 呼び起こしました。ですが、そのセンセーショナルな見出しの影響もあり、「(TDDと同一視
> した上での)ユニットテストは不要」などの、ミスリードされた論調も見られます。
http://blog.fieldnotes.jp/entry/2014/05/07/225129
> DHH氏のTDD is dead. Long live testing. (DHH)のエントリは、国内でもさまざまな議論を
> 呼び起こしました。ですが、そのセンセーショナルな見出しの影響もあり、「(TDDと同一視
> した上での)ユニットテストは不要」などの、ミスリードされた論調も見られます。
417デフォルトの名無しさん
2014/10/02(木) 14:37:04.66ID:Ob3tDv0H418デフォルトの名無しさん
2014/10/02(木) 21:31:51.50ID:cEl3U7zN419デフォルトの名無しさん
2014/10/03(金) 11:17:58.55ID:MGOEkXEo420デフォルトの名無しさん
2014/10/03(金) 23:03:06.98ID:PD4heIQt >>419
>>413
> TDDやユニットテストを否定する奴って、経験ゼロなのに経験豊富な奴の知見や実感なんかを否定するよね。
>>380
> http://d.hatena.ne.jp/yach/20140424#p1
> TDDには感謝しているが、設計の教義としてはとっくに使わなくなっている。
とっくに使わなくなっている=現場で使えない=否定 だよね
>>413
> TDDやユニットテストを否定する奴って、経験ゼロなのに経験豊富な奴の知見や実感なんかを否定するよね。
>>380
> http://d.hatena.ne.jp/yach/20140424#p1
> TDDには感謝しているが、設計の教義としてはとっくに使わなくなっている。
とっくに使わなくなっている=現場で使えない=否定 だよね
421デフォルトの名無しさん
2014/10/06(月) 10:30:55.78ID:auIRFVse422デフォルトの名無しさん
2014/10/06(月) 22:45:50.57ID:h87PXXn5 TDDは慣習
423デフォルトの名無しさん
2014/10/12(日) 02:49:57.49ID:Go9nxJDi 組み込みなんだが
実機とTDDの解析環境でコンパイラが別になる
こういう場合は何をもってテストしたといえるんだ?
実機とTDDの解析環境でコンパイラが別になる
こういう場合は何をもってテストしたといえるんだ?
424デフォルトの名無しさん
2014/10/12(日) 10:48:18.63ID:0nnSDdGO 気になるのはコンパイラが別になるってことだけ?
それなら解析環境(?)でテストがパスすればテストしたと言えるだろう
コンパイラの差異については結合テストとシステムテストをパスすれば
問題ないと考えていいんじゃないの
それなら解析環境(?)でテストがパスすればテストしたと言えるだろう
コンパイラの差異については結合テストとシステムテストをパスすれば
問題ないと考えていいんじゃないの
425デフォルトの名無しさん
2014/10/12(日) 11:10:47.48ID:LjQH95WZ 最適化のバグでひどい目に遭ってからそのへんの互換性は信用出来ないと思い知ったわけだが
それでもテストしないよりはマシ
それでもテストしないよりはマシ
426デフォルトの名無しさん
2014/10/12(日) 15:18:45.36ID:Go9nxJDi >>424
他にも色々ある
というか俺の職場の装置のソースがクソなんだろうけど
パラメータが多すぎて全部網羅するのは無理
TDDでいうテストってのはどういうイメージなのか
ネットや本を見てもピンとこない
x+1の関数に1をいれて2になりましたとか
そんな説明は求めてないのだが
他にも色々ある
というか俺の職場の装置のソースがクソなんだろうけど
パラメータが多すぎて全部網羅するのは無理
TDDでいうテストってのはどういうイメージなのか
ネットや本を見てもピンとこない
x+1の関数に1をいれて2になりましたとか
そんな説明は求めてないのだが
427デフォルトの名無しさん
2014/10/12(日) 21:43:25.28ID:0nnSDdGO >>426
TDDがどんなものか、何の略かまでは分かる?
クソなソースになっているのならどうしようもないだろう
それにパラメータ多すぎて全部網羅するのは無理っていうけどさ
TDD以前にカバレッジはどうすんのよ
組み込みでC0すらパスしないような状況になってたらかなりマズイ気がするが
TDDがどんなものか、何の略かまでは分かる?
クソなソースになっているのならどうしようもないだろう
それにパラメータ多すぎて全部網羅するのは無理っていうけどさ
TDD以前にカバレッジはどうすんのよ
組み込みでC0すらパスしないような状況になってたらかなりマズイ気がするが
428デフォルトの名無しさん
2014/10/12(日) 22:13:02.74ID:tcHpyVOC >>426
TDDで目指すのは小さなフィードバックループを作ること
開発者が安心を得つつコーディングできること
安心というのは、ここでいうと例えば「実機で確認されていないコード・機能をベースに、それに依存したコードをさらに積み上げていくこと=不安な状態」的な
何をもってTDDでいうテストとなるか、って定義は割とどうでもいい気がする
>>423の環境で何をどうすれば開発者が安心できるか、作業のループを小さくしてフィードバックを得られるか、が大事
「これが動けばこのコードは正しい」っていう一般的なテストがあって
それが自動化できてさらにフレームワークで成否確認までできるなら十分
そうでないなら何か妥協したテストでやるしかない
・実機と検証(解析?)環境がどの程度異なっていて、開発者は検証環境をどの程度信頼できるのか
・どの程度の頻度で実機テストができるのか
とかが重要なのでは?
ここらへんは現場を見てないので多分他人には分からない所。
仮に検証環境があまり信頼できないのであれば、そこだけでどれだけ完璧な開発プロセスをこなしてもムダになる危険性が残るだろうから
実機での確認をいかに頻繁に行ってフィードバックを得られるか、が重要になる
そうすると一般的なTDDは実践しづらくなると思う。
けど実機でのテストを自動化できるのであれば多少は導入できるかも?
組み込みとか知らんのでとんちんかんなこと言ってたらすまん
TDDで目指すのは小さなフィードバックループを作ること
開発者が安心を得つつコーディングできること
安心というのは、ここでいうと例えば「実機で確認されていないコード・機能をベースに、それに依存したコードをさらに積み上げていくこと=不安な状態」的な
何をもってTDDでいうテストとなるか、って定義は割とどうでもいい気がする
>>423の環境で何をどうすれば開発者が安心できるか、作業のループを小さくしてフィードバックを得られるか、が大事
「これが動けばこのコードは正しい」っていう一般的なテストがあって
それが自動化できてさらにフレームワークで成否確認までできるなら十分
そうでないなら何か妥協したテストでやるしかない
・実機と検証(解析?)環境がどの程度異なっていて、開発者は検証環境をどの程度信頼できるのか
・どの程度の頻度で実機テストができるのか
とかが重要なのでは?
ここらへんは現場を見てないので多分他人には分からない所。
仮に検証環境があまり信頼できないのであれば、そこだけでどれだけ完璧な開発プロセスをこなしてもムダになる危険性が残るだろうから
実機での確認をいかに頻繁に行ってフィードバックを得られるか、が重要になる
そうすると一般的なTDDは実践しづらくなると思う。
けど実機でのテストを自動化できるのであれば多少は導入できるかも?
組み込みとか知らんのでとんちんかんなこと言ってたらすまん
429デフォルトの名無しさん
2014/10/13(月) 10:22:06.70ID:eF/9rJ3u >>428
ありがとう
指摘はとても現実を捉えていて救われた思いがした
現実は顧客の装置の一部のデバイスを作ってるのだけど
検証環境が貧弱(または無い)ので
仕様変更箇所のみを検査するみたいな対応になってしまってる
ここ数年リストラで人減りまくったのと
士気の低下なのかテスト不足と思われる市場不良が多発
「安心」と言う意味では
徹底的な回帰テストをすることが大事だとおもう
問題はどうやってそれをやるかなのだけど
ありがとう
指摘はとても現実を捉えていて救われた思いがした
現実は顧客の装置の一部のデバイスを作ってるのだけど
検証環境が貧弱(または無い)ので
仕様変更箇所のみを検査するみたいな対応になってしまってる
ここ数年リストラで人減りまくったのと
士気の低下なのかテスト不足と思われる市場不良が多発
「安心」と言う意味では
徹底的な回帰テストをすることが大事だとおもう
問題はどうやってそれをやるかなのだけど
430デフォルトの名無しさん
2014/10/14(火) 11:44:30.46ID:+LKn0wPu >>428
> 実機での確認をいかに頻繁に行ってフィードバックを得られるか、が重要になる
> そうすると一般的なTDDは実践しづらくなると思う。
組み込みの種類にもよるだろうけど、対象物をmock(あるいは、シミュレータ)で作って
実機なしに開発・テストできるようにするのが、自動テストをやる派の中では一般的だと思う。
まあ、中には「現地に行かないと、プログラムの起動すらできないのでテストできません」とか
言う奴もいるんだが。
> 実機での確認をいかに頻繁に行ってフィードバックを得られるか、が重要になる
> そうすると一般的なTDDは実践しづらくなると思う。
組み込みの種類にもよるだろうけど、対象物をmock(あるいは、シミュレータ)で作って
実機なしに開発・テストできるようにするのが、自動テストをやる派の中では一般的だと思う。
まあ、中には「現地に行かないと、プログラムの起動すらできないのでテストできません」とか
言う奴もいるんだが。
431デフォルトの名無しさん
2014/10/15(水) 22:41:20.51ID:2mUB6yWE UARTなりCANなりイーサネットなり
この部分は完璧に通信できるものとして実装するでおk?
この部分は完璧に通信できるものとして実装するでおk?
432デフォルトの名無しさん
2014/10/16(木) 10:27:00.84ID:qnIoh31O エラーのシミュレーションはするべき
433デフォルトの名無しさん
2014/10/16(木) 13:38:30.32ID:6zTGqYum 異常系の仕様が定義されていればそれに対応する
それ以外は単体テストの範囲ですらない
それ以外は単体テストの範囲ですらない
434デフォルトの名無しさん
2014/10/16(木) 13:56:42.86ID:+afjrAmT435デフォルトの名無しさん
2014/10/16(木) 17:14:14.25ID:CsOFEKWu まるで公務員の主張だな
436デフォルトの名無しさん
2014/10/16(木) 19:29:56.64ID:z4r7htJV 一緒に仕事したくねーな
437デフォルトの名無しさん
2014/10/16(木) 21:49:07.00ID:6zTGqYum 縦割りはそういうもの
438デフォルトの名無しさん
2014/10/17(金) 01:41:12.71ID:QJMYKMHi 担当者が設計と開発で分かれているなら>>433が正しい
開発の見積もりは「この仕様(設計書)通りに作ったら○○人月」で算出してるわけで
「異常系に漏れがないかチェックしろ、漏れてたら仕様に書いてなくても対応しろ」は
見積もり範囲外の作業だよ
予算が潤沢に貰えるなら「サービス」で対応するかもしれないが
そんなに潤ってるプロジェクトは滅多にないだろう
開発の見積もりは「この仕様(設計書)通りに作ったら○○人月」で算出してるわけで
「異常系に漏れがないかチェックしろ、漏れてたら仕様に書いてなくても対応しろ」は
見積もり範囲外の作業だよ
予算が潤沢に貰えるなら「サービス」で対応するかもしれないが
そんなに潤ってるプロジェクトは滅多にないだろう
439デフォルトの名無しさん
2014/10/17(金) 10:40:07.93ID:yP2f7CgA440デフォルトの名無しさん
2014/10/17(金) 11:21:29.10ID:HZvg3la9 printf() の戻り値見ろと言っているに等しい
441デフォルトの名無しさん
2014/10/17(金) 15:20:26.07ID:bxyVopED442デフォルトの名無しさん
2014/10/17(金) 16:05:39.88ID:yP2f7CgA >>441
ちょっと議論するのめんどくさいんだけど、開発者の裁量内で判断する異常処理ってないのという疑問なんだけど。
そういう判断を一切する必要がない開発者は、エンジニアやプログラマとは呼ばずに、コーダーやパンチャーって呼ばれると思うんだけど。
ちょっと議論するのめんどくさいんだけど、開発者の裁量内で判断する異常処理ってないのという疑問なんだけど。
そういう判断を一切する必要がない開発者は、エンジニアやプログラマとは呼ばずに、コーダーやパンチャーって呼ばれると思うんだけど。
443デフォルトの名無しさん
2014/10/17(金) 22:32:13.59ID:i/Kzfu5g >>442
たとえ一人でやっている場合でも、アーキテクチャ(何が起きるか)と、
インプリメンテーション(どう起こすか)は明確に分けるべき。
ましてや複数人でやるんなら、アーキテクチャが明示されることが必要。
少なくともユーザに仕様として提示されるものは、全てアーキテクチャなんで、
必要なファイルが無かったり、外部装置や EAI の接続先が故障していた場合
に"何が起きるか" は、アーキテクチャとして定義されなければならない。
どちらが、より創造的かということには意味はなくて、単に別の仕事。
たとえ一人でやっている場合でも、アーキテクチャ(何が起きるか)と、
インプリメンテーション(どう起こすか)は明確に分けるべき。
ましてや複数人でやるんなら、アーキテクチャが明示されることが必要。
少なくともユーザに仕様として提示されるものは、全てアーキテクチャなんで、
必要なファイルが無かったり、外部装置や EAI の接続先が故障していた場合
に"何が起きるか" は、アーキテクチャとして定義されなければならない。
どちらが、より創造的かということには意味はなくて、単に別の仕事。
444デフォルトの名無しさん
2014/10/17(金) 22:37:06.62ID:i/Kzfu5g TDD (BDD) には、インプリメンテーションをやるまえに
テストケースを作ってアーキテクチャを確認しようぜ
という意味も有る。
テストケースを作ってアーキテクチャを確認しようぜ
という意味も有る。
445デフォルトの名無しさん
2014/10/18(土) 00:53:05.90ID:o6ZdOp19 そりゃプログラマだってアホじゃないんだから要件漏れ気づくこともあるよ
テストを作成していて漏れに気づくことだって多いしね
ただしそれを見つけたり直したりするのはプログラマの役目ではないし責任もない
優秀なプログラマなら「○○処理が漏れてますよ」と指摘だけして
どうしますか?対応するなら再見積もりしますね?で予算をふんだくる
テストを作成していて漏れに気づくことだって多いしね
ただしそれを見つけたり直したりするのはプログラマの役目ではないし責任もない
優秀なプログラマなら「○○処理が漏れてますよ」と指摘だけして
どうしますか?対応するなら再見積もりしますね?で予算をふんだくる
446デフォルトの名無しさん
2014/10/18(土) 12:25:58.33ID:/bV95tiS なるほど
447デフォルトの名無しさん
2014/10/18(土) 15:13:02.82ID:mzkaImX0 >>445
あんた公務員か
あんた公務員か
448デフォルトの名無しさん
2014/10/18(土) 15:19:28.52ID:r/p1CvCN たぶんプログラマって言葉の定義が違うんじゃね
SE/PG世界のプログラマは普通のプログラマと別の概念
SE/PG世界のプログラマは普通のプログラマと別の概念
449デフォルトの名無しさん
2014/10/18(土) 15:52:52.83ID:2d9yKbqY >>439
Javaの例外は3種類あって、
プログラマが主に想定する例外は、Exception
Error
メモリ不足やハードウェアの故障など、
プログラムではどうにもならないもので、catchする必要がない
Exception
ファイルが読み書きできない、ネットワークがつながらないなど、
プログラムで想定できるもので、catchすべき
RuntimeException
NullPointerのチェックなど、
一々想定していると切りがないもので、catchしなくてもよい
Javaの例外は3種類あって、
プログラマが主に想定する例外は、Exception
Error
メモリ不足やハードウェアの故障など、
プログラムではどうにもならないもので、catchする必要がない
Exception
ファイルが読み書きできない、ネットワークがつながらないなど、
プログラムで想定できるもので、catchすべき
RuntimeException
NullPointerのチェックなど、
一々想定していると切りがないもので、catchしなくてもよい
450デフォルトの名無しさん
2014/10/18(土) 16:24:30.31ID:L9rzpY5S アーキテクチャをそんな意味で使うの初めて見た
451デフォルトの名無しさん
2014/10/19(日) 00:06:51.41ID:GulnFHAj >>440
> printf() の戻り値見ろと言っているに等しい
例外がない言語はそうなるから大変なんだよね。
例外がある言語ならすべての行でエラーが起きる可能性がある
という前提でプログラムしても全然負担にならないのに。
> printf() の戻り値見ろと言っているに等しい
例外がない言語はそうなるから大変なんだよね。
例外がある言語ならすべての行でエラーが起きる可能性がある
という前提でプログラムしても全然負担にならないのに。
452デフォルトの名無しさん
2014/10/20(月) 11:17:44.91ID:MhItlF5V >>443
> たとえ一人でやっている場合でも、アーキテクチャ(何が起きるか)と、
> インプリメンテーション(どう起こすか)は明確に分けるべき。
> ましてや複数人でやるんなら、アーキテクチャが明示されることが必要。
ちょっと俺とは「アーキテクチャ」の使い方が違うようだ。
> 少なくともユーザに仕様として提示されるものは、全てアーキテクチャなんで、
ユーザに仕様として提示すべきものは「外部仕様」。
そして、その中には内部で使用するアーキテクチャは明示されるかもしれないし、明示されないかもしれない。
> 必要なファイルが無かったり、外部装置や EAI の接続先が故障していた場合
> に"何が起きるか" は、アーキテクチャとして定義されなければならない。
内部設計では、何が起きえて何をすべきかを網羅することは必要だが、外部仕様としてはそれらをすべて
含む必要はない。
> たとえ一人でやっている場合でも、アーキテクチャ(何が起きるか)と、
> インプリメンテーション(どう起こすか)は明確に分けるべき。
> ましてや複数人でやるんなら、アーキテクチャが明示されることが必要。
ちょっと俺とは「アーキテクチャ」の使い方が違うようだ。
> 少なくともユーザに仕様として提示されるものは、全てアーキテクチャなんで、
ユーザに仕様として提示すべきものは「外部仕様」。
そして、その中には内部で使用するアーキテクチャは明示されるかもしれないし、明示されないかもしれない。
> 必要なファイルが無かったり、外部装置や EAI の接続先が故障していた場合
> に"何が起きるか" は、アーキテクチャとして定義されなければならない。
内部設計では、何が起きえて何をすべきかを網羅することは必要だが、外部仕様としてはそれらをすべて
含む必要はない。
453デフォルトの名無しさん
2014/10/21(火) 17:54:15.96ID:LMlVzSKe コードを書かない?設計者が、最終的に使用するミドルウェア・ライブラリ・APIに精通してる奴多すぎ。
んで、if (エラー条件)となる部分を全部設計書に明記するだって?
どんだけ分厚い設計書なんだよ。
んで、if (エラー条件)となる部分を全部設計書に明記するだって?
どんだけ分厚い設計書なんだよ。
454デフォルトの名無しさん
2014/10/21(火) 17:56:11.27ID:LMlVzSKe■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 宅急便デス
- さっむ
- 千晴だけど30年前にゲームのカセット貸したら勝手に売られたんだけど
- ッシャー
- 千晴って大王だったの?
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
