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