問題タブ [acceptance-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JBehaveストーリーの整理
受け入れテストにJBehaveを使用することを検討し始めたばかりですが、JBehaveを使用している人々が、ストーリーの作成とストーリーファイルの保存をどのように整理しているのか疑問に思いました。現在それらに取り組んでいるのは開発だけなので、ストーリーファイルをJavaコードと一緒にresourcesフォルダーに保存してそれらを実装します。
私の実際の質問は、ストーリーファイルをどこにどのように保存するか、そしてこれがプロダクトオーナーやQAのストーリー作成とどのように連携するかということだと思います。
unit-testing - 単体テストと受け入れテスト
あなたはどちらに賛成ですか?または両方?
私の理解はユニットテストです:
- 開発者の視点からシステムを検証する
- 開発者が TDD を実践できるように支援する
- コードをモジュール化する
- 低レベルの粒度でエラーを検出するのに役立ちます
受け入れテスト:
- ビジネスおよび QC / QA の観点からシステムを検証する
- コードの内部動作に慣れていない人によって書かれていることが多いため、高レベルになる傾向があります。
どちらも必要だと感じています。しかし、冗長な作業を最小限に抑えるために、単体テストを受け入れテストに組み込むことは良い考えでしょうか? つまり、後者が前者を呼び出すようにします。反対方向に行くことに意味はありますか?
単体テストと受け入れテストについて、一般的にどのように考えていますか? また、それらを相互に関連させて管理する方法を教えてください。
mocking - 受け入れテストに White を使用しているときにモックを注入する方法はありますか?
クライアント/サーバー アプリケーションでは、サーバー側は Web サービスのコレクションによって公開されます。クライアントは、アプリケーション コンテキストと呼ばれるものとやり取りして、サーバーを呼び出します。受け入れテスト中にアプリケーション コンテキストをモックして、クライアントからサーバー、データベースへとテストをフローさせ、データベースを実行したい各テストの正しいデータ。
これは可能ですか?それとも、別のアプローチをとるべきですか?
testing - easybのGroovyをプレーンな英語のシナリオ定義から分離することは可能ですか?
easybWebサイトのeasybシナリオの例を次に示します。
Groovyを英語から分離して、次のようなものを提示することは可能ですか?
そうすれば、私のPHBは中かっことGroovyによってすべてが混乱することはありません。
integration-testing - SpecFlowでシードデータを削除するにはどうすればよいですか?
これはすでに提起されているかもしれません、おそらくばかげた質問です。
とにかく、私はSpecFlowを調べていて、この機能のシードデータを削除するにはどうすればよいか疑問に思っています。このシードデータは、さまざまなシナリオで共有されます。これを行うためのエレガントな方法はありますか?おそらく、testRunner.OnFeatureEnd()が呼び出されたときにイベントを挿入する機能はありますか?
javascript - シンプルな HTML5 + jQuery アプリには、どの JavaScript UI テスト フレームワークを使用すればよいですか?
最新の Web テクノロジに対応するために、空き時間に単純な HTML5 + JavaScript (jQuery) アプリを作成しようとしています (実際には、より高度な C# バックエンドのものです)。
過去10年ほどやってきたのと同じ方法、つまりTDDスタイルで開発したいと思っています。
HTML/JavaScript の TDD/BDD/AcceptanceTDD の世界に慣れていないので、私の質問は次のとおりです。ブラウザーで Web ページに対するテストを作成するための優れたフレームワークなどはありますか決定的なプラス)?
私が JavaScript を使いたい理由は 2 つあります。1. JavaScript をもっと学びたい。 2. 開発と同じ言語をテストにも使いたい。
それ以外の場合は、C# のスキルを使って、Selenium、WatiN、または同様のフレームワークを使用できます。
MSDN でJasmine、QUnit 、およびjQuery を使用した自家製のソリューションを見つけましたが、フローや複雑さを感じることはできないため、推奨事項や直接の経験は大歓迎です。
bdd - BDD シナリオには、実際のテスト データを含めるべきですか、それとも説明するだけですか?
典型的な CRUD シナリオを定義するときに、テスト データを指定するための 2 つのオプションがあることに気付きました。
オプション 1: 使用するデータを記述し、実装にデータを定義させる
オプション 2: 使用するテスト データを明示的に述べる
利点と欠点に関して、私たちが確立したことは次のとおりです。
オプション 1 は、「有効な名前」の定義が変更された場合を適切にカバーします。テスト データが複数の場所にあるオプション 2 を使用した場合、これに対処するのがより困難になる可能性があります。オプション 1 は、特に「無効なクレジット カード番号を入力した」などのシナリオの場合に、このテストのデータで何が重要かを明示的に説明します。また、実装よりも説明に関心があり、どういうわけかより抽象的でBDDを「感じ」ます。
ただし、オプション 1 では、再利用が難しい非常に特殊な手順を使用します。たとえば、「作成されたリージョンの詳細をページに表示する必要があります」は、おそらくこのシナリオでのみ使用されます。逆に、オプション 2 の「ページには次のフィールドを表示する必要があります」を実装して、他のシナリオで何度も再利用できるようにすることもできます。
また、オプション 2 は、「有効」などのより抽象的な用語を解釈する必要がなく、例によって何が起こっているかを確認できるため、よりクライアントフレンドリーに見えると思います。ただし、オプション 2 はより脆弱でしょうか? モデルのリファクタリングは、これらのテストを中断することを意味する場合がありますが、テスト データがコードで定義されている場合、コンパイラはモデルの変更に役立ちます。
ここに正解も不正解もありませんが、どちらを使用するかをどのように決定するかについて、人々の意見を聞きたいと思います。
ありがとう!
unit-testing - バックエンド開発に適した受け入れテスト フレームワークはどれですか?
バックエンドとは、データを消費したり、ファイルを処理したり、マシン インターフェイス (REST、SOAP、CORBA など) を使用して通信したりするソフトウェア システムを意味します。手の込んだ Web や UI のテストは必要ありません。Cucumber と Robotframework を念頭に置いていますが、目前のタスクにどれだけ適しているかはわかりません。
spring - GAE開発サーバーデータストアへのデータのプリロードの受け入れテスト
私のアプリケーションには、アプリケーション層に挿入する一連のDAOがあります。私が書いている受け入れテストでは、dev_serverデータストアにデータをプリロードしたいので、JUnitテストで同じSpring構成を使用して(@ContextConfigurationアノテーションを使用)、関連するDAOのインスタンスをテストに挿入します。私が実際にいくつかのデータを保存するために行くとき、例えば:
「このスレッドにはAPI環境が登録されていません」と恐ろしい思いをします。
これはおそらく、私のテストケースがアプリの詳細を含むGAE application-web.xmlを読み取っていないためです(ここでは、私は本当に間違っている可能性があると推測しています)。そのため、dev_serverで実行されているアプリが読み取り/書き込みを行っているのと同じデータストアに書き込むことはわかりません。
アプリと同じデータストアを「指す」ようにテストを取得するにはどうすればよいですか?アプリとテストの両方に挿入できる「データソース」メカニズムはありますか?テストを取得して、データストアAPIに必要な構成を強制的に読み取らせる方法はありますか?
java - Java での受け入れテストのベスト プラクティス
受け入れテストを行いたいプログラムがあります。
入力は、さまざまな「タスク」を含む XML ファイルです。
出力は、結果を含む別の XML ファイルです。
受け入れテストを自動化するためのベストプラクティスは何ですか?
おそらく、入力ファイルと出力ファイルのペアを保存し、入力に対してプログラムを実行し、結果を提供された出力と比較する必要があります。
Ant はこのタスクに適していますか?
受け入れテストはすべてのまれなケースをカバーするか、機能が一般的に機能していることのみをテストする必要があります。
Java での受け入れテストに関するその他のヒントをいただければ幸いです。