谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

業務とOSSの差

testがmainを超えるってそう珍しくはないというか、OSSも業務も関係なくまじめにUnitTest書いたらtestはmainを超えるものだと思うのですが、違うの?

Re:S2主要プロダクトの規模、mainとtestを分けてみました。 - ふぃーるどのーつ

ん〜、私は、業務とOSSでは、差があると思っています。


ひとつめは、UTの位置づけ。
業務では、UTは「仕様通りに実装されていることの証明」という位置づけで、
testコード量も多くなりがちだと思います。


OSSプロダクトでは、UTは「前から変わってないことの証明」か
「不具合を修正したことの証明」という位置づけで記述され、
ポイントが絞られているように思います。だから、testコード量も絞られる。


ふたつめは、お金w
こちらは随分と感覚的な所なので、合っているかどうか分かりませんが。。。


業務では、お金が付くし、顧客も明確だから、
品質の重要度が上がり、UTも増える。


OSSでも、昼間にコードが書かれるものはUTが増えるし、
あるいは昼間の業務で使うために、夜の間に品質を高めるという
モチベーションもあるかなと思います。
逆に、そうでないOSSでは、UTは伸びない。


繰り返し言いますが、これは多分に感覚的な所です。


また、上にあげた二つとは別の話として「文化」もあるでしょう。
UTを重視して、しっかりtestを書く人がチーフコミッタとして引っ張っていれば、
その文化が根付き、自然と他のコミッタもtestを書くでしょう。
メッセージまでtestするというS2Tigerが、そんな感じ。


そして、ITまで書いているプロダクトでも、
ITコードも合計すれば、mainを超えるでしょう。teedaとかも。


文化がなければ、業務でもOSSでも、UTは書かれない、かな。
その点について言えば、せとさんに同意です。