単体テストは、主に開発者がプログラムの実装直後に実施するテストです。このテストでは、コードの内部構造を意識した「ホワイトボックステスト」がよく用いられます。ホワイトボックステストでは、プログラム内のすべての条件分岐(if文など)や繰り返し処理が意図通りに実行されるかを確認します。単体テストの自動化には、JUnitやpytestといった「xUnit」と呼ばれるテストフレームワークが広く使われています。テストを自動化しておくことで、コードを変更した際に他の部分が壊れていないかを瞬時に確認する「回帰テスト(リグレッションテスト)」を容易に行うことができ、開発の生産性と品質が大幅に向上します。また、単体テストを行うことで、プログラムの仕様上の矛盾や考慮漏れ(境界値の処理ミスなど)を早い段階で発見し、修正コストを最小限に抑えることができます。
ITパスポート試験では、ソフトウェア開発プロセスの流れにおける単体テストの位置づけが問われます。テスト工程は「単体テスト → 結合テスト → システムテスト → 運用テスト」の順に進むことを整理しておきましょう。また、開発者自身がテストを行うことが多い点や、モジュール(部品)単体の動作を確認するという目的をしっかりと押さえてください。間違いやすい点として、システム全体を動かして性能や業務要件を確認する「システムテスト」や「運用テスト」との違いがあります。単体テストでは、データベースとの連携や外部システムとの接続は行わず、スタブやドライバといったテスト用のダミー部品を用いて、対象のモジュールのみを隔離してテストを行うという特徴も重要です。
結合テスト、システムテスト、ホワイトボックステスト、回帰テスト