Wie können Sie Fehler in Ihren persönlichen Projekten nachverfolgen? [geschlossen]


45

Ich versuche zu entscheiden, ob ich meinen Fehlerverfolgungsprozess für meine eigenen Projekte neu bewerten muss. In den letzten Jahren verfolge ich Fehler nur mithilfe von TODOTags im Code und verfolge sie in einer bestimmten Ansicht (ich verwende Eclipse, das über ein anständiges Tag-System verfügt).

Leider frage ich mich, ob dieses System nicht nachhaltig ist. Die Fehler, die ich finde, hängen normalerweise mit einem Codeausschnitt zusammen, an dem ich arbeite. Fehler, die nicht sofort verstanden werden, werden häufig vergessen oder ignoriert. Ich schrieb einen Antrag für meine Frau, die seit fast 9 Monaten einen schweren Defekt hat, und vergesse immer wieder, ihn zu beheben.

Welchen Mechanismus verwenden Sie, um Fehler in Ihren persönlichen Projekten zu verfolgen? Haben Sie ein bestimmtes System oder einen Prozess für dessen Priorisierung und Verwaltung?


Check out todo.ly
Job

1
Dies könnte eine Frage sein, die in der FAQ nicht zum Thema gehört. "Welche Technologie ist besser?"
jzd

Trello ist ein großartiges Tool für diese Art von Dingen und es ist kostenlos.
Gahooa

Antworten:


25

Fogbugz (kostenlose Einzellizenz), wenn es sich um ein langwieriges Projekt oder eine einfache Aufgabenliste handelt (mithilfe von Google-Aufgaben)


7
Nett. Ich wusste nicht, dass FogBugz eine kostenlose Version (Student and Startup Edition) hat.
Eric King

Auf einen einfachen Blick sieht es sehr interessant aus
bedwyr

Nach der Verwendung von FogBugz verstehe ich nicht, wie jemand etwas anderes bevorzugt. Um nicht den Überblick über mehrere Fogbugz-Accounts zu behalten, habe ich nur einen persönlichen Fogbugz für mich erstellt: earlz.fogbugz.com
Earlz

17

Normalerweise verwende ich ein webbasiertes Revisionskontrollsystem (Github, Bitbucket, Redmine, Google Code, ...), um meinen Quellcode zu speichern und Fehler zu verfolgen. Wenn Sie glauben, dass ein Fehler in einem bestimmten Code vorliegt, können Sie ein Problem mit der Revisionsnummer / Änderungsliste / Änderungsmenge erstellen und angeben, welche Datei und welcher Zeilenbereich Sie vermuten.


8

Früher habe ich pro Projekt eine Tabellenkalkulations- / Textdatei verwendet (Aufgabenkommentare im Code lassen sich aus den angegebenen Gründen nicht gut skalieren; sie sind für den Code lokal, und wenn es ein Problem gibt, das nicht vorliegt, rutscht es in der Regel durch die Liste Risse).

Kürzlich habe ich einen Redmine- Server in meinem Heimnetzwerk eingerichtet. Es ist ein bisschen schwergewichtig für ein "Team" von einem, aber ich arbeite in meiner eigenen Zeit an ziemlich vielen Projekten und verwende in der Regel nur die Issue Tracker + Repository-Optionen mit vielleicht der einen oder anderen Wiki-Seite an komplexeren Stellen.

Ein Freund von mir schwört auf Pivotal Tracker für die gleichen Zwecke, aber mein aktueller Arbeitgeber verwendet Redmine intern. Ich dachte, dies würde mir etwas Übung geben. Es ist nicht schlecht.

Für Open-Source-Projekte verwende ich einfach das Issue-Tracking von GitHub.


Aufgabenkommentare im Code funktionieren besser, wenn es sich um Doxygen- oder ähnliche Anmerkungen handelt, sofern Sie die Dokumente regelmäßig erstellen. Sie erhalten die gesammelte Liste der Aufgaben (und Fehler) in den generierten Dokumenten. Es fehlen natürlich die flexiblen Berichtsoptionen eines dedizierten Fehlerverfolgers, und Sie werden keine alten (angeblich) behobenen Fehler in Ihrem Repository nachschlagen, wenn die Anmerkungen aus der aktuellen Version gelöscht werden, aber es kann für kleine recht gut funktionieren einfache Projekte.
Steve314

7

Ich habe das kostenlose MANTIS-Bugtracker-System auf meinem gehosteten Webserver installiert (den ich für ein Blog und andere Dinge verwende) und alle meine Mängel darin vermerkt.

Mit anderen Worten, ich führe meine Sachen so, als ob sie professionell und bezahlt wären.

Ich finde, es hilft dabei, eine bessere Denkweise (das Abschließen von Fehlern usw.) beizubehalten und mit anderen in der Industrie üblichen Praktiken in Einklang zu stehen.

Verwenden Sie TODO-Notizen auch in Code usw. - aber nur für Notizen wie: "Eines Tages muss ich dies effizienter machen, die Blasensortierung schadet der Leistung." Oder für sofortige Notizen darüber, wo du hingekommen bist, als du zum Abendessen abgeholt wurdest :)


Ich habe MANTIS benutzt und es ist großartig!
Job


5

Wir benutzen JIRA an meinem Arbeitsplatz und ich bin ein großer Fan davon. Viele Produkte und Leute sind involviert und es schafft alles prima.


+1 Jira ist bei weitem das beste Issue-Tracking-System, in das ich geraten bin. Einfach zu verwenden, verwenden Sie bei Bedarf schrittweise erweiterte Funktionen. Freundlich genug, auch für nicht technische Benutzer, um Probleme zu melden und zu verfolgen.
Maglob

Noch ein Lob. Jira ist ein stark "exothermes" Tool, das mehr gibt als Sie
investieren

4

Ich habe vor einiger Zeit nach einer Antwort dafür gesucht und seitdem ein sehr ordentliches und einfaches System ausgearbeitet, das für mich die folgenden Hauptziele erfüllt:

Ziele in der Reihenfolge ihrer Wichtigkeit:

  1. Ermöglichen Sie es, eine neue Aufgabe / einen neuen Fehler so mühelos wie möglich einzugeben, damit ich ihn notieren kann, sobald ich ihn finde oder mir ausdenke, und zum Programmieren zurückzukehren, bevor ich meinen Platz verliere.
  2. Machen Sie es einfach, die Probleme zu sehen und zu verwalten, ohne viel suchen, klicken oder einen Drilldown durchführen zu müssen.
  3. Erleichtern Sie die Einbindung in die Versionskontrolle, damit ich später herausfinden kann, welche Änderungen vorgenommen wurden, um ein Problem zu beheben, oder welche Aufgabe oder welcher Fehler eine bestimmte Änderung im Code verursacht hat.
  4. Machen Sie die Einrichtung relativ einfach: Minimale Installation und Konfiguration sowie minimaler Preis.

(3 und 4 sind weniger wichtig, und ich wäre mit einem System einverstanden gewesen, das sie nicht zur Verfügung stellte, aber dieses tut es).

Schritt 1: Holen Sie sich ein Projekt in Bitbucket

Ich verwende bitbucket für die Problemverfolgung und für die Versionskontrolle von Git (zum Beispiel für ein iOS-Projekt in XCode). Ich habe mir FogBUGz (worüber ich jahrelang auf JoelOnSoftware gelesen habe) und GitHub und andere angeschaut, aber bitbucket scheint die besten kostenlosen Funktionen für kleine Teams zu haben.

Schritt 2: Verwenden Sie Bitbucket Issue Tracking im Projekt

Als nächstes habe ich Issue Tracking im selben Bitbucket-Projekt eingerichtet. Mein Projekt verfügt nun über ein Git-Repository und ein Issue-Tracking.

Schritt 3: Problemverfolgung einfach gestalten!

Hierfür verwende ich Bitbucket Cards , ein nettes, einfaches Kanban-ähnliches Frontend für die Bitbucket-Themen. Sie müssen sich nur in Ihrem Bitbucket-Konto anmelden und die gewünschten Spalten einrichten. Ich habe vier Spalten: Backlog, Next, Bugs und Resolved. (Ich denke darüber nach, Bugs mit Backlog zu verschmelzen, aber das macht mir im Moment nichts aus.)

Beispiel für Bitbucket Cards (Dieses Bild stammt aus dem Bitbucket Cards-Blog, nicht aus meinem Projekt, daher unterscheiden sich die Spalten von denen, die ich verwende.)

Mit Bitbucket Cards können Sie einen sehr einfachen Filter für jede Liste einrichten, in dem Sie den Status und die Art (en) von Problemen auswählen, die in einer Kartenspalte aufgeführt sind. Statusprobleme opendieser Art finden bugSie in der Spalte Fehler .

Spaltendefinition (Dieser stammt aus meinem Projekt: So wähle ich aus, was in der Bug-Spalte steht.)

Was wirklich cool ist, ist, dass, wenn Sie eine Karte von einer Spalte in eine andere ziehen und dort ablegen, sich automatisch der Status des Problems ändert, das die Karte darstellt und dem in der Definition der Zielspalte entspricht.

Eine weitere nette Sache bei Bitbucket Cards ist, dass es nicht so einfach zu einem Timeout kommt. Dies ist von entscheidender Bedeutung, da das Ziel dieses gesamten Aufbaus darin besteht, es einfach zu machen. Daher funktioniert dieses System für mich, anstatt dass ich dafür arbeite. Ich öffne ein Lesezeichen auf meiner Kartenseite und sie bleibt den ganzen Tag über auf einem Chrome-Tab geöffnet.

Das kümmert sich um mein 2. Ziel.

Schritt 4: Binden Sie es mit der Versionskontrolle ein.

Bitbucket-Probleme knüpfen nahtlos an die Versionskontrolle an (wie bei den meisten Mitbewerbern). Wenn ich also mit der Arbeit an einem Problem fertig bin, gebe ich es mit einer Meldung wie "Das Ding zum Whatsit hinzugefügt. Fixes # 245" ein. Wenn ich dies festschreibe, dann drücke und dann meine Seite mit den Bitbucket-Karten neu lade, sehe ich, dass das Problem in die Spalte "Gelöst" verschoben wurde. Cool.

Es ist mein drittes Ziel erreicht.

Schritt 5: Erleichtern Sie das ERSTELLEN von Problemen.

Sie denken wahrscheinlich, dass die Einrichtung dieses gesamten Setups bereits viel zu kompliziert ist, und warum sollte ich dem Prozess eine weitere Web-App hinzufügen? Denken Sie an mein oberstes Ziel: Ich möchte es so einfach machen, eine Aufgabe hinzuzufügen, dass ich nicht den Überblick verliere, bevor ich in den Textbereich komme, in den ich sie eingeben kann, und auch nicht, dass ich meinen Platz verlieren möchte der Code, bis ich fertig bin.

Mit Bitbucket Cards kann ich zwar ziemlich einfach Aufgaben erstellen , aber es ist nur ein bisschen zu klickend, um Ziel 1 vollständig zu erreichen. Sie müssen auf Problem erstellen klicken. dann erscheint ein modaler Editor; Nach der Eingabe Ihres Issue-Titels müssen Sie nach unten scrollen, um die Art (Fehler / Aufgabe) und die Priorität festzulegen. Klicken Sie anschließend auf "Erstellen".

Stattdessen habe ich mich für eine zweite Bitbucket-App namens taskrd entschieden .

Sie können taskrd einrichten, indem Sie ihm Ihr Bitbucket-Login geben und es auf ein Lesezeichen und einen Tab setzen und es den ganzen Tag geöffnet lassen, genau wie Bitbucket-Karten. Taskrd verfügt über einen viel einfacheren Arbeitsablauf zum Hinzufügen einer neuen Aufgabe. Geben Sie diese einfach ein, legen Sie optional die Art und Priorität fest und klicken Sie auf die Schaltfläche Hinzufügen.

Tasrkd-Schnittstelle (Dieses Bild stammt aus dem Taskrd-Blog.)

Jetzt ist es wohl nicht die Mühe wert, Taskrd mit Bitbucket-Karten oder sogar mit dem eigenen Issue-Entry-System von Bitbucket neu einzurichten. Schließlich muss ich mit Taskrd in meinem Browser auf einen Tab klicken und auf meiner Seite mit Bitbucket-Karten auf Neu laden klicken, damit es aktualisiert und die neue Ausgabe, die ich in der Taskrd-App hinzugefügt habe, abgerufen wird. Tatsächlich stelle ich jedoch fest, dass ich mich im Allgemeinen im oder im anderen Modus befinde: Entweder verwende ich Bitbucket-Karten, um zu organisieren, was ich als Nächstes mache, oder um die Fehlerliste zu durchsuchen, oder ich bin damit beschäftigt, Aufgaben zu codieren und einzugeben / Bugs, wie sie mir einfallen - alles im Schnellfeuermodus. Für diese zweite Arbeitsweise ist das Taskrd großartig: Ich lasse es einfach auf einem separaten Monitor geöffnet und gebe Probleme schnell ein, während ich arbeite.

Damit ist Ziel 1 abgedeckt.

Mein letztes Ziel war einfach / günstig aufzubauen. Naja billig ist es: das alles ist kostenlos. Bitbucket hat kostenlose private Repositories für bis zu fünf Benutzer und die anderen Apps waren kostenlos. Das Setup scheint auf der Grundlage des oben Gesagten nicht trivial zu sein, aber der komplizierteste Teil war das Einrichten von git, um auf das Bitbucket-Repository zu pushen, das überall das gleiche sein wird. Ich musste nichts installieren und die Verbindung beider Apps zu meinem Bitbucket-Repository war ziemlich einfach. Das Einrichten der Kartenspalten, wie ich sie mochte, erforderte ein wenig Spielerei, war aber nicht wirklich schwierig.

Wenn ich das zurücklese, komme ich vielleicht ein bisschen wie ein Schilling für Bitbucket raus - aber das will ich wirklich nicht. Es ist nur so, dass ich diesen Prozess seit Wochen verwende - nachdem ich jahrelang verschiedene Konfigurationen ausprobiert habe, um zu verfolgen, was ich tue - und es wirklich ausgrabe, also dachte ich, ich würde mir die Zeit nehmen, es für andere zu gestalten.


3

Wenn Sie mit der Verwendung von TODO-Tags in Eclipse vertraut sind, besteht ein einfacher Schritt darin, Mylyn zu verwenden . Im einfachsten Fall handelt es sich um eine einfache Aufgabenliste. Es verknüpft jedoch auch den Kontext mit Aufgaben - klicken Sie auf eine Aufgabe, um sie zu aktivieren, erledigen Sie einige Aufgaben, und wenn Sie sie das nächste Mal aktivieren, öffnet Eclipse die relevanten Klassen und zeigt Ihnen die relevanten Methoden. Noch leistungsfähiger ist es, wenn Sie irgendwann zu einem anderen Fehlerverfolgungssystem wechseln, dass Mylyn Aufgaben von diesen Systemen abruft und sie in Ihrer IDE präsentiert.

In den meisten Eclipse-Downloads ist Mylyn standardmäßig enthalten. Durchsuchen Sie einfach die Aufgabenlistenansicht und beginnen Sie mit dem Hinzufügen von Aufgaben.


+1 Ich habe Mylyn gesehen, aber ich fürchte, es hilft mir nicht viel mehr als Aufgaben in Eclipse. Ich finde, dass Fehler, die im Code nicht direkt sichtbar sind, in der Regel im Shuffle verloren gehen. Daher ist es weniger wahrscheinlich, dass ich Eclipse einen Fehler hinzufüge, wenn es nicht geöffnet ist :)
bedwyr

Ich benutze TODO-Tags und benutze dann find / grep -o, um mich selbst zum Auflisten zu bringen.
sal

3

Ich benutze die $ 10 Starter Lizenz für Jira. Es ist billig und ich kenne es schon gut von der Arbeit.


2

Wie andere hier verwende ich entweder eine Textdatei oder den Bug-Tracker, der in den Hosting-Service von dvcs integriert ist.

Vieles hängt davon ab, um was für ein "persönliches Projekt" es sich handelt. Wird es jemals das Licht der Welt erblicken oder ist es nur ein Experiment? Wird dieses Projekt von der Öffentlichkeit genutzt?

Zum Beispiel wurde eines meiner persönlichen Projekte mäßig populär und die Einrichtung einer Get Satisfaction- Site funktionierte sehr gut. Nicht wirklich "Bug-Tracking", aber es funktionierte hervorragend für Bug- / Feature-Anfragen.


2

Ein bisschen überrascht, dass noch niemand dies gesagt hat, aber es gibt verteilte Bug-Tracking-Lösungen, die als Teil Ihrer verteilten Quellcodeverwaltung fungieren, dh die Bug-Datenbank lebt mit Ihrem Code in Ihrer Revisionskontrolle. Bekannte Implementierungen sind "Bugs Everywhere", Fossil und Ditz.

Siehe https://stackoverflow.com/questions/773818/distributed-projectmanagement-bug-tracking und https://stackoverflow.com/questions/1851221/distributed-bug-tracker-to-go-with-dvc?rq=1 für eine Diskussion.


1

Für meine persönlichen Projekte verwende ich Omnifocus.

Update: 25.10.2010 Wenn ich einen Fehler finde, den ich nicht sofort beheben kann oder will, füge ich ihn schnell dem Omnifocus-Posteingang hinzu. Wenn ich dann später eine Überprüfung durchführe, sammle ich alle Informationen, die ich für nötig halte, um den Fehler zu beheben, und füge sie dann dem Projekt hinzu. Die Position in der Aufgabenliste zeigt die relative Wichtigkeit an.

Ich behandle Fehler in den meisten Punkten genauso wie Anforderungen / Funktionen.


2
Vielen Dank für die Antwort: Haben Sie etwas dagegen, darüber nachzudenken, wie Sie es speziell für die Fehlerverfolgung verwenden?
Bedwyr

Danke für das Update! Es ist interessant zu sehen, dass ein allgemeines ToDo-Tool für das Fehlermanagement verwendet wird.
Bedwyr

Hinweis: Nur für Apple-Produkte
Markieren Sie C

Omnifocus ist ein Apple-Produkt, aber ich verwende es für meine Nicht-Apple-Entwicklung.
Henry

1

Für persönliche Projekte genügen mir in der Regel TODO-Kommentare und eine Textdatei mit TODOs und Bugs etc.


1

Ich verwende meine eigene TheKBase (da ich auf OSX bin, verwende ich sie auf .Net in einer virtuellen Maschine oder in Mono, abhängig von meiner Stimmung). Nur für einen gleichzeitigen Benutzer, aber: Es werden mehrere Hierarchien zugelassen, sodass vom Task-Manager zum Informations-Manager keine Schritte dazwischen fehlen. Außerdem ist es Open Source auf Github und kostenlos (das ist offensichtlich, denke ich).

Für die Neugierigen gibt es hier Anleitungen .


1

Ich benutze ToDoList für meine persönlichen Projekte. Es ist leicht, kostenlos und hat viele Funktionen. Ich bin nicht sicher, wie gut es für Teamprojekte skaliert, aber es ist großartig, wenn ich alleine arbeite. Ich bin mir nicht sicher, wie ich es überlebt habe, die integrierte Aufgabenliste von Visual Studio so lange zu verwenden, es ist Mist.


Bei meinen kleinen persönlichen Projekten funktioniert die ReSharper TODO-Liste für mich.
Niemand

1

Wir verwenden eine Kombination aus JIRA und Google Text & Tabellen. Ich habe mir andere Tools angesehen, da unsere JIRA-Installation älter als Dirt ist und nicht so einfach zu bedienen ist wie die neueren, schickeren Benutzeroberflächen mit Drag & Drop.

Ich habe mich mit Manymoon, Zoho Projects, Insightly, Redmine und Assembla befasst. Wir werden mit dem kostenlosen Assembla-Stand-Up-Tool experimentieren . Es ist eine sehr einfache 3-Feld-Berichtsoberfläche, die jedem Teammitglied 3 Fragen stellt: Was haben Sie letzte Woche getan? Was wirst du diese Woche machen? Welche Barrieren stehen Ihnen im Weg?

Letztendlich denke ich, dass ich bei JIRA, Google Docs und dem Assembla-Stand-up-Tool bleiben werde, da mir die Kombination alles bietet, was ich brauche.


1

Trac gefällt mir am besten, weil es leicht, benutzerfreundlich und einfach zu konfigurieren ist. Und das integrierte Wiki und der elegante Repository-Browser sind ein großes Plus.

Bei der Arbeit verwenden wir JIRA, was auch ganz nett ist, aber nicht so einfach zu verwalten. Und ich vermisse wirklich ein Wiki (Integration mit Confluence ist nicht so toll) und einen guten Repository-Browser (wir haben nur ViewVC).


Trac ist ein Alptraum zum Einrichten und Konfigurieren.

1

Ich benutze Trac seit ein paar Jahren. Ich habe auch Bugzilla und JIRA benutzt. Meine persönlichen und privaten Beratungsprojekte beziehen Trac ein, nur weil ich es gewohnt bin und um ein Projekt in meinem persönlichen Entwickler-Setup in Gang zu bringen, ist der Aufwand so gering, weil der Aufwand vorbei ist. Ich habe Trac mit allem verbunden, was ich brauche, einschließlich SVN oder Git und Hudson (oder besser gesagt Jenkins jetzt).

Bei einigen Kundenprojekten gibt es in der Regel keine andere Wahl als das, was sie verwenden, was leider oft genug nichts oder etwas in Hausmüll ist. Ich bin überrascht, wenn sie in letzter Zeit einen Bug-Tracker haben. Persönlich freue ich mich jedoch auf ein besseres Angebot der OSS-Community als Trac. Es wird alles erledigt, aber heutzutage scheint es so ein Patchwork zu sein.


Trac ist ein Alptraum zum Einrichten und Verwalten.

0

Ich sehe keinen Sinn darin, die formale Fehlerüberwachung für kleine Ein-Mann-Projekte zu verwenden. Normalerweise führe ich nur eine (sehr kurze) mentale Liste und behebe die Fehler, sobald ich auf sie aufmerksam werde. Natürlich ist dies nicht für große Projekte / Projekte mit mehreren Personen skalierbar, aber der Punkt ist, dass dies nicht erforderlich ist.


3
Das ist zum Teil das Problem: Eine mentale Liste ist in der Regel unzureichend. Viele meiner Fehler werden mental protokolliert und gehen mit der Zeit verloren, wenn neue Funktionen und Verbesserungen implementiert werden.
Bedwyr

@bedwyr Wenn Sie sich an die Regel halten, alle bekannten Fehler zu beheben, bevor Sie neue Funktionen implementieren, ist dies kein Problem.
Kevin

@ Kevin, Fehler können in früheren Releases gefunden werden, während Sie an der neuesten Iteration eines Projekts arbeiten. Würden Sie die Entwicklung einer Funktion mit hoher Priorität sofort stoppen, um einen Eckfallfehler mit niedriger Priorität in einer früheren Version zu beheben? Wenn nicht, wie verfolgen Sie sie? In meinem Fall reicht eine mentale Liste nicht aus.
Bedwyr

@bedwyr Guter Punkt, ich denke, es ist eine Frage der Präferenz. Ich würde diesen Fehler sofort beheben, da es sich um ein kleines Ein-Mann-Projekt handelt. Wenn ich in einem großen Unternehmensumfeld wäre, eine andere Geschichte.
Kevin Laity

0

Wenn Sie ReSharper verwenden, verfügt es über ein TODO tracker, das eine Liste aller TODOs, NOTEs und BUGs in Ihrer Lösung anzeigt . Außerdem werden sie in Ihrem Code in einer beliebigen Farbe hervorgehoben. Ich finde das wirklich nützlich für meine eigenen Projekte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.