
本コースは私が講師を務める「レッツラーンシリーズ」の一つです。
本コースの内容は、ソフトウェアテストの基本的な考え方から始まり、JUnit 5を中心としたJavaベースの様々なテスティングフレームワーク(以下)の利用方法を詳細に解説します。
JUnit:xUnitテスティングフレームワーク
Mockito:モッキングフレームワーク
DBUnit:DBテスト効率化のためのJUnit拡張ライブラリ
Spring Boot Test:Spring BootのためのJUnit拡張ライブラリ
RestAssured:RESTサービスのためのテストライブラリ
WireMock:モックHTTPサーバー作成ライブラリ
Selenium(Selenide):WebブラウザのUIテスト自動化フレームワーク
Gatling:負荷テストフレームワーク
またAppendix(補足)として、GitHub ActionsによるCI/CDパイプラインの構築方法や、Chat GPTを活用したテスト効率化手法についても取り上げます。
本コースを修了すると、大規模な企業システムやWebサービス開発において、テスト技法や自動化手法に精通した専門性の高いエンジニアとして活躍することが可能になるでしょう。
本コースの範囲は、以下のとおりです。
Chapter 1.1 - ソフトウェアテストの概要
Chapter 1.2 - 単体テストの手法と戦略
Chapter 1.3 - 結合テストとシステムテスト
Chapter 1.4 - テスティングフレームワーク
Chapter 1.5 - CI/CD
Chapter 2.1 - JUnit5による単体テスト
Chapter 2.2 - 単体テストにおける「依存性注入」とテストダブルの利用
Chapter 2.3 - JUnitの開発環境
Chapter 3.1 - Mockitoによるモッキング
サンプルコード実演:Chapter 2.x~3.x(JUnit 5、Mockito)
Chapter 4.1 - DBUnitによるデータベーステスト
サンプルコード実演:Chapter 4.x(DBUnit)
Chapter 5.1 - Spring Bootアプリケーションの単体テスト
サンプルコード実演:Chapter 5.x(Spring Boot Test)
Chapter 6.1 - RestAssuredによるREST APIのテスト
Chapter 6.2 - WireMockによるモックサーバー構築
サンプルコード実演:Chapter6.x(RestAssured、WireMock)
Chapter 7.1 - SelenideによるWebブラウザのUIテスト
サンプルコード実演:Chapter 7.x(Selenide)
Chapter 8.1 - Gatlingによる負荷テスト
サンプルコード実演:Chapter 8.x(Gatling)
Appendix 1 - GitHub Actionsとコンテナを活用したCI/CD
サンプルコード実演:Appendix 1(GitHub Actionsとコンテナを活用したCI/CD)
Appendix 2 - 生成AIのテストへの活用
Appendix 3 - 開発環境全部入り仮想マシンのセットアップ手順
なお、本コースは言語としてのJavaをある程度理解していることを前提にしています。もしJava言語そのものへの理解が不十分であると感じた場合は、私が講師を務める同じシリーズの別コース(以下)の受講をご検討ください。
Java Basic編:Javaの文法、オブジェクト指向開発のための様々な技法(抽象化、カプセル化、多態性など)、Java SEの基本的なAPI(文字列、正規表現、列挙型、例外、コレクション、日時など)
Java Advanced編:Java SEと呼ばれる仕様の中で、高度で応用的な仕組み(マルチスレッド、ラムダ式、ストリームAPI、ネットワークプログラミング、総称型、レコードクラスなど)
本コースの開発環境について
本コースでは、学習に必要な開発環境を、Oracle VM VirtualBox(以降VirtualBox)の仮想マシンとして提供します。
受講生の皆様に実施いただくのは、VirtualBoxをインストールし、講師のGoogleドライブからダウンロードした「仮想ハードディスクファイル」を読み込む、という手順を踏むだけです。これで本コースで紹介したすべての作業やテストを、自分で簡単に試すことができます。
本コースの開発環境は、仮想マシンとしてUbuntu(22.04 LTS)上に構築されています。この仮想マシンをVirtualBox上で動作させると、以下のリソース一式を、セットアップされた状態ですぐに使うことが可能です。
ソースコード一式(講義で用いたコードを含む)
JDK(JDK 21)
統合開発環境(日本語化対応済みのEclipse)
各種ライブラリ(JUnit 5、Mockito、DBUnit、RestAssured、WireMock、Selenideなど)
負荷テストツール(Gatling)
データベース(MariaDB)※MySQL互換
Spring Bootによるサンプル用Webアプリケーション
本コースのソースコードは講師のGitHub上で公開(後述)していますので、それを使って個別に開発環境をセットアップしていただくことも可能ですが、難易度が高く手間も相応にかかります。その点、この方法であれば特段のスキルは不要であり、手間もそれほどかかりません。
このような仮想マシンによる開発環境のセットアップ手順は、Appendix 3にて取り上げます。
また、開発環境において実際にテストを行ったり、アプリケーションを起動したりするための具体的な方法は、Chapterの間に差し込んである「サンプルコードの実演」という講座を参考にしてください。
なお「仮想ハードディスクファイル」が格納された講師Googleドライブへのアクセス方法は、本コースご受講時に届くメールに記載します。
本コースのリソースおよびソースコードについて
本コースの説明で使用する資料は、各レッスンのリソースボタンから、PDFファイルとしてダウンロード可能です。また「イントロダクション」のリソースボタンから、コース全体のPDFファイルをダウンロードすることもできます。必要に応じて、お手元で開いて活用してください。
本コースのサンプルコードは、講師のGitHubリポジトリとして公開されており、ソースコードはZIP形式でダウンロードすることができます。Googleにおいて"KenyaSaitoh、learn_java_testing"というキーワードで検索すれば、当該プロジェクトのページを見つけていただくことが可能です。
(ここにURLを直接貼り付けすることができないため、このようにご案内しています)
本コースの開発環境は、前述したように仮想マシンとして利用していただくことをお奨めしますが、ソースコードだけを手元で確認したい場合は、このようにしてください。