5

単体テスト/自動テストに関しては比較的経験が浅いので、意味が分からない場合は質問をご容赦ください。

私が取り組んでいる現在のコード ベースは非常に緊密に結合されているため、ユニット テストを実行する前にほとんどのコードをリファクタリングする必要があります。そのため、いくつかの投稿を読んで Selenium を発見しました。クールなプログラム。

私のクライアントは、サイトが稼働していること、および特定の機能/側面が正常に実行されていることを確認するために、特定の自動テストを本番サーバーで 10 分ごとに実行することを望んでいます。

サイトにさらにストレスを加えているため、実稼働サーバーに対してテストを実行することを実際に考えたことはありません. ステージング サーバーに対してすべてのテストを実行すると常に考えていました。それらが機能する場合は、ホスティング プロバイダーに問題が発生しない限り、本番サイトが運用されていると見なすことができます。

実際の本番サーバーで本番コードをテストすることについて、何か考えはありますか?

どうもありがとう!

4

6 に答える 6

8

セレンスクリプトを「テスト」ではなく「監視」と考えていただければ助かりますか? たとえそれが定期的な PING であっても、ホームページを頻繁にロードするだけであっても、あらゆる主要な Web サイトで何らかの監視が行われていることを願っています。この方法をやりすぎることは可能ですが、一般的な概念を恐れないでください。では、このモニタリング/テストは、あなたとあなたのクライアントにとってどのようなメリットがあるでしょうか?

  1. どういうわけか、世界中の最高のテストのすべてが、ユーザーが行う奇妙なことを、意図的に、または数字の力によって予測できるわけではありません (タイプライターに乗った 100 万匹のサルが Hamlet を書くことができるとしたら、幸せなユーザーが数百回クリックすると何ができるか想像してみてください。サイトが稼働しているかどうかはわかりますが、ユーザーがウムラウトを含む値を入力したため、テーブルが壊れていてレポートが失敗している場合はわかりません.

  2. サイトはステージング サーバー上で優れたパフォーマンスを発揮するかもしれませんが、時間の経過とともに低下し始める可能性があります。これらのセレン テストのパフォーマンスを監視している場合は、速度低下の苦情に先んじることができます。もちろん、あなたが言ったように、監視が問題を引き起こしていないことを確認してください! 特定のテストは X 分ごとに実行するのが適切であり、他のテストは 1 日 1 回、午前 3 時に実行する必要があることをクライアントに納得させる必要がある場合があります。

  3. ライブサイトに緊急の変更を加えることになった場合、すべてが正常であることを確認するためのテストが実行されていることを知っていると、より自信を持つことができます.

于 2009-07-15T03:52:08.883 に答える
4

私は長い間、同様の本番サーバーで作業してきました。私の経験から言えることは、ステージ環境で変更/パッチをテストし、それを本番サーバーにデプロイする方が常に良いということです。これは、データの量を除いて、ステージング環境と本番環境の両方が似ているためです。本当に必要な場合は、コード/パッチがインストールされたら、実稼働サーバーでいくつかのテストを実行しても問題ありません。ただし、常に運用サーバーでテストを実行することはお勧めできません。また、良い方法でもありません。

于 2009-07-15T03:47:43.637 に答える
1

私の提案は、本番データベースを夜間にステージング/テスト環境にシャドウダウンし、そこでユニットテストを毎晩実行することです。クライアントが提案したアプローチは、システムに導入された新しいデータがシステム内で例外を引き起こさないようにするのに適していますが、本番環境でこれを行うことに同意しません.

ステージング環境で実行すると、運用環境をテストベッドとして使用せずに、新しいデータがシステムに流れ込むときに機能を評価できます。

[編集] サイトが稼働していることを確認するには、テスト スイート全体をサイトに対して実行するのではなく、10 分ごとに ping を実行する簡単なプログラムを作成できます。

于 2009-07-15T03:50:30.383 に答える
0

これはテストというよりも監視に似ているというピーターの意見に同意します。小さな違いですが、重要な違いだと思います。クライアントの要件がサービス レベル アグリーメントに関連している場合、彼らの要求は奇妙に聞こえることはありません。

また、サービス プロバイダーに問題が発生していない場合、サイトが正常に機能していると考えるのは安全ではありません。サイトがリクエストでいっぱいになったらどうしますか? あるいは、テストで正常に実行された SQL が、より大規模な実稼働データベースで問題 (タイムアウト、ブロックなど) を引き起こし始めるのでしょうか?

于 2009-12-02T06:05:27.727 に答える
0

自動化されたテストを実行するために必要な実稼働環境での変更点は何ですか? サーバーが稼働していることを確認するために監視とアラートが必要になる場合があることを理解しています。

于 2009-07-15T03:45:21.190 に答える
0

選択が何であれ、それが監視またはテスト タイプのソリューションであるかどうかにかかわらず、クライアントに対して何よりもまずすべきことは、クライアントに警告することです。ほのめかしたように、本番環境でテストすることはほとんど良い考えではありません。彼らが危険を認識し、他に論理的な選択肢がない場合は、非常に最小限のテストを慎重に作成します。それらをレイヤーで適用し、それらがアプリに問題を引き起こしていないことを確認するためにそれらを注意深く監視します.

于 2009-07-23T18:51:34.317 に答える