Frage

Für C++ gibt es viele gute Unit-Test-Frameworks, aber ich konnte kein gutes dafür finden Funktionsprüfung.Mit Funktionstests meine ich Dinge, die die Festplatte berühren, erfordern, dass die gesamte Anwendung vorhanden ist usw.

Fallbeispiel:Welches Framework hilft beim Testen von Dingen, beispielsweise ob Ihre E/A funktioniert?Ich habe ein von Hand erstelltes System eingerichtet, das temporäre Ordner erstellt und eine Menge Daten kopiert, sodass die Tests immer in derselben Umgebung durchgeführt werden, aber bevor ich mehr Zeit mit meinem benutzerdefinierten Framework verbringe – gibt es eines? Gibt es schon ein gutes Exemplar?

War es hilfreich?

Lösung

Ich schrieb ein von Grund auf schon dreimal - zweimal zum Testen C ++ Anwendungen, die auf den Austausch mit FIX-Protokoll gesprochen, einmal für eine GUI-Anwendung

.

Das Problem ist, müssen Sie die Außenwelt emulieren richtigen Systemtests zu tun. Damit meine ich nicht „außerhalb des Codes“ - außerhalb der Anwendung. Dabei handelt es emuliert Endanwendern, externe Einrichtungen, das Internet und so weiter.

ich in der Regel Perl verwenden, um mein System-Test-Framework und Tests zu schreiben, vor allem, weil es mit dem Zugriff auf alle Arten von OS Einrichtungen gut ist und regexps sind Bürger erster Klasse.

Einige Tipps: Stellen Sie sicher, dass Ihre Protokolle sind einfach zu analysieren, detailliert, aber nicht zu ausführlich. Haben Sie eine vernünftige Standardkonfiguration. Machen Sie es einfach zu „Reset“, um die Anwendung -. Sie es nach jedem Test tun müssen,

Der Ansatz, den ich in der Regel verwenden, ist eine Art von „Adapter“ zu haben, die den Antrag der Kommunikation mit der Außenwelt in stdin / stdout einiger ausführbar macht. Dann baue ich ein Perl-Framework obendrein, und verwenden Sie dann die Testfälle den Rahmen.

Andere Tipps

Im Folgenden liste ich einige Tools und größere Testanwendungen auf, die mir bekannt sind.Wenn Sie weitere Informationen zu Ihrer Plattform (Betriebssystem usw.) bereitstellen, können wir wahrscheinlich bessere Antworten geben.

Für einen Teil dessen, was Sie benötigen, stellt Microsoft Folgendes zur Verfügung Anwendungsprüfer:

Application Verifier (AppVerifier) ​​ist ein Laufzeitverifizierungstool, das zum Testen von Anwendungen auf Kompatibilität mit Microsoft Windows XP verwendet wird.Dieses Tool kann zum Testen auf eine Vielzahl bekannter Kompatibilitätsprobleme verwendet werden, während die Anwendung ausgeführt wird.In diesem Artikel werden die Schritte zur Verwendung von AppVerifier als effektive Ergänzung zu den Anwendungsentwicklungs- und Testzyklen beschrieben.

Application Verifier kann zum Testen von Speichermangel, anderen geringen Ressourcen und anderer API-Nutzung nützlich sein.

Ein weiterer Teil des Puzzles ist das Microsoft Detours-Paket, mit dem Sie API-Aufrufe durch Ihren eigenen Code ersetzen können (nützlich zum Beispiel bei der Rückgabe von Fehlercodes für Tests, die schwer einzurichten sind).

Detours ist eine Bibliothek zur Instrumentierung beliebiger Win32-Funktionen auf x86-, x64- und IA64-Maschinen.Detours fängt Win32-Funktionen ab, indem es den In-Memory-Code für Zielfunktionen neu schreibt.Das Detours-Paket enthält außerdem Dienstprogramme zum Anhängen beliebiger DLLs und Datensegmente (Payloads genannt) an jede Win32-Binärdatei.

Es gibt auch andere, größere (und teurere) Komplettpakete.Borland macht Seide.
Automatisierte Software macht TestComplete.Die Auswahl eines dieser Tools hängt von Ihren Anforderungen für Ihre Anwendungen ab.
IBM/Rational stellt dies bereit Rationaler Funktionstester, das auf vielen Plattformen verfügbar und funktionsreich ist.

Hallo, ich bin nicht sicher, ob der Rahmen, den wir haben in Ihrer Situation hilft, aber es hakt in Rational Functional Tester und ermöglicht es dem Benutzer, verschiedene Datensätze zu erstellen, um verschiedene Tests zu befestigen und um die enviornments zu ändern, ohne das Scripting zu ändern und wieder verwendet die Automatisierung auf effiziente Art und Weise. Werfen Sie einen Blick, wenn Ihr Interesse: http://www.testpro.com.au/Test-Automation-Framework.html

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