Titel/Betreff-Formalismus in Fehlerberichten (nur standardisierte Fehlerbenennung): Ich war , Ich tat , Ich habe

Einleitung

Wir verwenden verschiedene Formalismen in Titeln / Themen für verschiedene Zwecke (Story, Feature, Test), aber wir haben keine Formalismen für Fehlerberichte ...

Wir untersuchen die Vorteile eines standardisierten Titelformats auf Bugs .

Verschiedene Formalismen für Titel /*Fachgebiete* in Gebrauch, praktisch

Wir verwenden diese Formalismen mit ziemlichem Erfolg in Titeln /* Fächern * .

Titel der Geschichte

Für Scrum-Geschichten verwenden wir den folgenden Titelformalismus:

As a <role>, I want <goal/desire> so that <benefit>

Feature-Titel

Für FDD-Funktionen (Feature-Driven Development) verwenden wir den folgenden Titelformalismus:

<action> the <result> <by|for|of|to> a(n) <object>

Testet den Formalismus

Für Akzeptanztests (Verhalten) verwenden wir den folgenden Formalismus:

GIVEN THAT <conditions>/<initial state>/<context> (no action)
WHEN <actions> (performed by user)
THEN <expected results>/<consequences> (that the system does)

Auf der Suche nach einem Bug-Titel-Formalismus

Titel/Betreff-Formalismus

Für Fehlerberichte denken wir, dass wir einen Titelformalismus annehmen werden, der dem folgenden nahe kommt:

I was <context>, I did <action>, I got <actual behaviour>

Ich konzentriere mich hier nur auf den Titel, nicht auf die vollständige Beschreibung!

Vorteile:

  • Homogenität zwischen den Teams (wenn Fehler übergangen werden müssen)
  • Strenge zur besseren Beschreibung und zum besseren Verständnis
  • Zuordnung von:
    • vom „Kontext“ des Fehlers zum „Kontext“ des Abnahmetests
    • vom „tatsächlichen Verhalten“ des Fehlers bis zu den „erwarteten Ergebnissen“ des Abnahmetests

Nachteile:

  • Es ist eine Änderung, die im Projekt eingeführt, dokumentiert, gefördert und nachverfolgt werden muss
  • Sie nennen es

Richtlinien für den Titel/das Thema

Dieser Formalismus reicht jedoch nicht nur für einen Titel aus, da möglicherweise einige Richtlinien erforderlich sind:

  • sollte so kurz wie möglich sein
  • Erwähnen Sie keine technische Komponente oder Funktion, da die Vermutung und Bestätigung Teil der Untersuchung und nicht der Zweck der Erstellung des Fehlers ist
  • machen Sie keine Vermutungen oder Vermutungen
  • Beschreiben Sie im Grunde nur so kurz wie möglich den Kontext, die Aktion und das tatsächliche Verhalten, da dies sowieso in der vollständigen Beschreibung ausführlich beschrieben wird
  • fügen Sie kein Markup wie [Zeug] oder (Ding) hinzu, weil es das Lesen behindert
  • Fügen Sie keine teamspezifischen Schlüsselwörter hinzu, da ein Fehler von Team zu Team weitergegeben werden soll
  • Versuchen Sie nicht, das Problem in der Berichtsphase zu lösen, dies ist die Aufgabe des Beauftragten
  • Bringen Sie die richtige Balance/Dichotomie zwischen einem kaum umgrenzten Thema und einem vollständig verstandenen Thema, da es einerseits zu vage ist und andererseits die Auflösung fast fertig ist
  • bedeutungsvoll bleiben

 Vollständige Beschreibung (nicht das Ziel dieses Beitrags)

Dies ist natürlich nicht das Ziel dieses Beitrags, aber in der vollständigen Beschreibung des Fehlerfreitextes wird Folgendes stehen:

  • Kontext
  • Schritte zum Reproduzieren
  • Tatsächliches Verhalten
  • Erwartete Ergebnisse
  • Optional
    • Links zu Dokumenten
    • Protokolle
    • Diagramme
    • Screenshots
    • ...

Mit allen Feldern der Bugtracker-Software, wie betroffene/fixierte Versionen, Schweregrad, Priorität, Links zu anderen Tickets usw.

Aber das ist nicht Thema dieses Beitrags...

Kommen wir zurück zu den Fehlertiteln / * Themen *.

Offene Fragen zu Fehlertiteln

  • Halten Sie es für sinnvoll, einen solchen Titel /* Betreff *-Formalismus einzuführen?
  • Wie benennst du deine Käfer? (Wie Sie Fehler vollständig beschreiben und verwalten, ist nicht das Ziel dieser Diskussion.)
Von wem erwarten Sie diese Fehlerberichte? Wenn es jemand außerhalb Ihres Entwicklungsteams (oder anderer Entwicklerteams) ist, fühlt sich das für mich etwas anmaßend an. Sie laufen Gefahr, wertvolles Feedback zu verlieren, weil die Leute Ihre detaillierten Anforderungen nicht erfüllen wollen (oder können).

Antworten (4)

TL;DR

Halten Sie es für sinnvoll, einen solchen Titelformalismus einzuführen?

Nein. Ein Titel ist selten ein eindeutiger Identifikator über Fehler hinweg, noch wird er wahrscheinlich alleine genug kommunizieren, um die Einschränkungen zu rechtfertigen.

Titel sollten aussagekräftig sein

Obwohl ich zustimme, dass Titel aussagekräftig sein sollten, ist es sehr schwierig, einen kurzen Formalismus zu erstellen, der in ein paar Dutzend Zeichen zusammengefasst werden könnte. Sie schlagen zum Beispiel vor:

I was <context>, I did <action>, I got <actual behaviour>

Das ist schon ziemlich lang, aber wenn Sie dieser Idee bis zu ihrem logischen Ende folgen, sollte es noch länger werden. Ein Teil eines guten Fehlermeldeprozesses besteht darin, festzustellen, wie der Fehler oder die Fehlfunktion die Erwartungen (manchmal auch als Benutzervertrag bezeichnet) nicht erfüllt hat, sodass das erwartete Verhalten fehlt. Wenn ich dasselbe Beispiel verwende, könnte ich sagen:

Ich habe versucht, eine Nachricht
mit dem --clearsignFlag eindeutig zu signieren, aber
als ich die Nachricht signiert habe, habe ich eine Kopfzeile und meinen ursprünglichen Text zurückerhalten.
Ich habe erwartet, dass dem Header und dem Text ein gültiger Signaturblock folgt.

Der Teil, in dem ich erkläre, was ich erwartet habe, ist wesentlich für das Verständnis des Problems. Bedenken Sie: Wenn ich F1 drücke und mein Teamkollege einen Stromschlag bekommt, was genau ist der Fehler? Ist das Problem, dass dies nur passieren sollte, wenn ich F2 drücke? Dass der Stromschlag ein Pie ins Gesicht hätte sein sollen? Oder ist dies tatsächlich eine Funktion, die wie vorgesehen funktioniert?

Fürs Protokoll, ich habe tatsächlich einen echten Fehlerbericht eingereicht – lose basierend auf dem Beispiel, das ich oben gegeben habe, aber der eigentliche Titel war „GPG-Dienste signieren nicht ordnungsgemäß mit Smartcards“. Dieser Titel ergibt für Sie ohne Kontext vielleicht keinen Sinn, war aber tatsächlich eine genaue Zusammenfassung des Fehlers und dauerte nur 46 Zeichen. Die Verwendung Ihres Formalismus hätte 139 Zeichen erfordert und (meiner Meinung nach) das Problem nicht annähernd so gut zusammengefasst.

Die Perspektive des Projektmanagements

Das eigentliche zugrunde liegende Problem ist, warum Sie denken, dass Sie Fehlertitel überhaupt einschränken müssen. Dies ist oft ein Projektgeruch, der auf Folgendes hinweist:

  • Fehlerberichte sind mehrdeutig.
  • Die Ursachenanalyse ist schwierig.
  • Es ist schwierig, innerhalb des Teams effektiv über Fehler zu kommunizieren.
  • Das Melden oder Kommunizieren von Fehlern außerhalb des Teams ist schwierig.
  • Anderes Symptom, das wahrscheinlich auf die Kommunikation hinausläuft.

Es ist zwar nichts falsch daran, Ihren Fehlerberichtsprozess zu formalisieren, aber denken Sie daran, dass Prozesskontrollen ein definiertes Problem oder Risiko effektiv kontrollieren sollten. In Ihrem Fall ist unklar, was Sie kontrollieren und ob die vorgeschlagene Kontrolle Ihr Risiko tatsächlich mindern wird.

Dies ist etwas, das Sie vielleicht mit Ihrem Team und Ihren Stakeholdern besprechen möchten. Wenn es sich um ein echtes Problem handelt, ist es in der Regel immer noch besser, eine Basislösung einzusetzen, die von den Kontrollverantwortlichen unterstützt wird, anstatt einen Prozess per Befehl aufzuerlegen. YMMV.

Danke für deine Perspektive! Ich habe hier nur die Fehlertitel in Frage gestellt, ich habe meinen Beitrag geändert, um dies widerzuspiegeln.

Nun, wenn solch ein Formalismus für Sie funktioniert – dann möchte ich nichts dagegen sagen.

Meiner Erfahrung nach:

Wenn der Fehler tatsächlich übersehen und nicht als Anforderung besprochen wird – dann werde ich den Kontext setzen und ihn als Anforderung schreiben und das tatsächliche Ergebnis angeben. Ich verwende Gurken gerne für solche Zwecke:

Angenommen, ich bin ein Benutzer, der die Parksteuer berechnen möchte,
und ich habe das Startdatum auf den 1. Februar 2012 festgelegt,
und das Enddatum ist den 29. Februar 2012
, und die aktuelle Steuer pro Tag beträgt 1 USD
, wenn ich die Steuer für den Zeitraum berechne
Dann sollte ich ein Ergebnis von 29 Dollar erhalten
, aber das tatsächliche Ergebnis war 28 Dollar

Dann kann ich einen Titel vergeben. Der Titel enthält den tatsächlichen Bestandteil (Steuerrechner) und die Frage oder Behauptung:

Steuerrechner sollte Schaltjahre berücksichtigen
oder
Steuerrechner berechnet falsche Summe für Schaltjahre

Andererseits würde ich nicht viel Kontext setzen, wenn ich möchte beschreiben Serverabstürze oder JavaScript-Fehler. Es wäre lächerlich, solche Dinge in Given When Then zu beschreiben oder einen geschäftlichen Kontext für JavaScript-Fehler zu setzen. Das ist ein technischer Fehler und er sollte einen technischen Titel haben (z. B. eine Beschreibung der Fehlermeldung)
. Einige meiner Fehler sind so kompliziert zu beschreiben und zu reproduzieren, dass ich besser eine Videoaufzeichnung anhänge.

Ich schreibe Bugs für Entwickler und Management. Mein Ziel ist es, Fehlerberichte zu erstellen, die klar und kurz sind. Unter Berücksichtigung des agilen Kontexts, in dem ich arbeite, können wir alle verpassten Details jederzeit per Skype von face 2 face besprechen.

Also würde ich Bugs auf so formelle Weise schreiben. Aber jedes Projekt hat seinen eigenen Kontext. Und es kann für Sie funktionieren, wenn ein solcher Ansatz Probleme löst.

Vielen Dank! Ich mag das 'But'-Schlüsselwort sehr, das am Ende eines Given+When+Then-Verhaltens hinzugefügt wird, aber es bezieht sich auf die vollständige Beschreibung des Fehlers, nicht auf den Titel.

Sie können nur feststellen, ob etwas ein Fehler ist, wenn es nicht wie ursprünglich beabsichtigt funktioniert, d. h. die ursprünglichen Akzeptanzkriterien nicht mehr erfüllt werden. Protokollieren Sie einfach den Fehler mit den fehlgeschlagenen Akzeptanzkriterien.

Wenn Sie die Akzeptanzkriterien überhaupt nicht hatten, dann haben Sie entweder eine Menge technischer Schulden zurückzuzahlen, und dies sollte als technische Schuld angesehen und für das Management sichtbar gemacht werden.

Wenn es schließlich ein neues Akzeptanzkriterium ist, das als Fehler wahrgenommen wird, behandeln Sie es als Änderung und fügen Sie es dem Product Backlog hinzu.

Eine der neuen Möglichkeiten in einer Cloud-Software, die ich gehört habe, ist die folgende Art des Testens und Meldens von Fehlern. Dies ist ein Offshore- und Onsite-Modell, bei dem die Überrundung 2 bis 3 Stunden beträgt.

  • Benutzer oder Tester testen die Anwendungsfälle. Wenn es fehlschlägt, zeichnet er die befolgten Schritte vollständig auf und lädt diese Problemaufzeichnungen am Ende des Tages in die Cloud hoch.
  • Wenn der Entwickler ins Büro kommt, überprüft er diese Aufzeichnungen und behebt das Problem.

Auf diese Weise wird viel Zeit gespart und das Problem ist klar definiert. Der Gedanke, dies zu teilen, ist möglicherweise keine genaue Antwort auf den Formalismus. Dies ist auch eine Möglichkeit, wie wir es tun können.