コツコツ学習ブログ

プログラマのweb上のメモ的なもの

PT(単体テスト)について(初心者向け)

※昔に書きっぱなしでそのままにしてあった記事を公開することにしました。 単体テストってなんでやるの?ってぐらいの現場未経験の方向けぐらいの 事しかかいてませんのであしからず.. PTのやり方以上に、過不足ないテストケースをかけることが重要ですね、、

最近、現場でPTを書くことが多いです。 PTはプログラマーにとって重要かつ不変なスキルだと思うので、しっかり学ぼうと思っています。 参考図書は下記。

経験ゼロでもできるプログラミング現場の単体テスト | 片桐 一宗 |本 | 通販 - Amazon.co.jp

なぜ単体テストを行うの?

単体テストを行う現場、会社はまちまちですが、個人的には 書くべきだと思っています。 また、PTにおいてテストケースを作成せず、デバッグなどで確認するところもありますし 場所によってテストの基準もまちまちですが、 良いプログラマ になるためには、テストケース、テストプログラムがちゃんと描けることは非常に重要と思います。

なぜなら、PTでないと確認できない機能や状況もあります。 例えば、サーバからデータを取得して表示させる機能があったとして、 サーバのテーブルがまだ作成されておらず、その担当は別でまだテストできない、とかの場合(実際よくある) PTであればモック(仮のふるまいをするデータオブジェクトのようなもの)を使えばテストができます。

逆に、PTをしないとそのまま結合テストなどに突入し、そこらじゅうでバグが爆発し PJメンバー全員ぷぎゃあみたいな状況になるからです。

何よりも、プログラマーとしてその状態にしておくのは非常に恥ずかしいです。 ただし、熟練プログラマーがいる場所では意外と書かなかったりします。

その人のレビューで、ちゃんとフィルタかけられるからです。 ただし、その人がいなくなれば全員いろんな意味でぷぎゃあです

テストクラスとは?

Javaでは、クラス単位でPTを行います。 テストクラスとは、テスト対象のクラスの機能を確認するために 作成するクラスです。 JUnitという単体テスト用の機能があるので、そちらを使って 対象の機能が期待通りに動作するかを確認します。

継続的インテグレーション(CI)

CIはContinuous Integrationの略です。 テストの自動化ツールのことでJenkinsやCircle CIが有名です。 完成したコードを構成管理サーバにコミットすると、 自動的にビルド、テストを行ってくれるものです。

実は僕はまだつかっったことがないので、タイミングあれば個人で 使ってみたいです。