Posts Tagged ‘Automatisierte Testung’

Automatisierte Testung

Mittwoch, Oktober 31st, 2012

Nach der Installation der letzten Entwicklerversion ist euch vielleicht aufgefallen, das sich ein drittes Programm namens „BVATest.exe“ in dem Setup befunden hat. Mit dem Programm möchte ich immer wiederkehrende Tests des BVASystems automatisieren und mir damit langfristig eine Menge Arbeit ersparen. Außerdem hoffe ich, das durch die systematische Herangehensweise eventuelle Fehler nicht so häufig übersehen werden. Damit ihr die durchgeführten Tests nachvollziehen und eventuell eigene Tests durchführen könnt, habe ich mich entschlossen die Testanwendung in die Entwicklerversionen zu integrieren. Stabile Softwareversionen werden die Testanwendung dagegen nicht enthalten.

Was sind automatisierte Tests?

Beim Testen einer Software überprüft man, ob das Programm den Anforderungen entspricht. Dabei ist es notwendig, das die komplette Prüfung mit jedem Versionssprung erneut durchgeführt wird. Es ist nämlich möglich, das eine einzige geänderte Codezeile Auswirkungen auf längst abgeschlossene Funktionen hat. Durch eine automatisierte Testung erreicht man, das der Aufwand zur Testung stark reduziert wird. Außerdem wird verhindert, das man durch eine unsystematische Herangehensweise Testfälle vergisst.

Auch kann durch eine automatisierte Testung die Qualität einer Software beurteilt werden.  Je mehr Anforderungen erfolgreich erfüllt werden, desto qualitativ hochwertiger ist die Software. Mit Hilfe einer automatisierten Testung kann also festgestellt werden, ob die alte Version X oder die neue Version Y besser zu den Anforderungen passt.

Der größte Vorteil einer automatisierten Testung ist ganz klar der Geschwindigkeitsvorteil der sich bei der Entwicklung ergibt. Außerdem ist es für den Entwickler einfacher, Änderungen am Programmcode vorzunehmen, da die Auswirkungen jederzeit schnell überprüft werden können.

Nachteil einer automatisierten Testung ist natürlich, das die Tests selber wiederum Fehler enthalten können. Zum Beispiel kann bei der Definition der Tests eine wichtige Anforderung übersehen werden. Wird allerdings so ein Fehler gefunden, so kann durch die Anpassung der automatisierten Testung sichergestellt werden, das dieser Fehler kein zweites mal übersehen wird.

Geplante Funktionsweise

Das Testprogramm „BVATest“ soll mit XML basierten Projektdateien arbeiten. In diesen Projektdateien können beliebig viele Testaufgaben definiert werden. Bei der Definition einer Aufgabe müssen alle zu nutzenden Parameter festgelegt werden. Außerdem sollen Abhängigkeiten definiert werden können. Zum Beispiel muss zum Test der Funktion „Datenbankbild löschen“ zuerst ein Bild in der Datenbank gespeichert werden.

Alle definierten Tests werden nach dem Start der Testung nacheinander abgearbeitet. Rückgabewerte werden in einem gesonderten Teil der Oberfläche dargestellt und außerdem werden sie mit erwarteten Rückgabewerten verglichen. Treten Unterschiede auf, so werden diese deutlich hervorgehoben.

Vorläufiges Entwicklungsziel

Mein vorläufiges Entwicklungsziel ist es, das durch das Testprogramm alle Worker-Aufgaben automatisiert getestet werden können. Dadurch, das die Aufgaben komplett von der Oberfläche losgelöst sind, bieten sie sich regelrecht zur automatisierten Testung an. Außerdem bilden sie einen wichtigen Bestandteil der Bilddatenbank. Was nützt es, wenn ich viele tolle Funktionen habe, aber gerade beim Hinzufügen eines neuen Fotos einen Fehler übersehe.

Bildinformationspanel: Bildbeschreibung

Montag, Oktober 22nd, 2012

Vor einigen Wochen habe ich angekündigt, das ich aktuell das Ziel verfolge, das das BVASystem die IPTC-Daten unterstüzten kann. Mit dem heutigen Tag ist der erste kleine Mini-Meilenstein zu diesem Ziel erreicht. In dem Bildinformationspanel „Bildbeschreibung“ habe ich einen kleinen Dialog erstellt, in dem Bildtitel, Autor und eine Beschreibung angezeigt werden können.

Bildinformationspanel Bildbeschreibung

Bildinformationspanel Bildbeschreibung

In den nächsten 14 Tagen werde ich mich daran setzen, das diese Daten auch editiert werden können. Außerdem habe ich noch 3 weitere größere Themenkomplexe bearbeitet. Wie immer habe ich auch wieder an meiner Lieblingsbaustelle, den Bildbewertungen, weitergemacht.

Für Bilder und Bildlisten, die von der Datenbank geladen wurden, kann nun ausgewählt werden, welche Bildbewertung angezeigt wird.  Angezeigt werden kann entweder die manuelle Bildbewertung oder die automatische Bildbewertung. Damit diese leicht zu unterscheiden sind, haben die beiden Bewertungsarten nun unterschiedliche Icons erhalten. Die automatische Bewertung wird durch einen Stern mit 4 Ecken symbolisiert, während die manuelle Bewertung durch einen Stern mit 5 Ecken dargestellt wird. Natürlich ist es auch weiterhin möglich, das keine Bildbewertung angezeigt wird.

Automatische/Manuelle Bildbewertung in einer Miniaturbilderansicht

Automatische/Manuelle Bildbewertung in einer Miniaturbilderansicht

Weiterhin habe ich mich mit der Frage beschäftigt, wie die Einstellungen der Bildinformationsansichten dauerhaft gespeichert werden können. Herausgekommen ist dabei ein XML basierter Ansatz, den ich auch bereits zum Teil umgesetzt habe. Beim Beenden des BVASystems wird eine XML-Datei erstellt, die die aktuellen Einstellungen der Bildinformationsansichten enthält. Diese soll beim nächsten Programmstart dann wieder eingelesen werden.

Als letztes habe ich mir überlegt, wie ich das BVASystem effektiv testen kann, bevor ich eine neue Version zum Download anbiete. Dabei ist mir aufgefallen, das ich zumindest die Tests für die Datenschicht automatisieren könnte. Gerade die Aufgaben des Workers schreien förmlich danach automatisiert getestet zu werden. Mit der aktuellen Installationsroutine wird zum ersten mal ein weiteres Programm namens „BVATest“ installiert. Was es mit diesem Programm genau auf sich hat, werde ich in den nächsten Tagen in einem extra Blog erläutern.