問題タブ [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 - JUnit を受け入れテスト フレームワークとして使用する
OK、私は近年、開発にアジャイル プラクティスを公然と採用している会社で働いています。単体テストとコードの品質は向上しています。私たちが今も取り組んでいる領域の 1 つは、自動化された受け入れテストの分野で最適なものを見つけることです。よく形成されたユーザー ストーリーを使用して、テスト駆動型の方法でコードを実行したいと考えています。これにより、自動化できる各ユーザー ストーリーの受け入れレベル テストも得られます。
これまでに、Fit、Fitnesse、Selenium を試しました。それぞれに利点がありますが、実際の問題もありました。Fit と Fitnesse については、物事が複雑すぎると感じずにはいられず、それらを使用して多くの技術的な問題が発生しました。ビジネスはこれらのツールを完全に取り入れているわけではなく、常にスクリプトを維持することに特に熱心ではありません (また、テーブル スタイルの大ファンでもありません)。Selenium は非常に優れていますが、速度が遅く、リアルタイムのデータとリソースに依存しています。
現在検討中のアプローチの 1 つは、JUnit フレームワークを使用して同様の機能を提供することです。JUnit を使用して小さな作業単位だけをテストするのではなく、それを使用して (JUnit フレームワークを使用して) テストを作成し、アプリケーションの受け入れレベルの範囲をカバーしてみませんか? つまり、新しいストーリー (「ユーザーとして、ポリシーの基本的な詳細を確認したい...」) を取り上げ、JUnit でテストを作成します。これは、ポリシーの詳細リンクのエントリ ポイントでアプリケーション コードの実行を開始しますが、すべてのコードをカバーします。そして、スタブ化されたデータ アクセス レイヤーにロジックを落とし、アプリケーションの次のページに転送するポイントに戻り、そのページでユーザーに表示されるデータをアサートします。
これには次の利点があるように私には思えます。
- シンプルさ (追加のフレームワークは不要)
- 継続的インテグレーション ビルド サーバーとの統合に手間がかからない (既に JUnit テストを処理しているため)
- チームにはすでに完全なスキルセットが存在します (結局のところ、単なる JUnit テストです)
そして欠点は次のとおりです。
- 顧客の関与が少ない (ただし、受け入れテストが作成される最初の場所で、ユーザー ストーリーの作成に深く関与しています)
- おそらく、JUnit クラスのユーザー ストーリーと受け入れ基準を理解する (または理解させる) ことは、Fit や Fitnesse のフリーテキスト仕様よりも難しいでしょう。
だから、私の質問は本当に、この方法を試したことがありますか? 考えたことはありますか?あなたの考えは何ですか?このアプローチの好きなところと嫌いなところは何ですか? 最後に、このアプローチよりも好きな理由または嫌いな理由を説明できる場合にのみ、代替フレームワークについて言及してください。
testing - 検収試験を自動化することの利点は何ですか?
最近、私は、それがもたらすものと比較してかなり費用がかかるので、受け入れテストの利点についてのいくつかの疑問についてのいくつかの記事を読みました。私自身の意見を述べるために、自動検収試験のメリットを可能な限り集めたいと思います。手伝って頂けますか?
windows-services - Windows サービスの受け入れテスト
さまざまな RSS ニュース フィードを定期的に処理する Windows サービスを作成しています。これらのニュース項目はデータベースに保存され、システム内のさまざまなオブジェクトに関連付けられます。
何が起こる必要があるかについてのセット仕様はありますが、顧客が確認するための UI コンポーネントはありません。
このようなものに対する受け入れテストを作成する最良の方法は何ですか?
検証が必要なデータの概要を表示する簡単な Web ページを作成する必要がありますか?
ruby-on-rails - アプリソースの変更を正しく追跡するように自動テストに指示する方法は?
Railsアプリの関連ファイルの1つが変更されるたびに、自動テストを取得してステーキ受け入れテストを実行したいと思います。RspecとCucumberの自動テスト構成を調べた後、次のマッピングを試しています。
p>最初のものは機能します:ステーキの仕様が変更されるたびに、それは再び実行されます。
しかし、2番目と3番目はそうではありません。/appサブディレクトリの下のソースファイルの変更は無視されます。
これらのマッピングを機能させる正しい方法は何ですか?
ありがとうオリバー
c++ - 同じプロセスの複数回の実行からの Valgrind memcheck レポートをマージするにはどうすればよいですか?
毎晩実行される受け入れテストのセットがあります。valgrind を使用して、コード内のメモリ リークを自動的にチェックし、手動でリークをチェックするための追加のセーフガードとして使用したいと考えています。valgrind の下でプロセスを実行するようにスクリプトを更新するのは簡単ですが、各テストは多数のプロセスを開始および停止し、約 15000 のテスト ケースがあるため、何千もの個別のレポートが作成されることになります。
これらのレポートをマージできるツールはありますか? valkyrie を見たことがありますが、ドキュメントによると、valgrind 3.5 をサポートしていません。
rest - セレンを使用して http リクエストをリダイレクトする
これは非常に率直な質問であり、包括的な答えを見つけることができないようです。Selenium および Selenium プロキシを使用している場合、プロキシが特定の uri への送信 xhr リクエストをキャッチし、宛先を事前にモックされた代替に変更する方法を教えてください。私はこの例をグーグルで見つけました、http://www.sonatype.com/people/2009/10/selenium-part-4/しかし、mockHelperメソッドの書き方を説明していないようです...
ありがとう
サイモン
c# - GUIの受け入れテストは、テスト時に実際にそれを示しますか?
GUIに対して受け入れテストを行う場合、GUIへのテストは実際にGUIを表示しますか(ほんの一瞬で)、それとも単なる実装を模倣したものですか?WindowLicker、White、NUnitFormsなどのフレームワークについて話しています。
database - この specflow ステップをどのように実装すればよいですか?
わかりました、TDD プロセス全体を最初から最後まで把握しようと決めました。
私は ASP.NET MVC 2 アプリケーションで簡単なブログを書いており、実装時に機能をテストするための受け入れテストを開始しました。BDD/ATDD フレームワークとして SpecFlow を使用しています。
私は「Growing Object Orientated Systems Guided by Tests」を読んできたので、このように始めました。
私は、本の中でイテレーション ゼロと説明されているポイントで、「ウォーキング スケルトン」を作成しています。
「システムのすべてのコンポーネントをテストする機能の最も薄いスライス」として、ログイン プロセスを開始することにしました。この場合、Web サイト自体とデータベースです。
そのため、ログインについて詳しく説明したストーリーを書きました。最初に書いているシナリオは、ログインに成功することです。
上記のシナリオで与えられたものの1つは
ただし、このステップをどのように実装するかはわかりません。
明らかに、これは、指定された資格情報を持つユーザーがデータベースに存在する必要があることを意味します。ただし、良い小さなプログラマーのように、パスワードを何らかの方法でハッシュしたいと思います。
私は、それを挿入できるある種の DatabaseHelper クラスを作成することを考えました。ただし、これにはパスワードをハッシュするためのハッシュ コードが含まれており、アプリケーション自体が DRY に違反しているように見える同じハッシュ コードを必要とします。
したがって、ここにはいくつかの関連する質問があります。
- このステップに苦労しているということは、別の場所から始める必要があるということですか? ログインシステムはサイトの他の部分にとってかなり重要ですが? おそらく、Web サイトとデータベースの両方をテストするのは、機能の最も薄いスライスではないでしょうか?
- 私と同じ場所から始めるとしたら、どのようにしますか? DRYはまだ気になりませんか?受け入れテストはブラウザを介して外部から機能をテストするため、私にできることはあまりないのでしょうか?
質問がやや漠然としているように思われる場合は、お詫びしなければなりません。TDD をこちらから学ぶ人は誰もいません。また、TDD はパラダイム シフトの 1 つであり、私はまだその「あはは」の瞬間を経験していません。
前もって感謝します。
c# - テスト駆動開発を使用する場合の Tetris の受け入れテスト
TDDを使ってテトリスゲームを実装してみたいです。
Growing Object-Oriented Software, Guided by Testsを読んで理解したことから、受け入れテストとは何かを定義することから始めるべきです。私が正しければ、TDD を行う際の受け入れテストは、ユース ケースと同じように定義されます。
アプリの「スケルトン」として機能する適切な最初の受け入れテストを定義することは非常に重要であるため、単純なものにする必要があります。
最初に実装するものとして、次の 2 つの受け入れテストを選択しました。
- ゲームが開始し、プレーヤーがゲームを閉じます。
- ゲームが開始され、プレイヤーは何もしません。彼は最終的に負けます。
これら 2 つの受け入れテストは開始テストとして適切ですか? 次の受け入れテストは何が良いでしょうか? 私は次のようなことを考えることができました
- ゲームが始まり、正方形のピースだけがドロップします。プレーヤーは、線が常に「爆発」するようにすべてを配置し、100 ゲームステップ後もゲームが終了しないようにします。
しかし、実際のテトリス ゲームでは常にさまざまなピースが落ちてくるので、これはちょっと厄介だと思います。それが受け入れテストの目的です。
また、(2) を行うときは、すべてを一度に実装しようとする誘惑に駆られますが、これは、2 番目の受け入れテストを実装するときにふりをすることではないと思います。アイデアとしては、2 回目ではなく、6 ~ 7 回のゲームの後にのみゲームを実装することになると思います。私は正しいですか?
ありがとう
testing - 検収試験と機能試験の違いは?
受け入れテストと機能テストの本当の違いは何ですか?
それぞれのハイライトまたは目的は何ですか?私が読んだところはどこでも、それらはあいまいに似ています。