Difference Testing

ReTest ist das einzige Werkzeug auf der Welt, welches Difference Testing implementiert. Difference Testing hat viele Vorteile im Vergleich zu herkömmlichen Integrations- oder UI-Testansätzen:

  • Robuste Komponenten-Identifikation. Was bei anderen Tools ein Quell von Mehraufwand und Ärger ist, wird durch die einfache Pflege der Tests mittels weniger Klicks zu einem Stützpfeiler robuster Wiedererkennung von Komponenten: Redundante Informationen. Wir nutzen zur Identifikation Merkmale wie Beschriftung bzw. verwendetes Icon, Pfad im UI-Baum, ID- bzw. Namensattribut der Komponente oder deren x- und y-Koordinaten (relativ zur Elternkomponente).
  • Erzeugungsort im Quellcode zum Identifizieren von Komponenten. Wir nutzen die Bytecode-Instrumentierung unter anderem dazu, Komponenten anhand ihres Erzeugungsortes im Quellcode zu erkennen. Das erlaubt uns Komponenten auch dann wiederzuerkennen, wenn sich Inhalte und Attribute ändern. Um noch robuster gegen Änderungen zu sein und um mit Factories und anderen Pattern umgehen zu können, verwenden wir nicht nur Klasse und Zeile in der die new-Operation ausgeführt wurde, sondern den (konfigurierbar langen) unteren Teil des Stacktrace. Nutzung redundanter Informationen zur Komponentenwiedererkennung
  • Abspeichern aller relevanten Attribute aller Komponenten. Einer der Vorteile von Difference Testing besteht darin, auch Änderungen zu erkennen, die normalerweise gar nicht beachtet würden. So gibt es häufig Situationen, in denen unscheinbare Funktionen kaputt gehen: Die Kopieren/Einfügen-Funktion, das Füllen von Feldern mit Default-Werten, das korrekte Laden von "unwichtigen" Daten ... alles Dinge, die menschliche Tester häufig übersehen — ReTest hingegen entgeht nichts!
    Erkennung aller Unterschiede aller Komponenten
  • Keine Erstellung von Prüfregeln. Indem ReTest für alle Komponenten den Zustand speichert und überprüft, entfällt das Erstellen und Pflegen von Prüfregeln, was die Benutzerfreundlichkeit stark erhöht. Stellen Sie sich bspw. einen Datenimport vor. Um sicherzugehen, dass alle Daten korrekt geladen wurden, müsste für jeden Datensatz jedes Feld geprüft werden – entweder manuell oder mit Hilfe von manuell gepflegten Prüfregeln! Mit ReTest dagegen muss lediglich die Maske geöffnet werden...
  • Dokumentation des Zustandes. Bei agilen Vorgehen wird die häufig unnötige Dokumentation minimiert bzw. eliminiert und Änderungen nur als Delta zum Ist-Zustand definiert. Als Folge daraus ist jedoch nach einiger Zeit nicht mehr klar, was eigentlich der Soll-Zustand der Anwendung ist. ReTest übernimmt diese Dokumentation vollumfänglich: Der Zustand jeder einzelnen Komponente zu jedem einzelnen Zeitpunkt eines Testablaufs wird aufgezeichnet, überprüft, und kann bei Bedarf sogar als Ablauf-Dokumentation inklusive Screenshots exportiert werden.

Darüber hinaus erlaubt Difference Testing uns Monkey Testing in Verbindung mit Künstlicher Intelligenz zum Aufzeichnen von Testfällen zu nutzen. Weitere Vorteile von Difference Testing können wir zur Zeit leider noch nicht offenlegen, da wir dazu gerade eine Patentanmeldung vorbereiten.