問題タブ [system-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.
c# - クラス プロパティは読み取り専用です (テスト リファクタリング)
データを提供する API をテストするコードを継承しました。お客様は、期待される結果を SQL コードとして提供します。テスト コードには、API からのオブジェクトと ADO.NET オブジェクトを比較する VerifyResult のさまざまなオーバーロードを含むユーティリティ クラスがあります。あまり OOP とは思えないので、リファクタリングを検討しています。
ここにいくつかの擬似コードがあります:
テストユーティリティクラス:
リファクタリングで最初に行ったのは、API オブジェクトの値を使用して API オブジェクト (Book など) を作成し、カスタムの等値アサーションを作成することでした。API はデータを提供するだけなので、そのクラスのプロパティは読み取り専用 (内部セット) であるため、カスタム値を使用して Book オブジェクトを作成することはできません (API は継承を使用するすべての具体的なクラスであり、インターフェイスはありません)。 )。この制限を回避する方法はありますか?
まったく異なるアプローチを提案できる場合は、お気軽にお問い合わせください。
API クラスが次のようになっているとします。
API のインスタンスを新しいサブタイプとしてキャストできるようにしながら、これらの API タイプを継承してプロパティを書き込み可能にすることは可能ですか?
c# - システムテストと受け入れテスト - テストケースの違い
システムテストと受け入れテストの実際の違いについて、私は少し混乱しています。このトピックを検索すると、答えが異なり、テストケースがどのように大きく異なるかわかりません。
私が発見した事実:
システム テストは完全なシステムに対して実施され、サプライヤによって実施されます。システム テストは、要件仕様 (機能および非機能の両方) に基づいて、システム内の完全なフロー (ログインからログアウトまで) をテストするエンド ツー エンドのテストです。
受け入れテストは、顧客の要求を満たしていることを確認するために顧客によって行われます。これも完全なフローであり、要件仕様に基づいています。ただし、構築されるシステムは要件仕様に基づいて設計されており、外観/使いやすさは通常、開発サイクルの初期段階で既に受け入れられています。システムが要件仕様をカバーしている場合、クライアントが「これは私たちが望んでいたものではありません。これをやり直してください」と言うことができないはずです。
私の質問は基本的に、これら 2 つのテスト フェーズのテスト ケースはどのように異なるのでしょうか? どちらもエンドツーエンドのテストであり、それが機能するシステムであり、仕様を満たしていることに焦点を当てています。これは、ビジネス ニーズでもあります (注文したものであるため)。システム テストのテスト ケースは、両方とも完全なフローをカバーしているため、受け入れテストで再利用できるように見えますか?
perl - 大量の perl スクリプトを自動的に実行するにはどうすればよいですか?
システムの安定性テストのために、Windows で 100 以上の perl スクリプト (元従業員が作成) を実行する必要があります。各スクリプトにはいくつかの関数があり、各関数は特定の Linux コマンドをバックエンド システムに送信し、結果を取得します。結果はログ ファイルに書き込まれます (現在、各スクリプトには 1 つのログ ファイルがあります)。結果は「成功」「失敗」です。
これらの perl スクリプトを 1 つずつ実行すると、時間が無駄になります。自動化するためにバッチ ファイルを作成することを考えていますが、結果ファイルを解析してテスト レポートを生成する必要があります。オンラインで検索したところ、Test::Harness、Test::More、Test::Mostなどのいくつかのテスト フレームワークが適しているようです。私の理解に基づくと、それらは .t ファイルのみを使用し、スクリプトは通常の perl スクリプト (.pl) であり、標準の perl テスト スクリプト (.t スクリプト) ではありません。たとえば、Test::Harness を使用している場合、すべての perl スクリプトを .pl から .t に変更し、それらを t フォルダーに配置する必要がありますか? Test::Harness で関数を呼び出す方法は? テスト プロセスを自動化し、Test::Harness のようにテスト レポートを生成するためのより良い方法を誰かが提案できますか? 例は非常に役立つと思います。
testing - 2 つのシステム間のデータの整合性をチェックするためのテスト戦略の作成
スタックオーバーフローをすばやく検索しても何も見つからなかったので、ここに私の質問があります。
2 つのアプリケーションが毎日相互に同期して膨大な量のデータの同期を維持するアプリケーションのテスト戦略を書き留めようとしています。
膨大な量のデータなので、すべてをクロスチェックしたくはありません。しかし、データ同期が発生するたびにランダム チェックを実行したいだけです。そのようなシステムでは、ここでどのような戦略が必要ですか?
私はこの2つのアプローチを考えています。1) すべてのデータのカウントを取得し、両方が同じであることをクロス チェックします。 2) ランダムな 5 つのデータ エントリを選択し、それらのプロパティが同期していることを確認します。
どんな提案も素晴らしいでしょう。
c# - Visual Studio: テスト プロジェクトが依存する Web プロジェクトを開始するにはどうすればよいですか
VS2012 に WCF アプリケーションがあります。単体テストを行うためのテスト プロジェクトも追加しました。これはすべてうまくいっています
これに加えて、システム テストを行うための別のテスト プロジェクトを追加する必要があります。ここでの考え方は、Web サービスが開始され、テスト プロジェクトが Http 要求を起動するというものです。いる環境です。
組み込みのビジュアルスタジオテストを使用してこれを行う方法が実際にあるかどうかはわかりません。通常のテスト クラスを追加すると、Web サービスを実行する Web サイトが起動せず、テストが失敗します。
私が実行しようとしているコードは次のようなものです:
ここで非常に明白な何かが欠けているように感じます。だから私の質問は:
1) この方法で Web サービスをテストできますか? プロジェクトのプロパティを設定して、最初に Web サービスを開始し、次にテスト プロジェクトを実行する方法はありますか?
または:
2)このアプローチは完全に間違っていますか?実際にすべきことは、展開後の簡単なスモークテストとして展開する環境で実行できる実行可能ファイルにテストを配置することです。