こんにちは、管藤です!
さて、先週の研修ですが、「ユニットテスト」を行っていました。
ユニットテストとは、「プログラムを構成する小さな単位(ユニット)が、個々の機能を正しく果たしているか検証するテスト」です。
イメージとしては、コードに書いた関数やメソッドなどの部品単体が正しく機能しているか、テストツールを用いて一つ一つ確認する、といったところでしょうか。
今回はEclipse IDEに同梱されている、JUnitを使用してテストを行いました。
テストコードを書いて実行すれば、あとは自動でテストを実施してくれて、問題がなければ緑、あれば赤のバーが表示され、かつ問題点を教えてくれるという、とても便利なツールです。
あわせて、プログラム全体の命令や分岐のうち、どれぐらいテストで網羅されたかの割合(カバレッジ)も確認し、すべてを網羅するようにテストをします。
赤のバー:問題箇所あり💧 |
緑のバー:問題なし😀 |
今回私が行ったテストでは、データベースへのアクセス、データ取得・データ登録やファイルのアップロード、ダウンロード、削除、セキュリティ機能など・・・自分が各ソースに書いたメソッドを全て一つ一つテストしました。
実際にファイルやデータを操作するテストだけでなく、テスト項目によっては実際のオブジェクトに替えて「モックオブジェクト」を使用し、扱うオブジェクトの動作を模倣して、意図した動作をさせます。※モックとは「模擬の」という意味です。
カバレッジを100%にするためには、意図的にエラーや例外を発生させたり、想定外の入力値などを設定し、その処理が正しく出来ているのか試すことが当然必要です。
それがまた意外と難しく、すべてを網羅する条件設定にはとても時間を要しました・・・。
そして、ほぼ想定通りに動作していると感じていた自作システムですが、実際には想定していない条件で動作をするパターンがあったり、気づかなかったコードの不備があることがテストによって分かりました。
私たちが普段使用しているソフトウェアもこのようにテストされリリースされており、不具合もなく快適に利用できる裏にはこのような苦労があるのだと、思い知らされた次第です。
0 件のコメント:
コメントを投稿