編集可能

TDDはテスト手法か否か

まとめました。
TDD
58
入金 @babie
TDDは論理実証主義的な面が強調されすぎたために、BDDなどという言い換えが行われた。反証主義的に、エラーを積極的に起こそうとするテストを書くべき。
入金 @babie
@yoshiori @t_wada @kakutani 「TDDはテスト手法ではない、開発手法」って言は、TDDが実証テストのみの場合は真だが、反証テストを含むなら誤り。反証テストを含むなら立派にテスト手法でもある。
Kakutani Shintaro @kakutani
@babie @yoshiori のPDFを見て言ってるんだとしたら @t_wada は最近は「TDDは品質のためのテストではない」とは言ってないですよ。そのギャップを埋めることが彼の関心のもよう。私は真とか偽とかあんまり興味ないんで……。
入金 @babie
@kakutani 実際問題、TDDで実証テスト(正常に動くことを確認する)は当然やってるだろうけど、反証テスト(エラーを起こそうとして確認する)は書いてる?それとも別のテストで補填してる? fyi: @t_wada @yoshiori
入金 @babie
@kakutani は興味なくても、あのスライドだと @yoshiori の誤った考え方(である可能性がある)に、権威付けを与えている。「@kakutani @t_wada 直伝だ」と見える。この議論いかんであの言が偽だったら、@yoshiori はスライドを訂正した方が良い。
Kakutani Shintaro @kakutani
@babie でも2週遅れのはじめかたとして間違ってないと思うけど。ぼくらもそうやって始めたし。スライド直す必要ないと思う。@yoshiori のメッセージははじめから正しくやるとかを気にしないで始めるための勇気についてだと思うし。やって学べばいいじゃん。
生存バイアスの王 @yoshiori
@babie @kakutani 僕は品質を "担保" するテストは TDD では書かない方が良いと思ってます。もちろん品質を担保する為のテストは必要なのですが、それとは別にした方が良いという考えです。
入金 @babie
@kakutani #devsumi2010 を見てればわかるけど、@yoshiori のスライドが今すごい勢いで広がってる。「TDDはテスト手法じゃないんだ」ってことで別の手順を用意するのはDRYでないし、プログラミング界全体で損失だと私は考える。TDDがテスト手法も兼ねる場合
入金 @babie
@yoshiori なぜ品質担保のテストはTDDで兼ねない方がいいと思うのですか?
生存バイアスの王 @yoshiori
@babie @kakutani 逆に品質を担保するテストまで TDD に含めちゃうと、原理主義的なカバレッジやユニットテストのコードまで入り込んで開発のリズムが掴めないと感じています。
生存バイアスの王 @yoshiori
@babie 命令網羅や分岐網羅、境界網羅まで TDD でやってしまうと逆にリズム崩れてしまいませんか?
入金 @babie
@yoshiori 品質担保の全てをやれとか言ってません。「TDDには品質担保は(一部でも)含まれないのか?」を問題にしています。
生存バイアスの王 @yoshiori
@babie そういう意味で言えば(一部は)含んでいると思います。ここの最初の3つの投稿がそもそもの発端になってます。 http://bit.ly/br6KNR
入金 @babie
@yoshiori 一連の流れを読みました。個人の考えで敢えて言ってるわけですね。それならばスライドを修正する必要はありません。が、私は暴論だと思いますし、この考えが一般的になるのを憂慮しています。
入金 @babie
@yoshiori ケント・ベック著『テスト駆動開発入門』p.vi にも、「欠陥密度が充分に削減されれば、QA(品質保証)は受動的な作業から能動的な作業になる」と明瞭に書いてあります。その後、ケント・ベックが言を翻していなければですが。翻していてもそもそもはそういう目的です。
入金 @babie
@yoshiori 「オレオレTDD」を広めるなら、但し書きを付けるなどの、誠実な対応を望みます。
入金 @babie
@yoshiori 速度は落ちますがリズムは崩れません。
入金 @babie
@yoshiori さんの言うのはTDDじゃなくてBDDじゃないですか? BDDが名前からテストを抜いたのは、実証のみに絞るという態度の現れだと思いますので、@yoshiori さんの言うTDDに近いと思います。
Takuto Wada @t_wada
何か議論乗り遅れた感ありますが、仕事終えて帰ったら追います
入金 @babie
@yoshiori からへんじがない、ただのしかばねのようだ。
Takuto Wada @t_wada
@babie 反証テストが例外処理のテストを指すのであれば、やってます。でも結局他者の視点が無いので漏れがあるし、バグを見つけるテストではないです。システムを破壊してバグを見つけるテスト、例えば exploratory testing (探索的テスティング) とかも必要と思います
Takuto Wada @t_wada
@babie http://togetter.com/li/5878 見たら中程に書いてあったと思うんですけど、私のこれまで言ってきたことで歯切れの悪い部分をもっと先鋭化させたのがヨシオリの発表内容で(三周目の特権と言ってますね)、つまり私と言ってることは大筋では似通ってます。
Takuto Wada @t_wada
時間差議論はちょっと寂しいかも
残りを読む(106)
TDD

コメント

角 征典/Masanori Kado @kdmsnr 2010年2月23日
TDDがテスト手法なのかをまとめてみたけど自動並び替えしたらバラけた。ぬー。
Takuto Wada @t_wada 2010年2月23日
議論の内容に対応させて若干並び替えました
Kakutani Shintaro @kakutani 2010年2月23日
自分が読んだ感想とbabieのreplyを追加
yojik @yojik_ 2010年2月24日
とりあえず、自分の観測範囲(狭い)を登録しました。他にも何スレッドか走ってると思う。 あと最後のカーゴカルトの話は外れていると感じたら削除お願いします。(ただTDDとカーゴカルトの話ってMFがいってましたね)
setunai @setunai 2010年3月16日
おなかいっぱい。面白かった!
ログインして広告を非表示にする
ログインして広告を非表示にする