1

現在、単体テストと統合テスト (BDD を使用) の両方を含むプロジェクトを見ています。

統合テストは、テストごとに 1 つの値のファイルを使用します。(データ セットの順列はほぼ無限にあることを考えると) これで問題ないかどうか、およびその理由を理解しようとしています。(私は「テスト」に非常に慣れていません。)

これらの統合テストは、データがコンポーネントを正しく通過することをテストすることを目的としているので、値のセットは 1 つだけで問題ないというのは正しいでしょうか?

そして、データの「順列」は単体テストでテストする必要がありますか? したがって、個々のユニットが異なるデータを処理できることがわかります。

または、トリックを完全に見逃しましたか?

4

2 に答える 2

0

BDD 統合テストには、次の 2 つの目的があります。

  • 統合テストを作成して、アプリケーションの動作の主要な領域をテストします (テストに合格するように強制的に実装するため)。統合テストは仕様であり、開発者と利害関係者の間、および開発者と将来の開発者の間のコミュニケーション手段です。

  • 第二に、統合テストはあなたが言ったことを行います。それらは、単体テストされたコンポーネント間の各相互作用が正しいことをテストします。

テスト ファーストで開発する場合、通常、テスト駆動が必要なすべての統合テストの動機となることがわかりますが、テストの前にコードを記述する場合は、十分な統合範囲を確保するために、戻ってさらに統合テストを作成する必要がある場合があります。その場合、そのコードを書いたビジネス上の理由をリバース エンジニアリングし、ビジネスに価値を示す統合テストでそれを表現するようにしてください。

特定の統合テストに「1 セットの値」で十分かどうかは、考えられる各値セットのビジネス上の意味によって異なります。たとえば、小切手を処理している場合、3 つの統合テストが必要になる場合があります。

  • 小切手が利用可能な資金より少なく、支払いが成功したもの
  • 小切手が利用可能な資金を超えており、口座が引き落とされたもの
  • チェックが何らかの理由で無効になり、エラーが発生したもの。

単体テストを使用して、さまざまなエラー シナリオ (小切手の金額がゼロの場合、判読できない場合、右の銀行からのものではない場合) など、これらのシナリオでマイナーなバリエーションを駆動します。画面上のエラー。

PS:「統合テスト」は、さまざまなコンテキストでさまざまなことを意味しますが、私はあなたの用語を使用しました。「統合テスト」とは、キュウリのシナリオのようなものを意味していると思います。テストがどのように機能するかという技術的な詳細ではなく、仕様の一部であることに重点が置かれています。

于 2013-10-03T12:59:03.630 に答える
0

実際には、1 セットのデータのみをテストすることは非常に最小限です。おそらく、それは良い天気の行動の 1 つのシナリオにすぎません。

悪天候時の動作も追加することをお勧めします。

順列について: これは簡単に手に負えなくなります。そのため、MC/DC カバレッジでググってください: Modified Condition Decision カバレッジ。そのパースペクティブで同じカバレッジを維持しながら、すべての可能性の最大数を減らします。

于 2013-10-03T10:42:28.340 に答える