読者です 読者をやめる 読者になる 読者になる

asaのブログ

プログラミングの勉強まとめ

単体テストについて

 本を読んだり、サイトを参考にしていると未だにわからない単語がほいほいと出てきます。それらを1個1個つぶしていこうと思います。そういうわけで、今日はまず単体テストを取り上げようと思います。

 

 単体テスト

 引数のデータの組み合わせ計算結果が正しいか、DBに正しいデータが登録されるか、例外が発生した際の振舞いが正しいかを見ます。

 

 要するにある大きな機能が存在して、それが相互に依存関係にあるときに、それらを分離して一つ一つの機能単位で正しく動くかを見ていくということだと理解しました。具体的には書いたメソッド(単体)がきちんとした結果を返すか、条件分岐を正しく通るかということを確かめればよいようです。

 

 まず、テストを行う際、機能単体を切り出すために、それを呼び出すためのコードであるドライバーと、テストコードが呼び出すコードを代替するスタブを作る必要があります。

 

 またテストのポイントとしては、テストはブラックボックスとホワイトボックスの観点から行われます。ブラックボックスは、入力値に対して出力値が正しく出力されるかを見るテストです。ホワイトボックスは、条件分岐などが正しく行われているかのメソッドの中身を確認するテストです。

 

 ブラックテストで流す値は境界値、固定値、異常値です。境界値は流す予定の値の最大値、最小値です。固定値はminとmaxの間の値です。異常値はnullやブランク、半角/全角スペース、0などです。他には最大、最小値の外の値、違う型の値などです。

 

 ホワイトボックスでは、条件分岐などのパスの一覧を上げ、それを一つ一つつぶしていくこと機能の安定性を保証します。

 

 これらのテストは行った都度、実施した内容をまとめおくことで確認漏れを防ぐことができます。

 

 またテストを自動化するツールとしてJavaにはJUnitが存在します。JUnitの基本的な使い方については最後のサイトが一番参考になりました。

 

 以下参考にさせていただいたサイト

qiita.com

www.infiniteloop.co.jp

www.techmatrix.co.jp

tong-chang.hatenablog.com

gihyo.jp