テストコード

※あっ、プログラマーネタです

「動いてるプログラムコードは弄るな」というプログラマーの金言があるのですが、動いてるけど一部修正&機能追加をしないといけないという事がメンテナンス期間が長いプログラムだと往々に発生します。

ゲーム系は特にですが昔は「一度作ってしまえば終わり」だったのですが、最近はオンラインでパッチが当てられて忘れた頃のプログラム修正が増えてます。忘れた頃なので細かい内容を忘れているのでプログラム修正中に新しいバグを混入する確率があがるのです(最近身に覚えが。 なんとかできないかなーっとなって解決策の一つとして出てくるのが「テストコード」を書くという事です。

「テストコード」って何かと言うとプログラムで
 「1+1」
というプログラムがあったとしてコレが「2」になる事を確認するプログラムを書くという事です。そうする事で後でプログラムを弄って間違えて「1+1=3」になってしまうプログラムを書いてしまってもテストコードで失敗するのですぐにバグに気づけるのです。こうする事でバグの少ないプログラムを書く事ができて良いのですが、なんでもかんでもテスト書くと「プログラムコード+テストコード」で作るプログラムコードが2倍以上(実際はもっともっと)増えてしまうので考えものです。仕様変わる度に2倍以上コストがかかるし。。。。(バグが減る分である程度相殺できるとは思うけど。。)。 

個人的な落とし所は
 ・動いてるプログラムに変更を加える時にはテストコード書いて変更前と変更後で動作が変らないかチェックとして書く。
 ・バグの修正時に同じバグがでないようにチェックとして書く
とかかなーっと。この辺りはプログラマー&実装内容とかで大分違うと思いますが。

プログラマーの方でC++でテストコード書くなら「googletest( http://code.google.com/p/googletest/ )」が個人的にはオススメです。




K.K