TDD(テスト駆動開発)
NESさんと仕事したときに知った考え方
インサイドアウトの考え方
よくある勘違い
- 単体テストやっている余裕がないからやらない
- 結合テストから自動化始めよう
単体を疎かにすることで、AfterDoneバグ発生でなぜなぜ分析することになる
ロケット製造における99.999%品質だと打ち上げ失敗する
ねじ1本でも取っても侮れない
それだけでもねじ外れて空中分解する
それはどこからミスになるか?細かいパーツからになる
つまり、我々でいうJestにおけるカバレッジが99%なら間違いなくバグの要因になるってこと
いやいや、ロケットの話と我々のITエンジニア関係ないでしょ?って考える人向け
一緒です!(死人出るかどうかは違うけどね)
費用面で言えば、一緒です。何百人の従業員、利用者含めれば何千万となる。
不具合による問題は、その何千万人にかかってくる可能性もある
従業員だけでも不具合対応だけでも相当なコストになる
なので、細かいパーツ単位でも因子と水準で直行表を作り、コード単位だけでなく分岐に対して向き合う必要があると思います
細かいパーツが担保や把握されてれば、組み合わせても安心だよって考え方です。