【初心者向け】よく分からん「テストコード」についてまとめてみた。

タブレットで分析する人 IT関連

あなたの現場では、テストコードを書いていますか?

単純に「実装+テストコード」で手間が2倍になるし、レビューもあるし……。

時間が掛かるあまり、いい加減になりがちの現場が多いです。

少なくとも私が経験した現場では、テストコードを書いていませんでした。

それに伴い、私自身テストコードを書いたことがありません。

今回は、学習も含めてテストコードを書く意義についてまとめてみました!

僕

私と一緒に、1つずつ学んでいきましょう!

テストコード とは?

一言で言うと、自分の書いたコードが、想定通りに動いているか確認するためのもの です。

プログラミングできても、それが想定通りに動いていなければ、やってる意味がありません。

例えば「このAメソッドは、引数の2つの値を足して返す」という機能を作ったとします。

であれば、「1と2を渡したら3で返ってくる」ことを確認するのがテストコードとなります。

テストコードの説明図

主に単体テスト(メソッド単位)で使われてるようですね。

テストコードのメリット

以下のようなことが挙げられます。

  • 開発者の意図が概ね掴める
    • ある機能の想定している動きを元にテストコードが書かれるため、仕様書代わりになるなります。
  • 上で挙げた例のように、足し算する機能なんだな、という風に。
    • 対応確認がすぐできる
  • 不具合対応をしたら、テストコードを実行して対応の確認が行えます。
    • 不具合再現がすぐできる
    • ある条件下で不具合が起きる場合、その値に置き換えてテストコードを実行すると再現できます!

プロジェクトメンバーの流動性が高い、継続的に保守していくプロジェクトであれば取り入れたいところです。

エクセル仕様書をたくさん管理するようなところに、無駄なリソースを割きたくないですよね……。

僕

エクセルのテスト仕様書…

根深いです。

テストコードのデメリット

以下のようなことが挙げられます。

  • 継続的なメンテナンスが必要
    • 仕様変更があった際に、そのままにしておくとゴミコードになってしまいます。
    • テストコードを書くことを決めておくなどプロジェクトルールとしていないと、メンテナンスし続けるのは難しそうです。
  • コスト(時間)がかかる
    • コードを書き、さらにテストコードを書くので倍近くの時間がかかることになります。
    • 品質担保のためとはいえ、時間がかかるのはネックです。

時間をかけて品質を上げていくか、最低限の品質は保ちつつスピード感を重視していくかは、判断の悩みの種になります。

ざっくりまとめ

テストコードは、自分が書いたコードが想定通りに動いているか確認するためのもの。

メリットは、仕様書代わりになる!確認する時が楽!

デメリットは、単純にコード書く時間が倍になる!

とある会社員
とある会社員

クライアントが品質を担保して欲しい場合は、工数と見積金額が必然的に上がります。

次にオススメ

SQLの構文、意外と忘れがちですよね。私は理解したつもりになってます🤗

こちらの記事で復習してみませんか?

【イラストで分かる】初心者が知っておくべきSQL文を学ぼう!
SQL文の基本をイラストで解説してみました。 なんでもイメージすることが大切です!

参考

【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita
はじめに 「テストコードを書きましょう」とはよく言われるし、テストコードが大事だってことも理解できるんだけど、何をテストしたらいいの?どんなテストを書いたらいいの?と迷っている初心者プログラマさんは意外と多いのではないでしょうか...
タイトルとURLをコピーしました