Bugtracker | BVA-System

Posts Tagged ‘Bugtracker’

1000 Tage Mantis Bugtracker

Mittwoch, Mai 1st, 2013

Es ist unglaublich, aber ich arbeite nun schon wieder über 1000 Tage am neuen BVASystem. Ebenfalls rund 1000 Tage nutze ich den Mantis Bugtracker. Aufgefallen ist mir dies, als ich gesehen habe, das die ersten Tickets mittlerweile 1000 Tage auf ihre Bearbeitung warten. Anfangs dachte ich, das der Bugtracker nur zur Erfassung von Fehlern dient. Von einem Freund erhielt ich allerdings den Tipp, das ich das System auch nutzen kann um meine Entwicklungsziele damit zu planen.

Mittlerweile muss ich sagen, das sich die Arbeit mit Mantis bewährt hat. In den 1000 Tagen wurden knapp 650 Tickets erfasst, von denen 600 bereits erledigt sind. Zu 90% handelt es sich dabei um Tickets, mit denen ich meine Entwicklungsziele abgesteckt habe.  Diese sind mir eine riesige Hilfe, wenn es darum geht meine Ideen zu sortieren.

Bei der ersten Version des BVASystems hatte ich kleine Notizzettel verwendet, damit anstehende Aufgaben nicht  vergessen werden. Leider verschwand öfters mal ein Zettel bzw. tauchte erst nach einigen Wochen wieder auf. Eigentlich habe ich jeden Tag genau das programmiert, was mir gerade in den Sinn kam. Häufig hab ich mich deshalb verzettelt und dadurch schlecht strukturierten Quellcode geschrieben bzw. meine Zeit mit Dingen vertan, die eigentlich gar nicht notwendig waren.

Mit Mantis ist mir das bisher noch nicht passiert. Zwar hasse ich die Tage, an denen ich nichts anderes mache, als neue Tickets zu erfassen, aber dadurch sind die Änderungen deutlich besser durchdacht. Oft sind mir dabei bereits Dinge aufgefallen, über die ich sonst erst bei der Entwicklung gestolpert wäre.

Kurzum, ich kann die Arbeit mit dem Bugtracker voll empfehlen, auch wenn er nicht vorrangig zur Erfassung von Fehlern dient. 

P.S: Mein Geschenk an mich für das 1000 Tage Jubiläum wird es sein, das ich ein 1000 Tage altes Ticket erledigen werde. :-) 

Jede Menge kleine Bugfixes

Sonntag, November 21st, 2010

In dem diesmaligen Entwicklungszyklus habe ich es geschafft, meinen alten Rekord von 12 abgearbeiteten Tickets in einer neuen Version zu brechen. Ganze 16 Punkte habe ich in den rund 2 Wochen geschafft. Ok, viele der Tickets hatten diesmal nicht so einen großen Umfang, aber der Teufel steckte oft in den Details. So war zum Beispiel die Überarbeitung des Popupmenüs der Bildliste etwas tricky. Je nachdem ob kein Bild, ein Bild oder mehrere Bilder markiert sind und ob das aktive Bild markiert ist oder nicht, werden unterschiedliche Beschriftungen im Popupmenü angezeigt.

Die größte Änderung, die ich hier extra erwähnen will, ist der Fingerprint. Wenn ein Bild in der Datenbank abgespeichert wird, so wird mit dem Bild eine Art Fingerabdruck erzeugt und mitgespeichert. Versucht der Anwender das Bild nun ein zweites Mal in der Datenbank abzulegen, so wird dies, aufgrund des bereits in der Datenbank vorhandenen Fingerprints, verhindert. Selbst wenn das Bild in der Zwischenzeit umbenannt wurde, wird trotzdem erkannt, das es sich um ein doppeltes Bild handelt.

Hauptdialog der Bilddatenbank BVASystem

Hauptdialog der Version 2.0.0.11

Die Details zu den Änderungen können, wie immer, im Bugtracker nachgeschlagen werden. Da der letzte Screenshot nun auch schon etwas älter war, habe ich heute einen neuen erstellt. Und zu guter Letzt habe ich heute noch, ebenfalls im Bugtracker, abgesteckt wohin die nächsten beiden BVASystem Versionen führen werden.

In der nächsten Version der Bilddatenbank möchte ich mich darum kümmern, das die Verbindung zur Datenbank nicht mehr über den Testbutton hergestellt werden muss.  Außerdem möchte ich die Möglichkeit schaffen, das das Programm als reiner Bildbetrachter nutzbar wird. Dabei soll, auch ohne Datenbankserver, der Anwender nicht von Fehlermeldungen genervt werden. In der übernächsten Version muss dann die Datenbankstruktur erweitert bzw. überarbeitet werden, damit Platz für neue Features ist. Im speziellen ist angedacht, das falsch ausgerichtete Bilder gedreht werden können und das der Orientierungssinn auch gespeichert wird.

Aufgaben für den Worker

Montag, November 8th, 2010

Im letzten Blogpost hatte ich es bereits angekündigt, mit der Version 2.0.0.11 sollten die Aufgaben für den Worker hinzukommen. Und genau das ist bis zum heutigen Tag geschehen. Ich muss zugeben, die neue Version ist diesmal eher etwas für neugierige Tester. Die Aufgaben sind zwar fertig programmiert, aber ihre Einbettung in die Oberfläche muss dringend noch verbessert werden. Ich habe mich aber dafür entschieden, die Version hier trotzdem so zur Verfügung zu stellen, da ich ansonsten mein gewolltes Veröffentlichungsraster nicht einhalten könnte.

Es gibt nun einen Automatismus zum Datenimport von Bildern in die Datenbank, den der Anwender in der Toolbar an und ausschalten kann. Bei aktivem Automatismus werden, nachdem auf ein Verzeichnis mit Bildern geklickt wurde, alle Bilder im Worker als Aufgaben eingestellt. Dieser arbeitet die Aufgaben nach und nach ab, speichert die Bilder also in der Datenbank. Fehlen tut hier noch, das vor dem Einfügen des Bildes überprüft wird, ob dieses sich bereits in der Datenbank befindet: siehe Bugtracker Meldung 101

Als zweite Workeraufgabe habe ich das Löschen von Bildern umgesetzt. In einem Popupmenü über der Bildliste befindet sich der Eintrag zum Löschen. Die Funktion ist sowohl für Dateien auf der Festplatte, als auch für Dateien in der Datenbank möglich. Aber Vorsicht, es erscheint keinerlei Sicherheitsabfrage. Wenn löschen geklickt wird, wird auch gelöscht. Was beim Löschen noch fehlt, ist das die Programmoberfläche anschließend aktualisiert wird. Das gelöschte Bild muss aus der Liste entfernt werden und die darunterliegende Scrollbar angepasst werden: siehe Bugtracker Meldung 102

Fazit: Auch wenn in den letzten Wochen einiges an Software entstanden ist, so bleibt noch eine ganze Menge zu tun.

Der gefürchtete Fehlerfall

Dienstag, Oktober 12th, 2010

Eine sehr unangenehme Seite der Softwareentwicklung ist, das es quasi unmöglich ist, ein fehlerfreies Programm zu schreiben. Mit diesem Wissen im Hinterkopf muss man auch daran denken, wie man mit Fehlern umgehen wird. Im BVASystem gibt es zum Beispiel eigentlich ab der ersten Version, die es hier zum Download gab,  eine  Trace-Funktionalität.

Startet man die Anwendung mit dem Parameter „-trace“, werden die einzelnen Funktionsaufrufe, die das Programm ausführt, in eine Datei protokolliert.  Die Trace-Datei „bvatrace.log“ findet man dann im Anwendungsverzeichnis des BVASystems. Im Fehlerfall kann mir diese Datei dann zugeschickt, oder im Bugtracker hochgeladen werden.

Neu in der nächsten Version ist, das es einen aussagekräftigen Dialog gibt, wenn ein unerwarteter Fehlerfall auftritt. In den bisherigen Versionen war es so, das dort der Anwender ein schlichtes „Es ist ein unbekannter Fehler aufgetreten.“ angezeigt bekommen hat. Auch wenn der Anwender mit der Fehlermeldung nicht wirklich etwas anfangen kann, so wird er trotzdem nicht gänzlich ohne Informationen im Regen stehen gelassen. Ab sofort wird der Dialog wie folgt aussehen:

Nullpointer-Exception Dialog

Nullpointer-Exception Dialog

Eigentlich habe ich den Dialog bisher immer mit einer Division durch 0 getestet. Aber extra für Lord-Fake, der die Homepage http://www.nullpointer.at betreibt, hab ich die Testroutine nochmals angepasst. Bitte Fake :-D

Zwischenfazit

Samstag, August 28th, 2010

Logo des Mantis Bugtrackersystems

Vor knapp einen Monat hat sich ein Freund von mir bereit erklärt meine Bilddatenbank zu testen. Für mich eine sehr schöne Sache, da so frühzeitig Fehler entdeckt und behoben werden können. Seine Bedingung dafür war allerdings, das ich ein Bugtracker System einrichte. Da er Mantis bereits für eigenen Projekte nutzt, sprach er da seine Empfehlung aus.

Anfangs war ich nicht so recht begeistert. Bisher war ich eher der Typ der versucht, alles durch ein organisiertes Chaos zu erledigen. Ich scheute den Aufwand, den der Betrieb des Systems mit sich bringen würde. Ich ließ mich trotzdem dazu überreden :-D

Nach nun knapp einem Monat später möchte ich nun ein Zwischenfazit ziehen. Anfangs habe ich das System eher zögerlich verwendet. Nachdem ich allerdings verstand, wie man in dem Bugtracker unterschiedliche Programmversionen definiert und wie man Fehler/Featurewünsche den Versionen zuweist, änderte sich mein Verhalten grundlegend. Ich sah die automatisch generierte Änderungsliste und die ebenfalls automatisch erstellte Roadmap. Ersteres erspart mir eine Menge Zeit, da ich meinem Freund nicht erklären brauchte was ich geänderte habe. Und die Roadmap hilft mir, mein weiteres Vorgehen zu planen.  Während der Entwicklung des ersten BVASystems hatte ich so eine Roadmap nicht. Und es kam wie es kommen musste: Ich verrannte mich oft in Sachen, die niemals fertig gestellt wurden. Ich hoffe das dies durch Mantis nun nicht passiert.

Danke Fake.

Updatedienstag

Dienstag, August 10th, 2010

Nachdem ein guter Freund so nett war, die Version 2.0.0.2 ausführlich zu testen, standen (und stehen auch immernoch) eine Reihe von Bug-Fixes an. Welche der gemeldeten Fehler und Änderungswünsche erledigt wurden, ist dank des Bugtrackers gut nachvollziehbar.

Eine kurze Erklärung werde ich wohl noch zur Datenbank geben müssen. In der Version 2.0.0.3 ist das erste mal im Setup eine Datei enthalten, mit der sich die BVA-Datenbank erzeugen lässt. Ich habe mich dazu entschieden, die Datenbank vorerst als MySQL Workbench Datei weiterzugeben. Mit dem Tool kann die Datenbankstruktur mit jeder neuen Version die ich liefere aktualisiert werden, ohne das die alten Daten gelöscht werden müssen. Die Datei befindet sich nach der Installation im Unterverzeichnis DB des Installationsverzeichnisses.

Wenn die Datenbankstruktur (Wenn man eine Tabelle als Struktur bezeichnen darf.) richtig erstellt wurde, kann mit dem BVASystem das Speichern eines Bildes ausprobiert werden. Für die nächste Version verspreche ich, das die gespeicherten Bilder dann auch wieder angezeigt werden können.

Edith: Jetzt hab ich doch glatt vergessen darauf hinzuweisen das Version 2.0.0.3, wie immer unter Downloads herruntergeladen werden kann. Wünsche also frohes Fehlersuchen ….