ソフトウェアの意味論を型システムが表現している限り、テストは書かなくても良い
#テスト #型
@yasuo_ozu: 私は「ソフトウェアの意味論を型システムが表現している限り、テストは書かなくて良い」と思っている人間で、このような視点があると「本当に必要なテスト」と「削除してよいテスト」を見分けられるようになると思っている。
@yasuo_ozu: 例えば今の型システムはデータ変換や多様性は正確に表現できる反面、アルゴリズム的な部分は表現しづらい。よって前者にはテストを書く必要はなく、後者はテストが必要
@yasuo_ozu: あと汎用データ型を使ってるところもテストが必要。
関数内ではintとかを直接使って計算することが多いが、そういう所は単体テストを書いた方がよい。
一方、多様性は型が担保してるため結合テスト的なものの必要性は極めて低い
@yasuo_ozu: (意図通りの多様性が確保されているかどうかをチェックするテストは必要だが、それはコンパイルさえ通せばよい)
@yasuo_ozu: この世界で「テスト不要論」を唱えるのは結構勇気がいるんだよなぁ
@shinji_kono: @yasuo_ozu 1=0 は型は合ってます
1=0 は型は同じ
koushisa.icon
前提条件として静的型づけ言語であるというっていうのはありそう
以下の視点は確かにな、とおもった
型システムはデータ変換や多様性を正確に表現できる
多様性は型が担保してるため結合テスト的なものの必要性は極めて低い
汎用データ型を使ってるところはテストが必要
多様性を型で表現できると、分岐が減るので網羅率(カバレッジ)をあげやすい