TDD(テスト駆動開発)

NESさんと仕事したときに知った考え方

インサイドアウトの考え方

よくある勘違い

  • テストを自動化して開発効率をあげよう
    • 単体テストやっている余裕がないからやらない
    • 結合テストから自動化始めよう
  • 単体を疎かにすることで、AfterDoneバグ発生でなぜなぜ分析することになる

    ロケット製造における99.999%品質だと打ち上げ失敗する

    ねじ1本でも取っても侮れない

    それだけでもねじ外れて空中分解する

    それはどこからミスになるか?細かいパーツからになる

    つまり、我々でいうJestにおけるカバレッジが99%なら間違いなくバグの要因になるってこと

    いやいや、ロケットの話と我々のITエンジニア関係ないでしょ?って考える人向け

    一緒です!(死人出るかどうかは違うけどね)

    費用面で言えば、一緒です。何百人の従業員、利用者含めれば何千万となる。

    不具合による問題は、その何千万人にかかってくる可能性もある

    従業員だけでも不具合対応だけでも相当なコストになる

    なので、細かいパーツ単位でも因子と水準で直行表を作り、コード単位だけでなく分岐に対して向き合う必要があると思います

    細かいパーツが担保や把握されてれば、組み合わせても安心だよって考え方です。