2015年3月3日火曜日

大学の講義では、一番大切な技術を教えてくれない

気がついたら年が明けてしまいました。

前の更新から丸半年経った現在、
私は今の勤め先でシステムのテストを担当することが多くなったわけですが

追加開発をした後テスト仕様書を作成して単体・結合テストからシステムテストまで私は1人でやってます。

テスト仕様書を作るときなんかは、引き継いだ人の誰が見ても分かりやすく観点もMECEを心がけて残しています。(それでもなお上長のレビューで過不足している観点があったりして書き直しているわけですが)
テスト仕様書を作り終わったら今度はテスト自動化の為のテストコードをがりがり書いているわけです。

普段仕事では、Javaを使っているのでテスト自動化ツールはJUnitとか。
あとWebシステムのテスト自動化ツールとしてJenkinsとかSeleniumとか使っています。

とても地味な作業ですが確りしたシステムを構築するためには必要な工程です。


しかし夜、一人でテストコードを書いていてふと学生だった頃を思い出しました。

私は一技術大学学生でしたので
オブジェクト指向がどうこうのとか、クラスライブラリがどうなってるとか、
構築の話にばかり焦点が当てられ、テストや運用はあまり触れられておらず、
テストや保守の奥深さも知ることができませんでした。

Webシステム開発の演習という授業がありました。

当時はプログラミングの授業の中では、
実践に近い環境で企画から設計からコーディングまでして発表するプログラミング好きな大学生にとってはおいしい授業でした。

しかしそんなおいしい授業は成果物にだけ焦点が当てられ、その過程のテストだとか保守のしやすさとかは評価されません。


システム開発はどうやって手間をかけないで運用するとか。
どうやって自動でテストするようにするとか。
どうやってコードを書かないで、期待通りに効率的にシステム化するとか。

今思うとそういう中身のない、コスト面も運用面も品質も全く無視でただ作ることが目的になっている演習でした。


大学の講義でこそ、
テストの大切さと奥深さを教えたほうがいいのでは、

と思いながらテストケースを書いている日々でした。