Trainiere dein Team, um zu wissen, dass "funktioniert auf meinem Computer" keine Antwort ohne "Gefängnis ohne" ist.
Haben Sie einen automatisierten Build-Server .
Führen Sie eine automatisierte Testbereitstellung durch.
Ihre Entwickler müssen wissen, dass "funktioniert" als "funktioniert auf dem Testserver" definiert ist, nicht nur auf ihrem Rechner.
Dem Entwickler muss die Reihenfolge der Aktionen angezeigt werden, die zu dem Fehler führen.
Vielleicht möchten Sie Screenshots erstellen, die den Fehler zeigen, oder möglicherweise eine Videoaufnahme (mit Tools wie Camtasia ). Menschen können ziemlich schlecht darin sein, die Abfolge von Aktionen zu beschreiben, die sie auf einem System ausgeführt haben, das zu einem Fehler geführt hat, der sich zeigt. Je mehr Informationen Sie über den Fehler erfassen und wie Sie sich selbst besser replizieren können.
Wenn es wirklich einen Fehler gibt, der sich in einer Umgebung, aber nicht in den Entwicklern darstellt, dann finden Sie heraus, ob er sich in keiner Entwicklungsumgebung oder nur in Ihrem einen Entwickler befindet.
In diesem Fall versuchen Sie, die Unterschiede zwischen den beiden Umgebungen zu reduzieren, damit Ihr Entwickler das Problem auf seinem Computer sehen kann.
Oder Sie können den anderen Weg gehen und versuchen, das Problem in der Produktionsumgebung (ohne Entwicklung) zu beheben.
Die Implementierungsdetails variieren je nach Plattform.
Sie müssen dem Entwickler so viele Informationen wie möglich geben. Sogar Dinge, die du nicht für relevant hältst.
Ich kann nicht zählen, wie oft ein Problem gemeldet wurde, und ich konnte es nicht wiederholen, nur um später eine Information herauszufinden, die der Benutzer ursprünglich nicht aufgenommen hatte, aber der Schlüssel zum Entsperren war puzzle.
Sie müssen diese Antwort auch nicht akzeptieren und sagen: "Nun, etwas muss zwischen Ihrem und meinem Setup anders sein, was können wir tun, um es zu lösen".
Wir arbeiten mit diesem Problem, indem wir eine Entwicklungsumgebung über der lokalen Entwicklung haben, die so nah wie möglich am produktiven System ist, was Einrichtung, Hardware usw. angeht. Als Folge davon treten fast alle Probleme in der Produktionsumgebung auf sind auf diesem Entwicklungssystem reproduzierbar, auch wenn sie nicht auf lokalen Entwicklungsmaschinen reproduziert werden können.
Dies ist eine häufige Eskapistenretorte, der ich von Teams begegne. Meine Antwort lautet normalerweise: "Sie wissen, Ihr System ist nicht der Produktionsserver und dort muss er arbeiten". Mit anderen Worten, diese Entschuldigung ist einfach nicht akzeptabel.
Ich gebe ihnen auch die Möglichkeiten an:
a. Es gibt einen Konfigurationsunterschied zwischen dem lokalen System und dem Server.
b. Bestimmte Abhängigkeiten der Funktionalität werden auf dem Server nicht aktualisiert.
c. Sie haben ihren Browser-Cache nicht gelöscht.
d. Ich repliziere das Problem auf dem Staging-Server und demonstriere es ihnen.
e. ... und so weiter, je nach Fall.
Versuchen Sie, den Benutzer, der das System des Fehlers gefunden hat, so weit wie möglich neu zu erstellen: Von der Server-Konfiguration zur Maschinen-Konfiguration einschließlich Browser und Betriebssystem und so weiter. Sie sollten wahrscheinlich verschiedene Setups haben, auf denen Sie Ihre App testen können, bevor Sie sie veröffentlichen.
IE Tester ist ein gutes Werkzeug für diese Art der Fehlersuche. Wenn Sie viele Browser testen müssen, dann sind virtuelle Maschinen wie Virtual PC die beste Wahl, so dass Sie viele Client-Setups auf Ihrem Testserver haben können.
ahh ja ... die älteste Entschuldigung im Buch.
Unter der Annahme, dass sowohl der Entwickler als auch der Tester auf demselben Server testen, würde ich versuchen, den Fehler zu isolieren, indem ich den Unterschied zwischen dem Entwicklercomputer und dem Testercomputer identifiziere. Könnte eine kleinere Version wie Flash-Version, Browser Unterschiede sein oder vergessen, Ihren Browser-Cache löschen
Ich würde auch empfehlen, ein automatisiertes Testframework zu verwenden und Apps auf einem dedizierten Testserver zu testen.
Nicht viel, was Sie als Endbenutzer tun können, aber als Entwickler können Sie viele dieser Probleme vermeiden, indem Sie eine Menge Protokollierung in das System einbeziehen - Die Unterschiede, die der Benutzer denkt, sind nur die einfachen Dinge, die Sie haben bereits getestet, aber eine gute Protokollierung lässt Sie genau sehen, was beim Ausfall des Systems passiert ist. Ich habe einige Bugs gefunden, die so nicht möglich sind.
Tags und Links debugging remote-debugging