もってけ!とは言わない(大汗)
ネタ元はこちら。片桐、一刀両断されてるし(笑)
というか、なかせんせのおっしゃるとおりで、前提からしてベクトルずれてるやんという話だとおもってみるテスト
なので日記であげてみるデスよ(^^;
プログラミングして、コンパイルして、テストケース作って、仕様書書いて……かくして出来上がってくる単体テストの精度や結果、それを証明する成果物は「動作結果を証明するもの」であって、「品質を証明するもの」とは別だと考えるので、ここでベクトルがすでにズレまくりんぐ。「テストしやすいコード」「テストしづらいコード」のこだわりって、必ずしも必要じゃないね的所がすでに(ry 開発規模が大きかったり、納期がタイトだったりするとそれよりも「確実に動作が確認できる」ことの方が先決になる場合もあるし(^^;
単体は所詮「単体」で、それがシステムの品質を証明することにはならない。多分ここもベクトルが違ってて私の考える品質は「システム」に対して掛かる修飾子(大汗)そのプログラムがそれこそ「単体」で「全体」の動きであるのなら、確かにその「単体の動作保証」=「品質の動作保証」だと思うけれど、ぶっちゃけ、車の一部品の品質保証が取れたからって車全体の品質保証にはならない。確実にいえるのは、その部品自身は発注されたとおりの動きがとれてますよってことが明らかになってます、証拠もありますですよ、ってことだけ。そこが私の中では前提になっちゃってたからベクトルずれズレなんだと思うのです。むぅ。
テストしやすいコードで作られたプログラム達が積み重なって寄り集まって、キング「テストしやすいコード」になったとして、それが「品質保証完璧だぜ」コードになるかというとそれは違う。それぞれが正しくても、全部を通したときにやっぱりおかしい、なんてことはザラで、そこには全体を通したときの「仕様バグ」や「方式バグ」が存在するわけだから、単体で品質保証=システムの品質保証にはならないし、そういう考え方で進めちゃうとハマッチャウから危ないと思うの。
単体=プログラムの動作が仕様とあっていることを証明するテスト≠品質保証のテスト は私の中では変わらないですよ……むぅ。じゃ、品質保証のテストは……? 規模によるけど、総合テストはまさしくそのためのテストだと思ってますです。なので単体では無いのです……。