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

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

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

時間もかかるし、レビューもあるし……いい加減になりがちじゃないでしょうか。

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

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

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

僕

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

テストコード とは?

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

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

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

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

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

テストコードのメリット

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

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

人の出入りが多い、継続的に保守していくプロジェクトでは取り入れたいです。

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

僕

あるある。

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

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

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

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

ざっくりまとめ

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

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

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

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

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

参考

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