こんにちは! ときです。>∩(・ω・)∩<
前回と同じく今回も近況をお話しします。ちょっと学習した内容を振り返るのは時間的に厳しそうです…
テスト演習で作成したプログラムの単体テスト
対象のプログラム1個が正しく動作しているか検証するテストのことを単体テストと呼ぶそうです。
通常、javaで書いたソースは複数のクラス(ここではプログラムと置き換えても同義なのでしょうか?)で構成されており、それらを組み合わせて処理を行っています。
ただ、複数のプログラムを実行してエラーが起きた場合は、エラーの原因がどこにあるのかは分かりにくいですよね。そこで、プログラム1個1個をテストしてあげて、原因をつぶしておこうという場合に単体テストを行います。
この工程を行ってから、複数のプログラムを組み合わせてテストを行う、結合テストというものに移っていきます。
仕様設計からこのテストまでの一連の流れを「V字開発」とも言うそうです。
もっとより詳しく知りたい方は、「V字開発」「単体テスト」などで調べてみてください。
研修しているときにも言われたのですが、自動車業界などモノづくりをしているところは、ほぼほぼこの考え方を用いているそうです。
僕の前職の同期も「単体テストがうまくいかなくて大変だよー!」とよく言っていたので、なるほどそういうことかと少し納得しました。
ちなみに、前職の自動車業界でV字開発の話をされるときは、「このモデルの考え方を自動車開発に取り入れれば、もっと効率的に工数が減らせる、斬新な考え方なんだよ!」という話しかたをされていたような気がします。(MBD:Model Based Developmentという考え方も最近流行っているそうので、その影響かもしれません)
こういう開発の考え方はITのほうが進んでいるのかな?とも思いました。
実際に単体テストをやってみると、思うようにテストを実行できないこともあり、苦戦していました。JUnitというものを使ってテストをすると、「SQLに登録していたデータがいつの間にか消えているぞ!なぜ…?!」、「いつまでも更新されないこのデータはいったい何者なんだ?!」なんてこともありました。
メソッドが順番に動かないことが原因だと分かり解決できましたが、単体テストは意外と難しかったです。前職の同期もこんな思いをしていたのかな…(笑)
次回くらいは振り返りに戻れるといいな……と思いながら今回は終了します。そろそろ最終回が近いですが、それまでお付き合いいただければ幸いです。
それでは!