Stack Overflowでのいくつかのタイプのテストについて他の人が言及するのを見てきました。
私が思い出せるのは、単体テストと統合テストです。特にユニットテストはよく言及されています。ユニットテストとは正確には何ですか?統合テストとは何ですか?他に知っておくべき重要なテスト手法は何ですか?
プログラミングは私の職業ではありませんが、いつかなりたいと思います。制作に関することなども歓迎します。
私の頭の上から:
コードの他の重要なテストに注意する必要がありますか?
これらは、ソフトウェアライフサイクルのさまざまなフェーズに応じた、さまざまな種類のテストの一部です。
さらにあります:
そして、はるかに...テストソフトウェアは、ソフトウェアを書くこととほぼ同じくらい広い主題です。
単体テストの主な目的は、アプリケーション内のテスト可能な最小のソフトウェアを採用し、それをコードの残りの部分から分離し、期待どおりに動作するかどうかを判断することです。各ユニットは、モジュールに統合する前に個別にテストされ、モジュール間のインターフェースをテストします。単体テストは、その使用中に欠陥の大部分が識別されるという点でその価値を証明しています。
統合テストは、単体テストの論理的な拡張です。最も単純な形では、すでにテストされた2つのユニットがコンポーネントに結合され、それらの間のインターフェースがテストされます。この意味でのコンポーネントとは、複数のユニットの統合された集合体を指します。現実的なシナリオでは、多くのユニットがコンポーネントに結合され、さらにコンポーネントがプログラムのさらに大きな部分に集約されます。アイデアは、ピースの組み合わせをテストし、最終的にプロセスを拡張して、他のグループのモジュールでモジュールをテストすることです。最終的に、プロセスを構成するすべてのモジュールが一緒にテストされます。さらに、プログラムが複数のプロセスで構成されている場合は、一度にすべてではなくペアでテストする必要があります。
詳細については、サイトを確認してください。 Microsoft以外のソースからの情報もたくさんあります。
他の重要なテクニックは回帰テストです。この手法では、一連のテスト(回帰スイートと呼ばれます)を維持します。これは通常、毎晩、およびすべてのチェックインの前に実行されます。バグを修正するたびに、スイートに1つ以上のテストを追加します。目的は、すでに修正されている古いバグを再導入しないようにすることです。 (問題は驚くほど一般的です!)
プロジェクトが大きくなる前、または後悔する前に、回帰スイートの蓄積を開始します。きっとある!
ソフトウェア開発ライフサイクルのどの段階にあるかに応じて、さまざまなレベルのテストがあります。最高レベルは要件分析であり、最低レベルはソリューションの実装です。
単体テストとは何ですか?
多くの単体テストツールがあり、最も人気のあるものの1つはJUnitです。
単体テストを実行するとき、特定のカバレッジ基準を満たすテストセット(テストケースのセット)を作成します。これは、いくつかの構造カバレッジ基準(NC、EC、PPCなど))またはデータフロー基準(ADC、AUC、ADUPCなど)になる可能性があります。
統合テストとは何ですか?
その他のレベルのテストには次のものが含まれます:
回帰試験
受け入れ試験
単体テストは、アプリケーションの独立した部分をテストするためのコードの小さなブロックを(うまくいけば)書くというアイデアです。
たとえば、電卓アプリケーションがあり、加算機能が動作することを確認する必要があるとします。これを行うには、加算関数を直接呼び出す別のアプリケーションを記述します。次に、テスト関数が結果を評価して、期待どおりに動作するかどうかを確認します。
基本的には、既知の入力で関数を呼び出し、出力が期待どおりであることを確認します。
グーグルでの最初の2つの検索結果「テストの種類」は包括的に見える
最も関連性が高いと思うもの。 ここを参照 。
これは私が書いたエントリです 自動テストのさまざまなタイプ 。
ユニットテスト:ユニットまたはソフトウェアの最小部分に対して行われたテスト。機能仕様または目的の設計構造を満たしているかどうかを確認するために行われます。
統合テスト:関連モジュールを組み合わせて機能をテストします。
回帰テスト:アプリケーションをテストして、変更が意図しない影響を引き起こしていないことを確認します。
煙のテスト:煙のテストは、ビルドがテスト可能かどうかを検証します。