すがブロ

sugamasaoのhatenablogだよ

テストっていろんな考え方があるよね!

今日

会社で先輩(PL)と激論(っつーか普通に話し合っただけだけど)。テスティングフレームワークによるテストケース作成の是非について。
マジいまどき単体テストを手動でやったほうが早いし楽とか言われるとは思わなかった。
確かに、本当に一度切りしか実行しないなら手動の方がコストが安く済むかもしれないが、それってなんて夢物語?
そして、それをオッサン世代に言われるならともかく、まだ20代の先輩に言われる(;゚Д゚)
というわけで、気晴らしに@ITの↓の記事を見て自分のプロジェクトはどうなのか考えてみた*1
常時結合のススメ − @IT
http://www.atmarkit.co.jp/fdotnet/nagile/nagile05/nagile05_04.html

常時結合を実践するための6カ条

常時結合するための〜とは謳っているけど、実際のところ、単純作業を自動化することでオペレーションミスによる作業の中断やバグを無くし、ソースに改修が入っても常にテストが実施されることで常に一定の品質を保てるはずなので、普通に行うべきだと思うんだよなぁ。

  1. ソース・コード管理システムを利用すること
  2. ビルドを自動化すること
  3. テストを自動化すること
  4. 単体テストが正常に通過することを確認してからチェックインすること
  5. 一度チェックアウトしたコードは遅くてもその日のうちにチェックインすること
  6. 問題が発生した場合はすみやかに解決すること

では自分のプロジェクトで見直してみよう

  1. なんとかSubversionを導入させました(ノウハウが無いので運用ルールが微妙)
  2. rubyだからビルドは必要無し?(自動でサーバへ導入される方法は確立しなきゃならん)
  3. テストは手動でやるとかほざいてるので自動化できません。おれがやるとところは意地でも自動化させるが。
  4. 製造→単体テスト仕様書→単体テストウォーターフォールモデルなので
  5. (上の続き)作成・改修を行い、単体テスト済みになるまで1〜2週間かかる*2
  6. ITフェーズ以降はすぐにソースは触れません

結論

アジャイル的とはほぼ正反対の位置に居ます。
しかも、今週からソースを触ろうかという勢いなのに、開発用のソース提供が今週なワナ。今までは製品出荷版からソースを引っ張り出してきていたのでした。。。(バカ丸出しだッ!)

*1:ちなみに、開発プロセスウォーターフォールです。それしか知らないみたい

*2:ここが一番ネック