Javaソフトウェアのテスト

1.ユニットテストとは何ですか?
ユニットテスト(英語:ユニットテスト)は、モジュールテストとも呼ばれ、プログラムモジュール(ソフトウェア設計の最小単位)の正確さをテストします。プログラム単位は、アプリケーションのテスト可能な最小部分です。手続き型プログラミングでは、ユニットは単一のプログラム、関数、プロセスなどです。オブジェクト指向プログラミングの場合、最小単位はメソッドであり、基本クラス(スーパークラス)、抽象クラス、または派生クラス(サブクラス)のメソッドを含みます。
一般的に言えば、プログラマーはプログラムを変更するたびに少なくとも1つの単体テストを実行します。単体テストは、プログラムの作成プロセスの前後に複数回実行され、プログラムがプログラムのエラーなしにソフトウェア仕様で要求される作業目標を満たしていることを確認します。単体テストは必須ではありませんが、プロジェクト管理のポリシー決定を含む悪いテストではありません。
2.ユニットテストの利点
•変更への適応
ユニットテストにより、プログラマは将来コードをリファクタリングし、モジュールが引き続き正しく機能することを確認できます(複合テスト)。このプロセスでは、すべての関数とメソッドの単体テストを記述します。変更によってエラーが発生すると、単体テストでエラーをすばやく見つけて修正できます。
•統合の簡素化
ユニットテストは、プログラムユニットの信頼性を排除し、ボトムアップテストパスを使用します。最初にプログラムコンポーネントをテストし、次にコンポーネントアセンブリをテストすることで、統合テストが容易になります。
•文書記録
ユニットテストはシステムの文書記録を提供します。ユニットテストで提供される機能とユニットテストでのプログラムユニットの使用方法を確認することで、開発者はプログラムユニットの基本的なAPIを直感的に理解できます。
•式の設計
テスト駆動型の開発ソフトウェアの実践では、ユニットテストで正式な設計を置き換えることができます。各ユニットテストケースは、クラス、メソッド、監視対象の動作などの設計要素と見なすことができます。
3.テストの分類

  • ブラックボックステスト:コードを記述する必要はありません。プログラムが期待値を出力できるかどうかを確認するために入力値を指定します
  • ホワイトボックステスト:コードを記述する必要があり、プログラムの特定の実行プロセスに注意を払う

4. JUnitの使用:ホワイトボックステスト

  1. テストクラス(テストケース)を定義する
  • テストクラス名:テスト済みクラス名+テスト
  • テストパッケージ名:cn.itcast.test
  1. テスト方法の定義:独立して実行できます
  • メソッド名:テスト+テストメソッド名
  • 戻り値:void
  • パラメータリスト:空のパラメータ
  1. メソッドに注釈を付けます:@Test
  2. Junit依存関係をインポートします。
    結果の判定:緑:成功、赤:失敗、
    結果を処理するためにアサートを使用しますツールクラスをアサートします
  3. @注釈付き初期化メソッドの前:
    リソースアプリケーションに使用され、すべてのメソッドは実行前に実行されます
  4. @注釈後、リソースを配置する方法を説明します:すべてのメソッドが実行された後、メソッドは自動的に実行されます
package cn.itcast.test;
import cn.itcast.*;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class testCalculator {
    @Test
    public void testAdd(){
        Calculator c=new Calculator();
        System.out.println(c.add(1,2));
        Assert.assertEquals(1,c.add(1,2));
    }
    @Before
    public void init(){
        System.out.println("init...");
    }
    @After
    public void close(){
        System.out.println("close...");
    }
}
395の元の記事を公開 130を獲得 200,000ビュー+

おすすめ

転載: blog.csdn.net/qq_40507857/article/details/102985222