一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • 【エンジニア向け】テストコードとは? 概要説明

こんにちは、システムエンジニアの福冨です。

エンジニア歴は当記事作成時点で8年、まだまだ若輩者ですが日々邁進しております。
また3歳の娘を育てている状況下でもあるので、そういった家庭事情と仕事の両立方法やノウハウ、マインドといったところもお伝えしていければと思っています。

今回はこれまでの環境まわりの話とは変わって、エンジニアの技術的な面について記述しようと思います。
私事ですが、現在の案件で初めてテストコードというものに触れたため、初見の視点での学習記録をしたためようと思った次第です。
(エンジニア歴8年で初めて、という点がいささか恥ずかしくも感じますが…まぁ、これまではそういう案件だったということで笑)

今回はタイトルの通り、テストコードの概要のみ説明していきます。
前述の通り私も勉強中の段階ですので、もし内容に相違がありましたら是非ご指摘ください。

テストコードとは?

テストコードとは、その名の通り「プログラムのテストをするためのコード」です。
一般的にプログラムのテストというと、手動でテストデータを用意して、実際にプログラムを動かしてみる…といったものになりますが、
これをコード上で行なってくれるようになるのです。

テストコード使用例

例えば「渡された2つの引数(AとB)で足し算をして、計算結果を返すプログラム」があったとします。

これをテストするとした場合、以下のパターンが考えられます。

  • 引数Aの最小値 + 引数Bの最小値
  • 引数Aの最小値 + 引数Bの最大値
  • 引数Aの最大値 + 引数Bの最小値
  • 引数Aの最大値 + 引数Bの最大値

※0やマイナスなどの境界値も本当は必要ですが、あくまで例なので簡潔にしています。

これらのパターンに当てはまるようにプログラム上で入力したり、データを用意するとなると、以下のコストがかかります。

  1. プログラム画面上の操作が必要な場合、毎回操作する必要がある
  2. データ準備が必要な場合、前もってデータの作成およびプログラムへの取込が必要になる
  3. 案件によっては各テストパターンごとのエビデンス(実行時の画面キャプチャ等)が必要

当たり前ではあるものの、なかなかに面倒で手間ですよね…。
そこでテストコードの出番です!

テストコードを使うことで得られる利点

テストコードでは、任意のプログラムに対して、任意の引数や環境でテストができるようになります。
テストコードの記述をするという点では準備が必要であることに変わりはありませんが、一度記述さえしてしまえば、あとは実行するだけ。
使用するテストコードの種類にもよりますが、たいていはログ出力ができますので、それがそのままエビデンスになります。
よって、先ほどのコストについては…、

  1. プログラム画面上の操作が必要な場合、毎回操作する必要がある
    →一度テストコードを記述してしまえば、その後は実行ボタンを押すだけ
  2. データ準備が必要な場合、前もってデータの作成およびプログラムへの取込が必要になる
    →テストしたいプログラムの設定値をテストコードに直接記述するため、データの用意は必要ない
  3. 案件によっては各テストパターンごとのエビデンス(実行時の画面キャプチャ等)が必要
    →テストコード実行時のログがエビデンスとして機能する

と、すべてを解決できるのです!
エンジニアは面倒を避けるために全力を尽くす生き物。使わない手はありません。

ですが一見便利に見えるテストコードにも弱点や注意点があります…。
これはまた次回、ご説明いたします。

ここまでお読みいただきありがとうございました。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア