Automatisierte Black Box Testsoftware

Hallo an die Experten

ich weis nicht ob es so was schon gibt allerdings stelle ich mir so was sehr interessant für Softwareentwickler vor.

Was ich suche ist ein Programm das mit einem bestimmten Programm (Zu testenden Programms) vordefinierte Tests durchführt. Im Gunde einen Automatisierten Black Box Test.

Im Speziellen stelle ich mir das so vor das Testprogramm zeichnet einmal mit Hilfe vom User einen Testfall auf misst zeitabhängig die Tatatureingaben und Maus eingaben sowie die Bildschirmausgaben (Fenster) (Beim Fenster sollte definiert werden können welchen Bereiche exakt und welcher weniger genau oder überhaupt nicht übereinstimmen muss.). Weiters muss festgelegt werden können das das Ablaufen der Tastaturkommandos und Mauskommandos erst bei einer bestimmten Bildschirmausgabe fortgesetzt wird.

Im Anschluss soll das Programm dann einen oder mehrere dieser Tests automatisch durchführen können und das Endergebnis bewerten können mit Test Erfolgreich oder Fehlerhaft.

Im Anschluss muss natürlich ein Tester prüfen ob am Test was geändert werden muss oder ob der Softwareentwickler einen Fehler gemacht hat.

Kleinere Nebenbedingungen sind das das Ganze unter Windows laufen soll (Freeware wäre Ideal wirds aber kaum geben)

mfg
Andreas

Hallo Andreas,

das was Du beschreibst bildet man über UnitTests ab. Hier kannst Du nicht nur automatisiert Komponententests realisieren, sondern auch System- und sogar Integrationstests.

Vorteil dabei ist, dass sie zum Beispiel unter Visual Studio automatisch im Buildprozess mitlaufen und so Auskunft über die Qualität des Builds geben können. Darüber hinaus empfiehlt es sich, sich mal über Test Driven Development zu informieren.

Um auch eine UI vernünftig automatisiert testen zu können, sind Anforderungen an die Gesamtarchitektur Voraussetzung. Jedoch gilt das ebenso für Komponententests. Wenn ihr also Spaghetticode habt ohne vernünftige Architektur, gilt es erst einmal diese geradezuziehen.

So könnt ihr auch den Scope der Tests klar durch entsprechende Mocks und DependencyInjection (z.B. über Unity) abgrenzen.

Grüße
Thorsten

Hallo Thorsten

Unit Tests sind mir bekannt leider kann man mit diesen Tests zum Beispiel Fehlverhalten in der Graphischen Ausgabe nicht wirklich erfassen. Abgesehen davon sind Unit Test White-Box Tests und setzten voraus das der Code bekannt ist. In meinen Augen sind die für das was ich mir vorstelle nicht wirklich geeignet.

Aber trotzdem Danke für die Erwähnung.

mfg
Andreas

Hallo Andreas,

ich glaube, wir haben hier erst einmal mit unterschiedlichen Wordings zu kämpfen.

Ich verstehe White-Box-Tests als Tests, die sich nicht nur auf die externen Auswirkungen einer Methode beziehen, sondern im Gegensatz zu Black-Box-Tests auch Methodeninterna prüfen.

Die graphische Darstellung einer UI-Komponente kannst Du durchaus auch im Rahmen eines UnitTests prüfen, wenn Du die Komponente mit Daten fütterst, sie in ein Bitmap zeichnen lässt und mit einem Referenzbitmap vergleichen würdest.

Dies erscheint mir jedoch überflüssig, sofern sichergestellt wäre, dass jede beteiligte Methode und jede beteiligte Logik korrekt funktioniert.

Ich sehe hier ehrlich gesagt Dein Problem nicht.

Grüße
Thorsten

Hallo Thorsten

Nur mal so ein kleines Beispiel: nimm mal einen Tree. Die einzelne Elemente können mit der Maus auf das kleine Plus und Minus auf und zugemacht. Kann aber auch mit den Tasten + und - auf und zugemacht werden. Hinter dem Tree liegt ein Datenmodell und verschiedenen Commandos. Commandos und Datenmodell verhalten sich beim auf und zu klappen korrekt das kann ich mit den Unittest testen. Und jetzt kommt das Problem beim nochmaligen öffne eines schon offenen Elementes verhaspelt sich eine Semaphore in der Draw Funktion (Grund für die Semaphore ist es soll beim Multi Öffnen von Elementen der Tree ja nur einmal gezeichnet werden). Die Folge ist das der Tree nicht nicht mehr gezeichnet wird.
Es gibt sicher noch weiter ähnlich Beispiele wo das Problem nur ganz knapp unter der Graphischen Ausgabe liegt.

Solche Sachen stelle ich mir vor mit dem Programm testen zu können. Da die Bildschirmausgabe dann einfach nicht mehr korrekt ist.

Das mit der graphischen Komponente bei den UI Test läßt sich daraus mal weiterverfolgen vieleicht kann das ja irgendwie helfen.

Jeder Test ist überflüssig wenn die beteiligten Funktionen und Logik immer korrekt wären nur leider ist das sehr selten der Fall.

mfg
Andreas

Hallo,
ich habe selbst noch nichts derartiges verwendet, aber kürzlich etwas recherchiert. Außer AutoIt ist mir keine Freeware untergekommen, die in Frage kommen könnte. Wobei man mit AutoIt schnell an Grenzen kommen wird, was die Anforderungen betrifft.

Bei der Bezahlware haben mir folgende einen guten ersten Eindruck gemacht:

TOSCA Testsuite
http://tricentis.com/de/

Original Software - TestDrive
http://www.origsoft.com/products/testdrive/

SmartBear - TestComplete
http://smartbear.com/products/qa-tools/automated-tes…

Ranorex - UI Test Automation Framework
http://www.ranorex.com/

Seapine Software - QA Wizard Pro
http://www.seapine.com/qawizard.html

aber auch Visual Studio Test Professional 2010 dürfte einen Blick Wert sein: http://www.microsoft.com/germany/visualstudio/produc…

mfG