見出し画像

ユニットテスト に関する memo

◆ユニットテストはいつ、なぜ使うものなのか?

ユニットテストとは、プログラムを構成する比較的小さな単位(ユニット)が機能を正しく果たせているかを検証するテスト。

このテストを作る目的は以下。

  • コードに欠陥を作りこむのを予防する

  • コードの欠陥を発見する

  • コードが正しく変更されたことを確認する

ユニットテストを作るタイミングはいつでもよい。
テストを先に書く開発の仕方をテスト駆動開発という。

テスト駆動開発のリアルな所感を見つけたのでメモしておく。

テストファーストは仕様を先に明確にしておくことで、実装が迷走しにくくなるという点ではよい方法だと思う。

ただ、これは個人的な経験ではあるが、新しい機能のコードを書く場合、テストファーストはうまく機能しないことが多かった。新しい機能場合、一度仕様を明確にしたつもりでも、あとで矛盾に気づいて変更を余儀なくされることが少なくない。仕様変更によってそれまでに書いたユニットテストは使えなくなり、無駄となってしまった。

https://qiita.com/takutoy/items/c684f761c655d832e5d2

◆ユニットテストの仕組み

プログラム全体ではなく、プログラムを構成するモジュールを個別にテストするため、テスト対象のほかドライバーやスタブといった付加的なコードが必要になる。

ドライバー
テスト対象のコードを呼び出すコードの代用

スタブ
テスト対象のコードが呼び出しているコードの代用。
呼び出し先のコードがまだ作成されていない場合などに使用される。

◆その他

ユニットテストにもホワイトボックステスト、ブラックボックステストが存在する。

ユニットテストのホワイトボックステスト
テスト対象の内部構造に着目する。条件分岐や繰り返しなどの各部分をテストする。

ユニットテストのブラックボックステスト
テスト対象の外から見た機能(入出力)に着目し、コードが期待される機能(仕様)を満たしているかどうか検証する。

この記事が気に入ったらサポートをしてみませんか?