blog 開発

【Java開発】テストの方法や種類を紹介〜JUnitとは

こんにちは!
タスク管理アプリもある程度開発が進んだので、テスト方法について調べていきます!

本気の内容

  • アプリ開発でテストを行う理由
  • 具体的なテスト内容
  • テストの方法

上記を見ていきましょう!

アプリ開発においてテストを行う理由

アプリのリリース前にテストを行う理由は次の2点です。

ポイント

  • エラーを無くす
  • 品質の向上

エラーを無くすため

アプリ開発をしている方は理解ができると思いますが、とんでもなくエラーが出ます。
そのため、テストをして発生する可能性のあるトラブルを事前に確認し、エラーを避けることができるのが、テストです。
エラーが存在したままリリースをしてしまうとクレーム対応や修正作業に追加費用と労力がかかってしまうので、個人単位でなく企業単位で考えるととんでもない損失になりかねないので、ダメージを最小限に抑えるためにも必要な工程です。

品質の向上

適切なテストを実施することでアプリの品質を向上させることができます!
品質が低い製品を市場に出すと、顧客満足度が低下し、それが広範囲にわたる普及の妨げにもなります。
したがって、品質の向上は業績に直接影響する重要な要素!

しかも入れたアプリが使いにくかったり、エラーばっかり出るアプリだと、すぐアンインストールして再ダウンロードしないと思うので、最初もかなり重要

すずき

テストの重要度がわかったと思うので、テストの種類を見ていこう!

アプリ開発におけるテストの種類

アプリ開発のテストには大きく分けて「単体テスト」「結合テスト」「システムテスト」の3つがあります。それぞれのテスト内容について簡単に解説します。

1.単体テスト(ユニットテスト)

単体テスト(ユニットテスト)は、各プログラムの機能が正確に動作するかを確認するテストです。

クラスや関数で設計通りに機能するか、論理構造が適切かどうかを確認するテストです。
単体テストはモジュール結合をする前段階で行うので、問題点があっても修正がしやすいのが特徴。

開発全体のバグがあとから発覚し、修正するのは大変だけど、単体テストの段階で問題を発見できれば修正コストを大幅に削減できる!!

モジュールとは、ソフトウェアを構成する部品のこと
小分けにされた部品ごとにテストを行うイメージ

2.結合テスト

結合テストは、単体テストで検証した複数のプログラムを同時に稼働させて行うテストです。

結合テストを行うには単体テストがすべて終了していることが前提!
結合テストでは単体でのテスト項目はほとんど行わず、動作を確認し、操作と機能動作の組み合わせが適切か、仕様書通りの仕上がりになっているかどうかを念入りにチェックするテスト!

3.システムテスト(総合テスト)

システムテストは単体テスト、結合テストを終えたあとの最終段階のテストです。

すべてのプログラムとハードウェアを合わせてシステムを全体的にチェックし、開発した通りにシステムが機能するか、仕様書通りの性能要件を満たしているか、本番と同じ使用環境でさまざまな角度から確認するテスト

開発段階では見えなかったバグや、ハードウェアの環境に関連する不具合を見つけることができます!

すずき

今回は、大規模システムでないし、案件入っても単体テストが一番行うと思うので、単体テストの方法を学んでいきます!

単体テストの方法

すずき

今Javaでアプリ開発をしているので、Javaのテスト方法を調べてみたよ!

単体テスト

JUnit

  • Javaで最も広く使用されている単体テストフレームワークです。
  • テストケースを簡単に作成でき、アノテーション(@Testなど)を使ってテストメソッドを指定します。
  • 繰り返しテストや例外テストなど、さまざまな種類のテストをサポートしています。

Mockito

  • 依存関係を持つクラスのモック(模擬オブジェクト)を作成し、テストの際に本物のオブジェクトの代わりに使用することができます。
  • モックを利用して、テストするクラスが他のクラスとのインタラクションを正しく行っているかどうかを検証できます。

Hamcrest

  • アサーションのためのマッチャーライブラリで、JUnitと組み合わせて使用されることが多いです。
  • より読みやすく、表現力豊かなテストコードを書くことができます。

TestNG

  • JUnitに似ていますが、より多機能で、並列テストの実行やより複雑なテストシナリオの管理が可能です。
  • 大規模なテストスイートに適しています。

今紹介した、フレームワークやライブラリを使用して、テストを行います。

JavaではJUnitが一番主流なので、JUnitを使用しましょう!
下記サイトがJUnitのやり方を細かく紹介しているので、こちらを参考に作成していきましょう!

おおまかに説明すると手順は下記

テストの手順

  • テストをするクラスを決定
  • テストコードを作成
  • テストを行う
  • 網羅率を確認(if文などの全ての条件を通っているか)

上記をテストで行い、品質向上をしていきます。

次回の記事は、JUnitを実際に使った記事を作成するので、お楽しみに。

  • この記事を書いた人

鈴木陽介

現役Javaエンジニア

2000年生まれ

もうすぐ書籍を出版します。

-blog, 開発