実践 アジャイルテスト第7章を読んでみた

読書会が震災の影響でドタバタしているので、とりあえず読んだ感想を書いてみる。

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)

インフラ支援

7.1.2 インフラによる支援のところで

確かなソースコード管理、構成管理、継続的インテグレーションは、開発を先導するプログラマのテストから価値を得る際に欠かすことができません。

とあるんだけど、構成管理って何意味しているのかが分からなかった。このあとの文章にも説明がなかったので、?なまま突き進む。

ソースコード管理(Subversionとか)とか継続的インテグレーションJenkinsとか)はもう、開発会社のインフラとして用意してくれていいと思う。メールと同じぐらいの扱いで。

また、インフラ支援って書いてあるけど、教育も必要かなと最近考えています。例えば、ソースコード管理の考え方とか、使い方。継続的インテグレーションの使い方とか。これ、知らなくて共有フォルダで「コピ〜」が頭にたくさんついているフォルダを作りまくっているようなところが結構あります。新人教育のカリキュラムの一つとして取り入れてくれないかな。

また、インフラ支援ってあるけど、継続的インテグレーションは、「導入してハイおしまい」ってだけではない。継続的インテグレーションは誰も見ないって状況があり得る(そして、今それで悩んでいる)ので、どうやって見させて結果をソースに反映させるかが重要。メールは埋もれてしまう傾向が強いので、効果ないし。エラーが起きたら、誰かが優しく通知するって仕組みが必要なんだろうか。なんかいい手はないものだろうか。

継続インテグレーションやビルドプロセスを10分以内に収めるには

継続インテグレーションやビルドプロセスを10分以内に収めるためにはっていうのが参考になった。うち、ビルドプロセスだけで20分はかかり、テストまで含めると1時間を越える。これに対する回答として、

  • データベースアクセスをやめて、フェイクオブジェクトを使うことにする
  • 時間がかかるインテグレーションやデータベースアクセスのテストは2次ビルドやテストのプロセスに回す。
  • 並列実行
  • 複數のビルドマシンにタスクを割り当てる
  • 速いマシンを導入する。

が挙げられている。

速いマシンや複数のビルドマシンはなかなか難しいので、出来ることから考えたいな。データベースアクセスはインメモリDBの活用もあるかなと思ってます。
あとは、2次ビルドに何を持っていくか、1次ビルドは何をするかを決めることが難しい。1次ビルドはビルドが成功する・失敗するだけに絞ったほうがいいのかな。参考までに他のプロジェクトではどうしているのかを知りたいな。