システム開発のテストを効率化する自動テストと回帰テスト

2015年11月6日に投稿 → に更新

テストOK!

「テストってめんどくさいよな…」
「テストっていくらやっても安心できないんだよなぁ…」
「テストの精度を上げられたらトラブル減らせそうだよな…」

テストが大事なことは分かっていても、

  • 「納期まで時間がないし…」
  • 「めんどくさいし…」

という理由でテストに十分な時間や労力を掛けていないプロジェクトはよくあります。

炎上してるプロジェクトに限って、テスト要員に新入社員を大量投入してたりしますよね。

一方でプログラムをテストするためのプログラム(自動テスト)を書いて、ビルドする度に自動的にテストも実行されるような仕組みを導入しているプロジェクトもあります。このような仕組みは継続的インテグレーションと呼ばれていて、ツールや方法論も多数あります。

私の個人的意見としては自動テストも、導入すべきプロジェクトとそうでないプロジェクトがあるように思います。

そんなわけで、今回は「システム開発のテストを効果的に行う方法」を紹介します。

新規開発とリリース後の機能追加ではテストのやり方も変わる

新規開発のテスト

新規にシステム開発する場合は、テストケースも新規に作成しますよね。仕様通りに動いているかを確認するためのテストケースを一つ一つ起こしていきます。

追加機能のテストには、回帰テストも必要

それに対して、リリース後の機能追加時に行うテストは、新規追加した機能を確認するテストケースを作成して実施するのに加えて、既存機能が今回の機能追加によって影響を受けていないかをテストする必要があります。

既存機能が壊れずに正常動作していることを確認することを回帰テスト(リグレッションテスト)と言います。

ということで、機能追加の場合は
追加機能分のテスト + 回帰テスト
が必要になります。

そして、この回帰テストは機能追加する度に何度も繰り返し行います。ですから、この部分を自動化するためにテストコードを書くべきなのです。

プログラムをテストするプログラムとは

JavaだとJUnitっていうテスティングフレームワークが有名です。

例えば、

のようなプログラムをテストするコードは

のようになります。
CalcTestを実行すると、assertEqualsメソッドで戻り値が想定通りの値かどうかを判定します。想定通りの値であればテストOKと表示されます。

違っていればテストNGと表示されます。

人の手でテストするのではなくテストをするプログラムを作ってプログラムにテストをさせているんです。

「テストコードが正しいかはどうやってテストするんだ?」

っていう禅問答みたいな疑問は沸いてきますが、間違ったテストコードを書けば想定通りの判定結果にはならないはずなのでうまく機能します。

こうやって、テストを自動化しておけば、機能追加の度に行う回帰テストを自動で行わせることが出来ます。

ですから、テストを自動化する時のポイントは何度もそのテストを行うかです。

受託開発などで、「一度納品したら、その後の機能追加は発生しない」というような場合はテストを自動化しなくても良いでしょう。テストコードを正しく書いて実施するのは意外と時間が掛かりますからね。

何度も繰り返しそのテストコードを実行するならば、少し時間と労力をかけてでもテストコードを書いた方が良いので、労力と得られる効果のバランスを考えて、テストを自動化するかを決めると良いでしょう。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 仕事術