2010-11-25 12 views
0

Unit TestまたはExploratory Testの製品へのさらなる価値をもたらすと思いますか?単体テストと短期/長期のシナリオでのExploratory Test

私は、両方のテストが異なる一般的な目的を果たしていることを理解していますが、どのテストを優先しますか?つまり、最初に何を行い、次に何をテストするのでしょうか?

また、どちらが短期的にはより多くのメリットを享受していますか?長期的には?

最後に、2人のうちの1人だけの時間があれば答えが変わりますか?

答えて

2

私の意見では両方が重要です。私はTDD方法論に従っているので、単体テストは自分のコードの実行可能な仕様を形成します。単体テストが最初に行われなければならないが、しばしばその過程で、私は合格単体テストを作成するためにいくつかの形式の探索的テストを行っている。さらに、何らかの形の探査なしでは完全には開発できないものもあります。多くの場合、ユニットテストを開発してインタフェース要素が期待どおりに動作するようにすることができますが、多くの場合、という要素がどのように相互作用して相互作用するのかを確認する必要があります。さまざまなシナリオを調査し、フィードバックに基づいてテストスクリプトを調整することは、設計の重要な部分です。

非インターフェイス作業では、最初にユニットテストを行い、必要に応じて探索テストを行います。インタフェース作業のために、私は試作して探検した後、ユニット(スクリプト)テストを開発します。これは、部分的には、各宇宙のテスト・ツールの能力に起因するものですが、それは実行される作業のタイプにも関係しています。

利点については、異なる種類の利点を提供するため、比較するのは難しいです。どちらのタイプのテストでも欠陥を発見して排除することができますが、ユニットテスト(TDDを使用)ではアプリケーションの設計と構造もガイドし、改善します。設計を改善することによって、保守性も向上させます。私の考えでは、設計の意思決定が実際に進展するにつれて期待どおりに機能しているかどうかを評価するために使用することができますが、私たちの見解では、主にアプリケーションの使いやすさが向上しています。

私の意見では、単体テストは、他のすべてのテストが変更を生み出すことができるセーフティネットを提供するという点で、より基本的なものです。その意味では、彼らはもっと重要ですが、現実的な環境でもどちらでもなければできません。また、これは唯一の2種類のテストでもなく、ユニットテストや統合テストと同じように実際に直接比較することもできません。デバッガを使用したい場合は、単体テストを探索することができます。

私は、スクリプト化されたテストを自動化する時間がないシナリオを想像することができますが、少なくとも私の場合はこれらのケースです。手動の探索的テストを使用していても、何らかのレベルの単体テストをしないシナリオは想像できません。あるレベルの単体テストが不要となる前に、実際には、アプリケーションは単純に死んでいなければなりません。

+0

まず、詳細な説明に感謝します。それは非常に興味深いです。 – EKI

+0

私のケースは次のようにモデル化できます。ブール演算子(AND/OR/NOT)と一連のパラメータ条件(Param1> x、Param2 == yなど)を持つ一連のルールをユーザーが作成できるようにする機能です。これは、ルールを作成するモジュール、ルールがトリガされた場合にアクションのセットを定義する別のモジュール、ルールを使用してオブジェクトを評価し、関連するアクションがあれば起動するエンジンで行われます。 – EKI

+0

QAに機能を渡す前に、その開発者が関連する単体テストを作成するのに時間をかけて防衛しようとしています。テスト用にリリースし、Exploratory Testに依存しています。 私が理解しているように、Devはユニットレベルで自信があるコードを提供する必要があります。その後、QAは機能、ユニット間の統合などに集中します... – EKI

関連する問題