junit tutorial beginners what is junit testing
この初心者向けのJUnitチュートリアルでは、ユニットテスト、テストカバレッジ、JUnitテストフレームワークとは何か、およびJUnitテストケースの例について説明します。
このJUnitシリーズは、まったくの初心者であるオーディエンスだけでなく、JavaまたはJUnitに精通していて、JUnitの学習に強い関心を持っているオーディエンスに焦点を当てて作成されています。
シリーズ全体は、JUnit4とJUnit5の違いを解釈できるように作成されています。
今すぐJUnitの探索を始めましょう!!
学習内容:
マージソートソースコードc ++
このJUnitシリーズのチュートリアルのリスト
チュートリアル#1: 初心者向けのJUnitチュートリアル– JUnitテストとは何ですか? (このチュートリアル)
チュートリアル#2: EclipseでJUnitをダウンロード、インストール、構成する
チュートリアル#3: JUnitテスト:例を使用してJUnitテストケースを作成する方法
チュートリアル#4: JUnitテストフィクスチャとは:JUnit4の例を使用したチュートリアル
チュートリアル#5: JUnitテストを実行する複数の方法
チュートリアル#6: JUnitアノテーションのリスト:JUnit4とJUnit5
チュートリアル#7: JUnit Ignoreテストケース:JUnit 4 @Ignore Vs JUnit 5 @Disabled
チュートリアル#8: JUnitテストスイートとフィルタリングテストケース:JUnit4とJUnit5
チュートリアル#9: JUnitテストの実行順序:テストの順序JUnit4とJUnit5
チュートリアル#10: JUnit5アノテーションの使用方法@RepeatedTestと例
チュートリアル#11: JUnit 5ネストされたクラス:@Nestedチュートリアルと例
チュートリアル#12: JUnit5カスタム表示名と条件付きテストの実行
チュートリアル#13: JUnitとTestNG–違いは何ですか
JUnitチュートリアル
典型的なテスト駆動開発(TDD)アプローチでは、開発者は開発するコードのすべてのチャンクを単体テストすることに焦点を合わせます。製品のテストが優れているほど、製品の品質も向上します。テストは、ソフトウェア開発ライフサイクルの各通過フェーズと並行して実行する必要があることは誰もが知っています。
要件と分析から設計と開発、メンテナンスに至るまで、すべてのフェーズに適切なテストフェーズを関連付ける必要があります。開発後の単体テストは、堅牢なアプリケーションを構築し、最適化されたコードを配置するために推奨されるものです。
ユニットテストとは何ですか?
単体テストとは、小さなロジックまたはコードをテストして、コードの出力が特定のデータの入力および/または特定の条件を満たすことで期待どおりであることを確認することです。通常、単体テストは他のテストから独立していると想定されています。
単体テストは、別のアプリケーションまたはサードパーティ/外部サービスとの複雑なインターフェイスをテストすることはできません。単体テストは、メソッドまたはクラスである可能性のある小さなコード単位のみを対象としています。
これは、開発者が現在のロジックの問題と、現在の変更によるリグレッションの失敗を発見するのに役立ちます。さらに、現在のコードが将来の実装にどのように影響するかについての洞察も提供します。
テストカバレッジ
単体テストによってテストされるコードの割合は、 テストカバレッジ 。
目的は、コードのテストカバレッジをより良く、より多くすることです。これにより、今後も回帰テストスイートが追加され、自動テストの実行と検証が向上し、回帰テストに伴う手作業が軽減されます。
テストを実行すると、現在のコードの変更によって発生したソフトウェアの戻りの問題を自動的に特定するのに役立ちます。コードのテストカバレッジが高いと、多くの手動テストを実行しなくても機能の開発を続けることができます。
多くの人が どのくらいのテストカバレッジが不可欠か 。この質問への答えは、テストの範囲がどれだけ重要であるかについての厳格な規則はないということです。それはすべて判断力があります。判断は、アプリケーションワークフローの経験と、これまでに見つかった欠陥に関する歴史的な知識によって向上します。
効率的なテストとは、必ずしも100%のテストカバレッジを持つこと、またはすべての単一のブランチまたはパスカバレッジに対して自動化テストや単体テストを組み込むことを意味する必要はありません。
空白のままになっている必須フィールドの検証エラーメッセージなど、何年もの間欠陥がない特定の些細な検証を回帰スイートに含める必要はありません。
手動テストと自動テスト
ユニットテストは、次の2つのアプローチで実行できます。
- 手動テスト
- 自動テスト
oracle plsqlインタビューの質問と回答
どちらのアプローチでも、ワークフローは一般的です。
- テストケースの作成
- レビューする
- 修正が必要な場合はやり直し
- テストケースを実行する
- テスト結果を分析する
以下の理由により、自動テストは手動テストよりも優先されます。
手動テスト | 自動テスト |
---|---|
ツールを使用せずにテストケースを手動で実行する場合は、手動テストと呼ばれます。 | 手動による介入をあまり行わずにツールを使用してテストケースを実行することを、自動テストと呼びます。 |
繰り返しの手作業が含まれています。 | 繰り返しの手作業は避けることができます。 |
手動テストでの人間の努力は誤りであり、時間がかかる可能性があります。 | 自動化テストは、手動の作業に比べて高速でエラーがありません。 |
必要なテストリソースは、すべてのテストケースを手動で実行するためのものであり、リソースへの投資が増加します。 | 指定された自動ツールを使用して自動テストを実行するために必要なテスターが少なくなるため、テストリソースへの投資が少なくなり、収益性が向上します。 |
手動テストは、タイムラインの制限を考慮して、小さなテストカバレッジに制限する必要があります。したがって、多くのテストシナリオをスキップするリスクがあり、欠陥リークのリスクも発生します。 | 多くの異なるテストシナリオを自動化でき、時間とリソースの危機下でも複数回実行できるため、テストカバレッジと成果物の品質が向上します。 |
ユニットテストフレームワーク
典型的な自動化ユニットテストケースがどのように見えるか、そしてそれが従うフレームワークについて、次の質問があるかもしれません。開発者は ユニットテストフレームワーク 自動化された単体テストケースを作成するため。
- コードが期待どおりに論理的に機能しているかどうかを検証するために、特定のチェックポイントまたは検証基準を持つテストケースが作成されます。
- テストケースが実行されると、基準/条件が合格または不合格になります。
- テストケースワークフローに従ってログが生成されます。
- フレームワークは、合格したテストケースと失敗したテストケースの要約結果を報告します。
- 障害の重大度に応じて、テストケースはそれ以上進まない場合があり、その後の実行を停止する場合があります。
- ログに報告される特定の軽度の重大な障害が発生する可能性がありますが、ハードストップは表示されませんが、以降のテスト手順をブロックすることなく続行されます。
JUnitとは何ですか?
JUnitは、Javaプログラミング言語で単体テストを記述および実行するために使用されるオープンソースフレームワークです。これは、最もよく知られている単体テストフレームワークの1つです。
以下の画像は、さまざまなよく知られた自動化ユニットテストツールを示しています。
以下に、JUnitがパッケージ化されている属性を示します。
- テストメソッドの多くの機能を識別、実行、およびサポートするための注釈の膨大なリストがあります。
- 期待される結果を検証するためのアサーションがあります。
- テストを実行するためのテストランナーを提供します。
- JUnitには基本的な組み込みテンプレートが用意されているため、小さくて単純なテストケースをすぐに作成できます。
- JUnitテストは、独立したモジュールを作成するのに役立ちます。これにより、テストの対象範囲とアプリケーションの品質が向上します。
- テストの作成と実行が簡単になるだけでなく、開発者がレポートとテスト結果のパスを検索する必要がない、クリーンで明確な明示的なレポートを開発者に提供します。
- テストの実行がスムーズに進むまで、実行の進行中に表示される緑色のテスト進行状況バーを見てリラックスできますが、テストが検証チェックポイントに失敗するとすぐに「赤」で警告されます。
- テストスイートは、一連のテストケースまたは関連する一連のテストケースをまとめるために作成できます。
JUnitテストケースの例
以下に示すのは、JUnitテストクラスがどのように見えるか、または通常のJavaクラスファイルと比較してどのように異なるかを理解するための非常に基本的なHelloWorldプログラムの2つの例です。
例1:
これは、文字列「Helloworld」が大文字と小文字を区別するため実行に失敗する文字列「helloworld」と一致することを確認するJUnitテストケースHelloWorldJUnit.javaです。したがって、2つの文字列が一致せず、テスト 失敗する 。
HelloWorldJUnit.javaのコード
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
例2:
ここでは、いつもの様子を見ていきます Java クラスファイル 相互作用する とともに JUnit テストケース。作成します Java クラスファイル HelloWorld_Java.java 文字列値を渡すことができるコンストラクタと、文字列値をフェッチするためのメソッドgetText()を使用します。
JUnit テストクラス HelloWorldJUnit.java HelloWorld_Javaのクラスオブジェクトが作成され、実際の文字列値がオブジェクトに渡されるように作成されます。 JUnitのassertEquals()は、期待される文字列値と実際の文字列値が一致するかどうかを確認します。
HelloWorld_Java.javaのコード
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
HelloWorldJUnit.javaのコード
選択ソートアルゴリズムc ++
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
結果は次のようになり、2つの文字列が一致します。したがって、JUnitテストは 合格しました。
結論
JUnitとは何か、そしてそれが何をするのかについての簡単な概要を提供することになると、 JUnit は美しく細工されたフレームワークであり、自動化された方法で単体テストを作成および実行できます。
これはオープンソースのツールですが、手間がかかりません。テストケースの作成、テストケースの実行、実行後のレポート、テストの保守など、JUnitはあらゆる面でエレガントです。はい、それもエレガントに失敗する可能性があります。先に進むにつれて、次のチュートリアルでそれがどのように行われるかを見ていきます。
著者について: このチュートリアルはによって書かれましたショバD.彼女はプロジェクトリーダーとして働いており、手動、自動化、APIテストで9年以上の経験があります。
これからも、JUNITのあらゆる側面をさらに深く掘り下げていきましょう。