Manchmal meldet mein QA-Team Fehler, aber weder ich noch sie haben eine Idee, wie sie reproduziert werden können. Dies führt zu sehr langen und frustrierenden Debugging-Sitzungen, die manchmal nicht einmal zu Ergebnissen führen.
Meine Software ist stark mit proprietärer Hardware verbunden, sodass Fehler aus vielen Richtungen gleichzeitig auftreten können.
Sollte ich mehr von ihnen erwarten als "Ihre Software ist abgestürzt, als ich einen Knopf gedrückt habe" oder sollte ich mir selbst überlegen, was passiert ist?
BEARBEITEN:
Einer meiner Mitarbeiter wies darauf hin, dass wir wahrscheinlich alle Entwickler hier sind, so dass die Ergebnisse möglicherweise ein wenig voreingenommen sind
Antworten:
Die Qualitätssicherung sollte immer versuchen, die Fehler für Sie so einfach wie möglich zu reproduzieren, und die Fehlerbeschreibung sollte die durchgeführten Schritte enthalten.
Wenn sie die Fehler jedoch nicht einfach reproduzieren können, sollten sie dennoch mit geeigneten Titeln / Überschriften und einer vollständigen Beschreibung dessen, was sie getan haben, um den Fehler zu verursachen, in die Fehlerdatenbank eingegeben werden. In der Fehlerbeschreibung sollte klar angegeben sein, dass sie den Fehler nicht reproduzieren können (möglicherweise mit einem Kommentar wie "fünfmal ausprobiert, es ist einmal passiert"). Auf diese Weise kann eine andere Person, die denselben Fehler sieht, mit ihren Ergebnissen zur Fehlerdatenbank hinzufügen, und Sie erhalten so viele Informationen wie möglich, die später wichtig sein können, um Zeit beim Aufspüren des Problems zu sparen.
Außerdem können Sie die Informationen filtern - es gibt möglicherweise viele Fehler in verschiedenen Systemen, von denen Sie wissen, dass sie alle mit (z. B.) einem Bereich des Codes verknüpft sind -, wenn die Qualitätssicherung nichts meldet (da sie diese nicht reproduzieren können) ) dann kommen diese Informationen nicht zu Ihnen.
quelle
... a full description of what they did to cause the bug
. Wie unterscheidet sich das von einem Repo?The software crashed
vsThe software crashed editing foowidgets
vsThe software crashes when viewing a foowidget and toggling the frobulator 10 times followed by pressing this key sequence (stack trace attached)
. Das letzte Detail mag nicht offensichtlich sein, aber die zweite Beschreibung anstelle der ersten zu haben, ist sicherlich hilfreich.Es sieht so aus, als würde Ihre QS-Abteilung zu viele Erkundungstests durchführen (dh sie haben keinen guten Testplan).
Erkundungstests sind gut und identifizieren Problembereiche. Von dort aus sollten sie jedoch reproduzierbare Testfälle (dh einen Testplan) definieren, die bestimmte Fehler aufdecken.
Es gibt eine Reihe von Gründen, warum ein korrekter Repro notwendig ist (nicht nur gut, sondern auch notwendig):
Also, wie SteveCzetty bemerkt: Schließen Sie es als kein Repro und machen Sie sich wieder an die Arbeit.
quelle
Wenn der Fehler nicht konsistent reproduziert werden kann, wie wird die Qualitätssicherung jemals wissen, ob er behoben wurde?
quelle
Ja, Sie sollten mehr von ihnen erwarten. Sie sollten sagen können:
Wenn alles, was sie sagen, "es ist abgestürzt" ist, sind sie nicht sehr gut. Selbst wenn die oben genannten Schritte nicht zu 100% reproduzierbar sind, kann eine ausreichend große Stichprobe dieser Abstürze dazu beitragen, die Ursache einzugrenzen, sobald ein Muster erkannt wird.
quelle
Mein Rat ist, diese Fehler zu lesen und ihnen einen guten alten Gedanken zu geben. Wenn Sie eine mögliche Ursache nicht herausfinden können, vergessen Sie sie vorerst.
Die Qualitätssicherung sollte jedes Problem dokumentieren, das sie findet, auch wenn sie keine Ahnung haben, wie es passiert ist. Es ist Aufgabe von QA, Probleme zu reproduzieren, aber realistisch gesehen ist dies nicht immer möglich. Manchmal hat es nichts mit dem zu tun, was sie in den letzten 10 Minuten getan haben. Vor einem Tag ist etwas in einen ungültigen Zustand geraten, und es wurde nur durch einen der letzten 10 Schritte offensichtlich.
Bei diesen "1 in 1000" -Fehlern sollte die Qualitätssicherung versuchen, sie ein wenig zu reproduzieren. Wenn sie keinen Erfolg haben, sollten sie den Fehler dokumentieren und dann etwas mehr versuchen.
Der Grund, warum sie den Fehler ziemlich früh eingeben sollten, ist, dass der Programmierer den Code viel besser kennt als die Qualitätssicherung und das Problem möglicherweise sofort kennt. Es könnte der Code sein, den sie überarbeitet haben. Es könnte die Funktion sein, die sie zur Hälfte implementiert und dann vergessen haben. Sie haben vielleicht keine Ahnung, aber es macht keinen Sinn, wenn der Tester ein paar Stunden damit verschwendet, ein Problem zu reproduzieren, das für die Person, die es codiert hat, offensichtlich ist. Der Tester kann dem Fehler später jederzeit weitere Details hinzufügen.
Der Fehler sollte so viele Informationen wie möglich enthalten. Was auch immer sich der Tester über die Vorbereitung des Problems erinnern kann, sollte in schmerzhaften Details niedergeschrieben werden. Alle Absturzprotokolle, Datenbank-Snapshots oder relevanten Screenshots sollten ebenfalls angehängt werden.
Wenn der Fehler nie reproduziert wird, großartig! Es tut nicht weh, es in der Datenbank zu haben. Wenn das Programm veröffentlicht wird und ein Benutzer später einen ähnlichen Fehler meldet, können Sie seine Erfahrung mit den Angaben im Bericht vergleichen und nach Ähnlichkeiten suchen.
Nach meiner Erfahrung werden die saftigsten Fehler nicht aus folgenden Testplänen gefunden. Manchmal muss man die Dinge ein paar Wochen schmoren lassen, damit sich Mond und Sterne ausrichten, was einen bösen Fehler verursacht. Wenn die Qualitätssicherung Detektivarbeit leisten und mögliche Ursachen finden kann, klopfen Sie ihnen auf den Rücken. Aber manchmal, wer weiß, was passiert ist?
quelle
Viele Fehler sind erst reproduzierbar, wenn Sie wissen, wie Sie sie beheben können. Das bedeutet nicht, dass sie nicht repariert werden müssen. Ich habe letztes Jahr einen Fehler behoben, den ich immer noch nicht reproduzieren kann. Es erfordert eine bizarre Kombination eines genau zeitgesteuerten Übertragungsfehlers mit sehr spezifischen Mülldaten an einem bestimmten Speicherort auf dem Stapel. Leider hat einer unserer Kunden das "Glück", ständig in diesen Zustand zu geraten.
Ermutigen Sie die Qualitätssicherung auf jeden Fall, nach Möglichkeit Schritte zur Reproduzierbarkeit aufzunehmen, aber bemängeln Sie sie nicht, wenn dies nicht möglich ist. Manchmal hilft es Ihnen zu wissen, wo Sie die Protokollierung hinzufügen müssen. Manchmal sagt es Ihnen nur, was den Fehler nicht verursacht, aber ein Fehlerbericht ist immer nützlich.
quelle
Wenn Sie meinen, sollte die Qualitätssicherung die Schritte zur Reproduktion des Fehlers enthalten, wenn dies möglich ist, lautet die Antwort Ja. Wenn Sie meinen, sollten sie nur Fehler aufzeichnen, die sie reproduzieren können, dann absolut nicht. Bugs sind Bugs, egal ob sie nur um Mitternacht bei Vollmond auftreten oder jedes Mal, wenn Sie sie ansehen. Einige Fehler sind nicht deterministisch (klassisches Beispiel ist eine nicht initialisierte Variable, bei der der erfasste Wert halb zufällig ist). Dies bedeutet nicht, dass sie nicht aufgezeichnet, untersucht und wenn möglich behoben werden sollten.
Nicht reproduzierbare Fehler sollten im Allgemeinen eine niedrige Priorität haben, sie sollten jedoch unbedingt aufgezeichnet werden.
quelle
IMO, du solltest. QA machen ihre Arbeit nicht, wenn sie Ihnen keine Reproduktionsschritte geben können. Verschwenden Sie keine Zeit damit, etwas zu reproduzieren, das Sie nicht können. Schließen Sie es einfach als "Kann nicht reproduzieren" und fahren Sie fort.
Ihre Zeit ist viel wertvoller als das.
quelle
Ein Fehlerbericht sollte enthalten:
Z.B:
DELETE * FROM tSuppliers
), den Lieferantendialog geöffnet und auf die Dropdown-Liste Lieferant geklickt.GUPOS ERROR #0000000: SOMETHING WENT WRONG!
. Als ich auf die Nachricht klickte, verschwand die App vom Bildschirm und vom Task-Manager.Also ja - es sollte die zu reproduzierenden Schritte enthalten. Die Tatsache, dass sie nicht das Bedürfnis haben, dies einzubeziehen, scheint darauf hinzudeuten, dass sie glauben, ihre Aufgabe sei es, "die Software zu brechen", anstatt Fehler zu identifizieren.
quelle
QA sollte in der Lage sein, die Fehler basierend auf den eingegebenen Schritten zu reproduzieren. Wenn sie sich Mühe gaben und sich immer noch nicht reproduzieren konnten, sollten sie die Fehler immer noch mit so vielen Details wie mit dem Zeitstempel eingeben, damit die Entwickler einen Blick auf die Anwendung werfen und Protokolle debuggen können, um weitere Details zu erhalten.
quelle
Hier geht es um Geld. Warum sollte ein Teammitglied in der Lage sein, eine schlecht definierte Aufgabe mit geringen Erfolgschancen zu erstellen, die einen (hoffentlich) hochbezahlten Entwickler belastet?
Hier geht es nicht um Hackordnung, Hierarchie, Arroganz, uns gegen sie oder ähnliches. Hier geht es nur darum, in Aktivitäten zu investieren, die dem Produkt einen Mehrwert verleihen.
Wenn nachgewiesen werden kann, dass ein Problem den Wert des Produkts negativ und messbar beeinflusst, sollte es untersucht, reproduziert und behoben werden. Beheben Sie Ihre Produktfehler-Pipeline, um das Rauschen herauszufiltern.
quelle
Ihr QA-Team ist scheiße
Gehen Sie zu ihnen und fordern Sie sie auf, ein Dokument zu lesen, das jeder professionelle Tester direkt in seinem Gehirn gedruckt haben muss (ich war einmal ein Tester und ich habe es immer noch genau dort in meinem Gehirn): Wie man Fehler effektiv meldet .
Zeigen Sie sie insbesondere auf den Abschnitt "Zeigen Sie mir, wie ich mich zeigen kann" :
Wenn sie dich anschreien und sich beschweren, dass "Käfer aus vielen Richtungen gleichzeitig kommen können" , sag ihnen, dass sie noch mehr saugen, als du vorher gedacht hast. Sagen Sie ihnen, dass Testbarkeit eine Funktion ist, die sie unter anderen Projektfunktionen bewerten sollten, und sie sollten Anstrengungen unternehmen, um diese Funktion richtig zu machen.
quelle