Frage

Ich bin die Aufrechterhaltung einer ~ 300K LOC C # Legacy-Thick-Client-Anwendung mit einer Windows.Forms-Schnittstelle. Die App ist voll von kleinen Fehlern und Macken. Beispielsweise entdeckte ich kürzlich einen Fehler, wenn ein Benutzer Änderungen und Tabulatoren (nicht Klicks) durch die Zellen auf einem DataViewGrid, und verlässt die eine bestimmte Zelle ausgewählt ist, die App Ausnahme einer „auf eine Instanz eines Objekts Objektverweis nicht gesetzt“ bekommt . Ich entdecken (oder einen Fehlerbericht von bekommen) etwas Neues wie dies etwa jede Woche oder zwei. Ich habe genug, und dachte an eine Art von Fuzzing auf die Anwendung versucht, aufzustöbern unentdeckte Probleme zu versuchen.

Wenn ich Roll-my-own Fuzzing, ich mich zumindest Notwendigkeit annehmen würde in der Lage seines Test Geschirre, dass Lauf Stücke meiner app (Hauptfenster FormX, formy, FormZ, ...) unabhängig zu erzeugen, und versuchen Ereignisse in sich zu injizieren.

Ich habe versucht, für Werkzeuge dafür geeignet zu suchen, aber bisher haben kommen mit nichts für Win Forms. (Es scheint kein Mangel an Flaum zu seinen Test-Tool für Web-Anwendungen, jedoch).

Jede hilfreiche Ideen?

War es hilfreich?

Lösung

ich immer, wie die Idee des Werkzeugs Gremlins Tests auf Palm-Handhelds eingesetzt. Es erzeugte Zufalls tap Ereignisse UI Programmierfehler auszuspülen. Sie könnten das gleiche in Ihrer Anwendung tun, Millionen von Maus nach oben und unten Ereignissen an zufälligen Orten zu erzeugen. Sie werden zu P / Invoke Postmessage müssen () und verwenden Control.GetChildAtPoint (), um das Fenster-Handle für die WM_LBUTTONDOWN / UP-Meldungen zu erzeugen. Application.DoEvents () in der Testschleife die Ereignishandler zu laufen zu bekommen.

Andere Tipps

Doing einige der Suche um das Netz, fand ich zwei Links mit nützlichen Tools und Informationen zu Fuzz-Prüfung WinForms-Anwendungen:

  • Affe Fuzzing - Ein Alpha-Status-Tool auf Codeplex, dass scheint ziemlich nahe zu sein, was ich wollen. Von der Website: „MonkeyFuzz sendet in erster Linie zufällige Tastatur und Maus-Ereignisse zu einem Programm, aber es kann die Aktionen auf dem Weg aufzeichnen Auf diese Weise kann sie für Regressionstests wiederholt nützlich sein)..“ Ich kann es ausprobieren und meine Erkenntnisse berichten.
  • Papier auf Zufall Testing von der Universität von Wisconsin CS Abteilung. Dies ist datiert 2000-2002, aber scheint einige gute Infos zu enthalten, und Links zu Tools verwendet sie in ihrer Studie. Es scheint jedoch, die Werkzeuge können mindestens 10 Jahre out-of-date sein.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top