n 層 Web アプリでは、コードのテスト専用の別のデータベースに対して統合テストを実行する必要がありますか? 本番データベースに対してもテストするのは標準的な方法ですか?
2 に答える
テストされていないコードを本番環境で実行しないでください。結局のところ、すべてのデータを消去するバグがあることを発見したくはありません。それが、テストが見つけなければならないものです。また、本番システムにはテスト/ステージング データを含めないでください。実際のデータを使用した定期的なテストのために、本番環境からデータをダンプし、別の環境にロードすることをお勧めします。
テスト データベースが必要です (本番環境とは共有されません)。すべてのテストの前にデータを消去することをお勧めします。
本番環境でスモーク テストを実行できます。彼らはユーザー (エージェント) のふりをして、多くのページにアクセスし、何かを作成することさえあります (特別なタグを使用して、それらを再度見つけて削除できるようにします)。
独自のデータセットを持つ別のデータベースユーザーを考えたいと思います。データベース スキーマは同じである必要があります。同じデータベース ユーザーを使用して本番データベースでテストを実行することはありません。テスト ロジックは、深刻なセキュリティ上の問題につながる可能性があるため、クライアントに配信するべきではありません。
私の意見では、アプリケーションのすべての機能をテストできるようにするには、テスト目的で完全な本番環境のようなデータ セットが必要です。また、アプリケーション クライアントが配信の初期ポイントとして使用するための空のデータベース (ビジネス データを含まない) も必要です。ビジネス ロジックのテストに必要なデータがないため、このようなデータセットはテストしないでください。