Location via proxy:   [ UP ]
 No cookies    No scripts    No ads    No referrer

きしだのはてな このページをアンテナに追加 RSSフィード

2012-02-22(水) テストというのは、ソースコードの冗長化だと思う

テストというのは、ソースコードの冗長化だと思う 01:41 テストというのは、ソースコードの冗長化だと思うを含むブックマーク

テストというのは、基本的にはソースコードの冗長化だと思う。本来ならプロダクトコードだけ書けばよいところを、信頼性を高めるために複数の視点でのコードを追加する。


また、サーバーの冗長化で、2台構成を3台構成にするよりも、はるかに1台構成を2台にするのが難しいように、テストも、10本のテストを20本にするよりも、最初のテスト(プロダクトコードも含めると2本目のコード)を書くのが一番難しい。


テストがソースコードの冗長化であるなら、アクセスのないサイトでサーバーをクラスタリングするのが単なる金や設定時間の無駄であるように、長期的な信頼性の求められないプロダクトにテストを書くことも金の無駄だ。

アクセスが多いのにサーバー冗長化の金を払わない顧客に対してクラスタリング構成を構築する義理がないように、信頼性が求められるのにテストの金を払わず時間も確保しない顧客のためにテストを書いてやる必要もない。もちろんこの場合、契約段階で、品質の劣化が、いかに金を払わず時間もとらない顧客のせいであるかということを明記しておく必要はあるわけだけども。あと、最低限の品質も満たせないような条件なら、その仕事は断るべき。

もちろん、品質要件が満たせないなら、テストを書かないといけない。


また、ぼくはテストについて「同じものが作れるならテストが少ないほうがエライ」というのだけど、冗長化であると考えるとわかってもらいやすいのではないか。

同じアクセス数がさばけるならサーバー台数が少ないほうがえらいのと同じだ。

あと、「うちはこれだけテスト書いてるから、みんなも同じくらいテストを書くべき」というのがナンセンスだということも。



サーバークラスタリングの台数を自慢するのではなくて、サーバークラスタリングの台数がそれだけ必要なアクセスを自慢するように、テストの数ではなくて、テストの数がそれだけ必要な品質が求められ、その品質を実現するためにコストがかけられてることを自慢したほうがいい。

nowokaynowokay 2012/02/23 11:32 同じカバレッジなら、テスト少ないほうがえらいよね。

nowokaynowokay 2012/02/23 13:23 自社サービスの場合、テスト環境の構築費用が漸近的に0になるってのもいいですよね。

nowokaynowokay 2012/02/25 02:50 品質が(本当は)求められないプロダクトは結構あって、でも契約的に求められるというのが多い気がする。
あと、本文中では、品質が求められる案件・求められない案件のように書いてるけど、実際には、品質が求められないフェーズ・求められるフェーズとか、品質が求められない部分・求められる部分、って感じで、ひとつのプロダクトの中でも違いがあると思う。

nowokaynowokay 2012/02/25 03:01 あと、品質が必要な部分のテスト書くのは、結構エキサイティングで楽しいよね。

トラックバック - http://d.hatena.ne.jp/nowokay/20120222