Frage

Wir arbeiten an einem großen Projekt mit einer Reihe neuer/modifizierter GUI-Funktionalitäten.Wir haben in der Vergangenheit festgestellt, dass wir beim Hinzufügen neuer Funktionen häufig neue Probleme in zugehörigen Code eingeführt haben.

Wir haben technisch nicht versierte Benutzer, die Tests durchführen, aber oft übersehen sie Teile und lassen zu, dass Fehler durchschlüpfen.

Meine Frage:Gibt es Best Practices für die Organisation des UI-Tests eines WinForms-Projekts?Gibt es eine Möglichkeit, es zu automatisieren?

Danke!

War es hilfreich?

Lösung

Es gibt GUI-Testtools, die für Sie auf Schaltflächen und ähnliches klicken, aber meiner Erfahrung nach sind sie ziemlich fragil.

Am besten halten Sie Ihre UI-Schicht so dünn wie möglich.Ihre Event-Handler-Klassen sollten optimalerweise nur aus einer oder zwei Zeilen bestehen, die andere besser testbare Klassen aufrufen.Auf diese Weise können Sie Ihre Geschäftslogik in Unit-Tests testen, ohne tatsächlich einen Knopfdruck ausführen zu müssen.

Andere Tipps

Sie können GUI-Tests mit automatisieren Weiß Rahmen.

Erwägen Sie auch die Verwendung eines TDD-freundlichen Designs, d. h.verwenden MVP/MVC Muster.

Ich würde Ihnen dringend empfehlen, die Dokumentation der Microsoft-Patterns&Practices-Teams zu lesen.

Schauen Sie sich vor allem die an Zusammengesetzter UI-Anwendungsblock Und CompositeWPF.

Diese Projekte wurden speziell entwickelt, um Ihnen Best Practices für die Entwicklung von GUI-Apps einschließlich testgesteuerter Benutzeroberflächen zu vermitteln.

Halten Sie die GUI-Schicht so dünn wie möglich.Artikel von Michael Feathers, Das bescheidene Dialogfeld, ist ein Klassiker.Schauen Sie sich auch Martin Fowlers an Passive Ansicht.Ich habe auch gehört, dass die „automatischen Schaltflächenklicker“ fragil sind und dass es leicht ist, mehr Zeit für die Pflege des Tests aufzuwenden als für die Pflege des Codes.

Falls das jemand nützlich findet:

Liste der GUI-Testtools gefunden auf Wikipedia.

Das folgende Buch ist eine Einführung in das Thema.Es gibt so viele Möglichkeiten, wie es Entwickler gibt.

http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby

Es stehen viele Tools und Bibliotheken zur Verfügung, die WinForms-Tests automatisieren können, von Open-Source-Lösungen wie White bis hin zu teuren kommerziellen Lösungen wie HP QuickTest Pro.Es gibt auch den UIAutomation-Namespace in .NET, wenn Sie Ihr eigenes Automatisierungsframework erstellen möchten.Die tatsächlichen Kosten der Automatisierung liegen jedoch in der Zeit und den Fachkenntnissen, die für die Implementierung erforderlich sind.Wartbarkeit ist auch einer der wichtigsten Aspekte des automatisierten Testdesigns;Sie möchten keine übermäßigen Ressourcen aufwenden, um die Automatisierungsressourcen Ihrer Anwendung auf dem neuesten Stand zu halten.Es gibt auch viele Faktoren, die die Entscheidung zur Automatisierung beeinflussen und spezifisch für Ihre spezifische Anwendung und Organisation sind.

Am besten recherchieren Sie weiter zu diesem Thema und schauen sich einige der spezialisierten Testseiten an, z http://www.sqaforums.com.

Ich habe diese schnelle und schmutzige Möglichkeit gefunden, Webseitenlayouts in verschiedenen Browsern zu testen.Es heißt browsershots.org.Unser Kunde benötigt derzeit Unterstützung in 5 Browsern und der vollständige Regressionstest dauert etwa eine Woche.Dieser Dienst liefert Screenshots von über 70 Browsern und Versionen.Ich drucke sie aus und halte die Seiten ans Licht.Wenn sie nicht ausgerichtet sind, muss ein Layoutproblem vorliegen.

Ich kann nicht wirklich bei der Organisation oder Best Practices helfen, aber ein NUnit Die Erweiterung scheint zum Testen von Formularen verfügbar zu sein. NUnitForms.

Ich habe einen Test-Download verwendet, der diesem Produkt ähnelt (http://www.tethyssolutions.com/product.htm) und dieses Produkt (http://www.mjtnet.com/macro_scheduler.htm) vor Jahren und ich war mit den Ergebnissen zufrieden.Dies sind recht günstige Lösungen und einige dieser Makro-Recorder-Produkte können tatsächlich für automatisierte Tests verwendet werden.

Eine neue Methode, die jetzt verfügbar ist, ist die Verwendung von Ruby über den Ruby-Gem namens win32-autogui.Dies bietet ein Framework zum Testen von Windows-GUI-Apps.Kombinieren Sie es mit den Ruby-Tools RSpec und Cucumber und Sie erhalten ein recht leistungsfähiges Test-Framework.

Wie Sie UI-Tests organisieren, hängt davon ab, wie Sie die Testfälle entwerfen.

Für die Automatisierung von Windows Forms-Anwendungen auf Unit-Test-Ebene kann ein TDD-Framework wie NUnit verwendet werden.oder verwenden Sie ein BDD-Framework wie NSpec.

Die Automatisierung von Windows Forms-Anwendungen auf Funktionstestebene kann mithilfe von White, CodedUI oder sogar direkt erfolgen Windows-Automatisierungs-API 3.0 (UI-Automatisierung und MSAA).

Da es sich bei all den oben genannten Dingen eher um Technologien als um Lösungen handelt, ist es besser, einige grundlegende Testautomatisierungs-/Skripting-Frameworks auf Basis dieser Technologien zu erstellen, bevor Sie mit dem Schreiben automatisierter Tests beginnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top