2024年2月14日水曜日

研修内容報告~ユニットテスト~

こんにちは、管藤です!


さて、先週の研修ですが、ユニットテストを行っていました。


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

イメージとしては、コードに書いた関数やメソッドなどの部品単体が正しく機能しているか、テストツールを用いて一つ一つ確認する、といったところでしょうか。



今回はEclipse IDEに同梱されている、JUnitを使用してテストを行いました。


テストコードを書いて実行すれば、あとは自動でテストを実施してくれて、問題がなければ緑、あれば赤のバーが表示され、かつ問題点を教えてくれるという、とても便利なツールです。

あわせて、プログラム全体の命令や分岐のうち、どれぐらいテストで網羅されたかの割合(カバレッジ)も確認し、すべてを網羅するようにテストをします。


赤のバー:問題箇所あり💧


緑のバー:問題なし😀



各ソースのカバレッジが%表示で一目でわかる


コードの特定部分がカバーされたのかが色分けされる
緑:カバーされた、黄:パターンが網羅されていない、赤:未実行

今回私が行ったテストでは、データベースへのアクセス、データ取得・データ登録やファイルのアップロード、ダウンロード、削除、セキュリティ機能など・・・自分が各ソースに書いたメソッドを全て一つ一つテストしました。


実際にファイルやデータを操作するテストだけでなく、テスト項目によっては実際のオブジェクトに替えて「モックオブジェクト」を使用し、扱うオブジェクトの動作を模倣して、意図した動作をさせます。※モックとは「模擬の」という意味です。


カバレッジを100%にするためには、意図的にエラーや例外を発生させたり、想定外の入力値などを設定し、その処理が正しく出来ているのか試すことが当然必要です

それがまた意外と難しく、すべてを網羅する条件設定にはとても時間を要しました・・・。


そして、ほぼ想定通りに動作していると感じていた自作システムですが、実際には想定していない条件で動作をするパターンがあったり、気づかなかったコードの不備があることがテストによって分かりました。


私たちが普段使用しているソフトウェアもこのようにテストされリリースされており、不具合もなく快適に利用できる裏にはこのような苦労があるのだと、思い知らされた次第です。




【あとがき】

札幌は急に大雪が降ったかと思えば急に気温が二桁になるような荒々しい天候ですが、皆様いかがお過ごしでしょうか。

我が家は先日の大雪後に、膝上まで積もっている公園へ赴きひたすらソリ滑りをしました。

転んだら結構埋まりそうで、それなりに恐怖な感じでしたが・・・

キッズたちはお構いなしに雪に突っ込みひたすら楽しかったようです。

弊社の休日はカレンダー通りとなっておりますので、プライベートの時間を確保しやすいのも魅力の一つだと思います。

ではまた次回もよろしくお願いいたします。

0 件のコメント:

コメントを投稿