Gibt es gute Tools oder Tipps zum Testen von Windows Forms-Anwendungen?

8

Ich führe eine ~ 300K LOC C # Legacy-Thick-Client-Anwendung mit einer Windows.Forms-Schnittstelle. Die App ist voller kleiner Fehler und Macken. Zum Beispiel habe ich kürzlich einen Fehler entdeckt, bei dem Benutzer, wenn sie Zellen in einem DataViewGrid bearbeiten und Tabulatoren (nicht klicken) und eine bestimmte Zelle ausgewählt lassen, die Ausnahme "Objektreferenz nicht auf Instanz eines Objekts setzen" erhält . Ich entdecke (oder erhalte einen Fehlerbericht) über so etwas Neues über jede Woche oder zwei. Ich hatte genug und dachte daran, eine Art Fuzz-Test auf der Anwendung zu versuchen, um unentdeckte Probleme herauszufinden.

Wenn ich meine Fuzz-Tests selbst mache, würde ich davon ausgehen, dass ich zumindest in der Lage sein muss, Testsätze zu generieren, die Teile meiner App (Hauptfenster, FormX, FormY, FormZ, ...) unabhängig voneinander ausführen Versuche, Ereignisse in sie zu injizieren.

Ich habe versucht, nach Tools zu suchen, die dafür geeignet sind, aber bisher habe ich nichts für Win Forms gefunden. (Es scheint jedoch keinen Mangel an Fuzz-Test-Tools für Web-Apps zu geben).

Irgendwelche hilfreiche Ideen?

    
Ogre Psalm33 28.05.2010, 12:56
quelle

2 Antworten

6

Ich mag immer die Idee des Gremlins-Testwerkzeugs, das auf Palm-Handhelds verwendet wird. Es erzeugte zufällige Antippen-Ereignisse, um Fehler bei der UI-Programmierung zu beseitigen. Sie könnten dasselbe in Ihrer App tun, indem Sie Millionen von Maus-Down- und Up-Events an zufälligen Orten generieren. Sie müssen PostMessage () aufrufen und Control.GetChildAtPoint () verwenden, um das Fensterhandle für die WM_LBUTTONDOWN / UP-Nachrichten zu generieren. Application.DoEvents () in Ihrer Testschleife, um die Ereignishandler zur Ausführung zu bringen.

    
Hans Passant 28.05.2010, 14:23
quelle
4

Beim Suchen im Internet habe ich zwei Links mit nützlichen Tools und Informationen zu Fuzz-Tests von WinForms-Apps gefunden:

  • Monkey Fuzz Testing - Ein Alpha-Status-Tool auf Codeplex, das ziemlich nah an dem zu sein scheint, was ich möchte. Von der Website: "MonkeyFuzz sendet in erster Linie zufällige Tastatur- und Mausereignisse an ein Programm, aber es kann die Aktionen aufzeichnen, die auf dem Weg liegen. Dadurch können sie für Regressionstests wiedergezeigt werden." Ich kann es ausprobieren und meine Ergebnisse melden.
  • Ein Papier über Zufalls-Tests von der CS-Abteilung der Universität von Wisconsin. Dies ist datiert 2000-2002, aber scheint einige gute Informationen zu enthalten, und Links zu Werkzeugen , die sie in ihren verwendet Studie. Allerdings scheinen die Tools mindestens 10 Jahre veraltet zu sein.
Ogre Psalm33 01.06.2010 19:38
quelle