テスト駆動デバッグ

社内でテックランチ(お昼を食べながら技術的な話題について議論する会)を行ったときの資料です。

========================================
テスト駆動デバッグ
========================================

----------
特徴
----------

- デバッグを始める前にまずテストを書く
- テストが通ったらそこでデバッグは終了。いちいちブラウザで確認したりしない

----------
メリット
----------

- エラーの再現手順が明確化される
- テストケースが自然に増える
- デグレードが防げる
- エラー処理をまじめに考えるようになる

----------
デメリット
----------

- 少し余計に時間がかかる
- テストの書きにくいタイプの処理をデバッグするのには不向き

テスト駆動デバッグでは、デバッグの流れはこんな感じになります:

  1. バグ発見!
  2. バグを再現するテストを書く
  3. できたテストを実行してみて失敗することを確認する
  4. 〜ここでようやくデバッグ
  5. テストが通ればその時点でデバッグ完了

Pyxis では buildbot による自動テストも行っているのですが、テストケースを書く場合は buildbot と組み合わせることでさらに高い効果が得られます。特に、テスト結果が視覚化される→テストを書くモチベーションが上がる→テストケースが増える→自動テストの段階で新たなバグが即座に発見されるようになる→テストを書くモチベーションが上がる、という好循環が生まれることは大きな利点だと思います。

buildbot については、いずれ改めて書きます。

Enjoy testing!

by id:knzm