[c++] Testen von MFC UI-Anwendungen



2 Answers

Da Sie MFC erwähnt haben, habe ich angenommen, dass Sie eine Anwendung haben, die unter einem automatisierten Testkabelbaum schwer zu finden wäre. Sie werden die besten Vorteile von Unit-Test-Frameworks beobachten, wenn Sie Tests erstellen, während Sie den Code schreiben. Aber versuchen, eine neue Funktion testweise zu einer Anwendung hinzuzufügen, die nicht testbar ist ... kann harte Arbeit sein. und frustrierend.

Nun, was ich vorschlagen werde, ist definitiv harte Arbeit ... aber mit etwas Disziplin und Ausdauer wirst du den Nutzen bald genug sehen.

  • Zunächst benötigen Sie einige Verwaltungsunterstützung für neue Fixes, um etwas länger zu verwenden. Stellen Sie sicher, dass jeder versteht warum.
  • Als nächstes kaufen Sie eine Kopie des WELC-Buches . Lesen Sie es, um zu bedecken, wenn Sie die Zeit haben ODER wenn Sie schwer gedrückt werden, scannen Sie den Index, um das Symptom zu finden, das Ihre App ausstellt. Dieses Buch enthält viele gute Ratschläge und ist genau das, was Sie brauchen, wenn Sie versuchen, vorhandenen Code testbar zu machen. Alttext http://ecx.images-amazon.com/images/I/51RCXGPXQ8L._SL160_AA115_.jpg
  • Dann sollten Sie für jeden neuen Fix / Änderung etwas Zeit investieren und den Bereich verstehen, an dem Sie arbeiten werden. Schreiben Sie einige Tests in eine xUnit-Variante Ihrer Wahl (frei verfügbar), um das aktuelle Verhalten auszuüben.
  • Stellen Sie sicher, dass alle Tests bestanden sind. Schreiben Sie einen neuen Test, der das benötigte Verhalten oder den Fehler ausführt.
  • Schreiben Sie Code, um diesen letzten Testdurchlauf durchzuführen.
  • Refaktor gnadenlos in dem zu testenden Bereich, um das Design zu verbessern.
  • Wiederholen Sie diesen Vorgang für jede neue Änderung, die Sie an diesem System vornehmen müssen. Keine Ausnahmen von dieser Regel.
  • Jetzt das gelobte Land : Bald werden immer mehr Inseln mit gut getestetem Code auftauchen. Immer mehr Code würde unter die automatisierte Testsuite fallen und Änderungen werden immer einfacher zu machen. Und das ist, weil langsam und sicher das zugrundeliegende Design prüfbarer wird.

Der einfache Ausweg war meine vorherige Antwort. Das ist der schwierige, aber richtige Ausweg.

Question

Wie testen Sie eine große MFC-Benutzeroberflächen-Anwendung?

Wir haben ein paar große MFC-Anwendungen, die seit vielen Jahren in Entwicklung sind. Wir verwenden einige standardisierte automatisierte QA-Tools, um grundlegende Skripte auszuführen, um Grundlagen zu prüfen, Dateien zu öffnen usw. Diese werden von der QA-Gruppe nach dem täglichen Build ausgeführt.

Wir möchten jedoch Verfahren einführen, mit denen einzelne Entwickler Tests gegen Dialoge, Menüs und andere visuelle Elemente der Anwendung erstellen und ausführen können, bevor Code an den täglichen Build übergeben wird.

Ich habe von Techniken wie versteckte Testknöpfe in Dialogen gehört, die nur in Debug-Builds erscheinen. Gibt es dafür Standard-Toolkits?

Die Umgebung ist C ++ / C / FORTRAN, MSVC 2005, Intel FORTRAN 9.1, Windows XP / Vista x86 & x64.




Obwohl es die Benutzeroberfläche nicht verarbeiten kann, teste ich MFC-Code mit der Boost-Test-Bibliothek. Es gibt einen Code Project-Artikel zum Einstieg:

Entwerfen robuster Objekte mit Boost




Nun, wir haben eine dieser gigantischen MFC-Apps am Arbeitsplatz. Es ist ein riesiger Schmerz zu erhalten oder zu verlängern ... es ist ein riesiger Ball aus Schlamm jetzt aber es harket im Moolah.

  • Wir verwenden Rational Robot für Rauchprüfungen und dergleichen.
  • Ein anderer Ansatz, der einige Erfolge erzielt hat, besteht darin, eine kleine produktspezifische Sprache zu erstellen, und Skripttests , die VBScript und etwas Control verwenden, behandeln Spionagezauber. Verwandeln Sie allgemeine Aktionen in Befehle. Beispiel: OpenDatabase ist ein Befehl, der wiederum die erforderlichen Skriptblöcke einfügt, um auf Hauptmenü> Datei> "Öffnen ..." zu klicken. Sie erstellen dann Excel-Blätter, die eine Folge solcher Befehle sind. Diese Befehle können auch Parameter übernehmen. So etwas wie ein FIT-Test ... aber mehr Arbeit. Sobald Sie die meisten der gebräuchlichen Befehle gefunden haben und die Skripte bereit sind. Es werden Skripte ausgewählt und assembliert (gekennzeichnet durch CommandIDs), um neue Tests zu schreiben. Ein Test-Läufer analysiert diese Excel-Blätter, kombiniert alle kleinen Skript-Blöcke zu einem Test-Skript und führt es aus.

    1. OpenDatabase "C: \ Tests \ MyDB"
    2. OpenDialog "Modell hinzufügen"
    3. AddModel "M0001", "MyModel", 2.5, 100
    4. Drücke OK
    5. SpeichernDatenbank

HTH




Related