開発者にバグを報告すると、ブラウザ アプリなのに「私のシステムでは動作する」と戻ってくることがよくあります。それをどのように整理しますか?
8 に答える
トレーニング/プロセスの観点から:
チームをトレーニングして、「私のマシンで動作する」ということは、刑務所から抜け出すための応答ではないことを理解させます。
自動化されたビルド サーバーを用意します。
自動化されたテスト展開を行います。
開発者は、「動作する」とは自分のマシンだけでなく、「テスト サーバー上で動作する」と定義されていることを知っておく必要があります。
テスト/デバッグの観点から:
開発者は、バグが発生する一連のアクションを示す必要があります。
バグを示すスクリーンショットやビデオ キャプチャ ( Camtasiaなどのツールを使用) をキャプチャしたい場合があります。人々は、システム上で実行したアクションのシーケンスを説明するのが非常に苦手な場合があり、その結果、バグ自体が明らかになりました。そのため、バグとそれ自体を複製する方法について取得できる情報が多ければ多いほどよいのです。
開発/環境の観点から:
ある環境では発生するが、開発者の環境では発生しないバグが本当にある場合は、それが開発環境以外で発生するのか、それとも自分の開発者の 1 つの環境だけで発生するのかを調べてください。
そこからは、開発者が自分のマシンで問題を確認できるように、2 つの環境の違いを縮めようとするケースです。
または、別の方法で、実稼働 (非開発) 環境で問題をデバッグすることもできます。
これらの実装の詳細は、プラットフォームによって異なります。
できるだけ多くの情報を開発者に提供する必要があります。関連性がないと思われるものでさえ。
問題が報告され、それを繰り返すことができなかった回数を数えることはできませんが、ユーザーが最初に含めていなかったが、パズルのロックを解除するための鍵であった情報を後で見つけることができました.
また、その答えを受け入れる必要はなく、「あなたのセットアップと私のセットアップでは何かが違うはずです。それを整理するにはどうすればよいですか」と言う必要があります。
ローカル開発の上に、セットアップ、ハードウェアなどの点で本番システムにできるだけ近い開発環境を用意することで、その問題に対処します。その結果、本番環境で発生するほとんどすべての問題は、ローカルの開発者のマシンで再現できなくても、その開発システムを再現できます。
これは、私がチームから遭遇する一般的な現実逃避者の反論です。通常、私の応答は次のとおりです。というか、そんな言い訳は通用しない。
私はまた彼らに可能性を示します:
を。ローカル システムとサーバーの間には構成の違いがあります。
b. 機能の特定の依存関係は、サーバー上で更新されません。
c. ブラウザのキャッシュをクリアしていません。
d. ステージング サーバーで問題を再現し、デモンストレーションを行います。
e. ・・・など、場合によっては。
バグのシステムを見つけたユーザーを可能な限り再現してみてください: サーバー構成から、ブラウザーや OS などを含むマシン構成まで。リリース前にアプリをテストするために、おそらくいくつかの異なるセットアップが必要です。
IE Tester は、この種のトラブルシューティングに適したツールです。多数のブラウザーをテストする必要がある場合は、Virtual PC などの仮想マシンが最善の策です。これにより、テスト サーバーに多くのクライアントをセットアップできます。
ああ、はい...本の中で最も古い言い訳。
開発者とテスターの両方が同じサーバーでテストしていると仮定すると、開発者のマシンとテスターのマシンの違いを特定することで、バグを分離しようとします。フラッシュのバージョン、ブラウザの違い、またはブラウザのキャッシュをクリアするのを忘れているなど、些細なことが原因である可能性があります
自動化されたテスト フレームワークを使用し、専用のテスト サーバーでアプリをテストすることもお勧めします。
エンド ユーザーとしてできることはあまりありませんが、開発者として、システムに多くのログを含めることで、これらの問題の多くを回避できます。ユーザーが考える違いは、既にテストした単純なことにすぎません。しかし、適切なログを記録することで、システムに障害が発生したときに何が起こっていたかを正確に把握できます。そのようには起こり得ないバグをかなり見つけました。