Frage

Ich kann nicht glauben, dass ich die erste Person bin, die diesen Denkprozess durchläuft, also frage ich mich, ob mir jemand dabei helfen kann.

Aktuelle Situation: Entwickler schreiben eine Website, Vorgänge bereitzustellen. Nach dem Einsatz testet ein Entwickler dies nach dem Einsatz, um sicherzustellen, dass die Bereitstellung reibungslos verlief.

Für mich fühlt sich das falsch an, es bedeutet im Wesentlichen, dass zwei Personen eine Anwendung bereitstellen. In unserem Fall befinden sich diese beiden Personen auf den gegenüberliegenden Seiten des Planeten und Zeitzonen kommen ins Spiel und verursachen Chaos. Es bleibt jedoch die Tatsache, dass Entwickler wissen, was der Mindestabsatz von Tests ist und die sich im Laufe der Zeit ändern können (insbesondere für den Web -Service -Teil unserer App). Operationen sind mit allem Respekt vor ihnen (und sie würden dies selbst sagen) Button-Pushers, die eine Reihe von Anweisungen benötigen, um zu folgen.

Die manuelle Lösung ist, dass wir die Testfälle und Vorgänge bei jedem Bereitstellen dieses Dokuments dokumentieren. Das klingt schmerzhaft, und sie stellen möglicherweise verschiedene Versionen in verschiedenen Umgebungen (insbesondere UAT und Produktion) ein und benötigen möglicherweise jeweils unterschiedliche Anweisungen.

Darüber hinaus besteht einer unserer Pläne für die Nahkompetenz darin, eine automatisierte tägliche Bereitstellungsumgebung zu haben. Daher müssen wir einen Computer anweisen, wie eine bestimmte Version unserer App bereitgestellt wird. Ich möchte diese Anweisungen sehr erweitern, wie man die App raucht.

Jetzt dokumentieren Entwickler Anweisungen für Computer besser als für Menschen Läufer) und entweder die Watin- oder Selen -APIs, um die offensichtlichen Browserschritte zu durchlaufen und den Webdienst anzurufen und den Operations zu erklären, wie man diese Unit -Tests ausführt. Ich kann das machen; Ich habe es meistens schon gemacht.

Aber wäre es nicht schön, wenn ich diesen Prozess noch einfacher machen könnte?

Zu diesem Zeitpunkt müssen die Operations -Jungs und der Computer wissen, welche Tests mit der Version der App bezogen werden, und mitteilen dem Nunit -Läufer, auf welche Basis -URL sie verweisen sollte (z. B. www.example.com = v3. 2 oder test.example.com = v3.3).

Wäre es nicht schöner, wenn der Testläufer selbst eine Möglichkeit hätte, ihm eine Basis -URL zu geben und ihn herunterladen zu lassen, sagen eine ZIP -Datei, packt sie aus und bearbeiten Sie eine Konfigurationsdatei automatisch, bevor Sie die darin enthaltenen Testleuchten ausführen?

Gibt es eine Open -Source -App, die das tun würde? Gibt es einen Bedarf für einen? Gibt es eine Lösung, die etwas anderes als Nunit verwendet, vielleicht Fitne?

Für den Datensatz schaue ich zuerst .NET-basierte Tools, da die meisten Entwickler in erster Linie .NET-Entwickler sind, aber wir sind nicht damit verheiratet. Wenn ein solches Tool mit anderen Sprachen existiert, um die Tests zu schreiben, werden wir uns gerne anpassen, solange es einen Testläufer gibt, der unter Windows funktioniert.

War es hilfreich?

Lösung 7

Nachdem wir viel Zeit verschwendet hatten, um eine einfachere Lösung zu finden, haben wir das OPS -Team schließlich angekündigt, wie man Nunits GUI -Läufer benutzt. Dies war einfacher als erwartet und funktioniert gut.

Andere Tipps

Ich habe in einem Smoke Test Writer für eine ASP.NET -Anwendung gearbeitet. Wir verwendeten QuickTest Pro, Die Automatisierung von Testläufen wurde mit durchgeführt Qualitätszentrum (Es wurde Testdirektor genannt.). Dazu das Schreiben von Hunderten von Testskripten, die einen Webbrowser automatisieren, der mit der Webanwendung interagiert. Diese Tests validieren einen Build, bevor sie auf unseren Produktionserver ausgelöst werden. Mit dem Quality Center können Sie einen "Pool" von Testmaschinen definieren, mit denen Sie eine große Liste von Testskripten auf multi-thread-Weise ausführen können.

Ein simplerischer Rauchtest wäre, alle Fehler/Ausnahmen zu protokollieren, die die Anwendung erzeugt und eine Spinne gegen das System ausführt. Dies wird keine sehr "tiefe" Codeabdeckung erhalten, aber Rauchtests sind nicht für eine tiefe Codeabdeckung gedacht. Diese Fehlerprotokollierung sollte von der Produktionsanwendung getrennt sein, um mit Fehlern zu befassen, wenn sie auftauchen. Fehler werden immer durch die Risse rutschen und leider sind die besten Tester Ihre Benutzer.

Ich habe Selen in der Vergangenheit verwendet, um diese Art von Rauchtests für Webbereitstellungen durchzuführen. Sie können eine Reihe von Testskripten schreiben und dann dann in verschiedenen Umgebungen an derselben Website ausgeführt werden.

Ich habe auch einige Gedanken in diese Sequenz eingerichtet und vorgeschlagen, einen deklarativen Ansatz für den Einsatz und die Überprüfung zu verfolgen. Siehe hier für meine Gedanken,

http://jimblogdog.blogspot.co.uk/2010/10/introducingdeclarative-ployment.html

Ich habe auch einige Plugins für mein Open -Source -Projekt Wolfpack erstellt, um diesen gesamten Vorgang zu automatisieren. Im Wesentlichen verpacken Sie Ihre "Bereitstellungsrauchtests" als Nuget -Paket und veröffentlichen es in Ihrem privaten Nuget -Feed. Wolfpack erkennt automatisch die neue Version des Pakets und lädt es zusammen mit dem NUnner -Nuget -Paket in nunit.runner herunter und packt alle Dateien aus. Anschließend werden Ihre Tests stillschweigend mit dem Nunit -Konsolenläufer ausgeführt und die Ergebnisse in eine Warnung analysiert, die Sie entweder per E -Mail, Knurren, Hipchat usw. erhalten können.

http://wolfpack.codeplex.com/

http://wolfpackcontrib.codeplex.com/wikipage?title=nunitdeploymentpublisher

Telerik verfügt über kostenlose und nicht freie UI-Testwerkzeuge, die von jedem automatisch ausgeführt werden können, der auch dabei helfen könnte.

Ich weiß nicht, welche VCs Sie verwenden, aber Sie können eine Lösung schreiben, die eine Versions-spezifische Konfigurationsdatei aus dem VCS über einen Zwischendienst zieht.

Sie können ein PowerShell -Skript oder eine Anwendung schreiben, die die Konfigurationsdatei aus einem Webdienst oder einer Web -App herunterladen und die Test -URL als Parameter übergeben würde. Die Server oder App werden auf einem Computer mit Zugriff auf VCS ausgeführt, sodass die Dateiinhalte zurückgeben können. Nach dem Abrufen könnte das Skript oder die App die Tests initiieren.

Normalerweise reichen Ihre Nunit -Tests aus, dass die Codebasis bei allen bestehen, wenn sie alle bestehen. Wenn Sie den Code mit den Tests von Nunit -Tests bereitstellen und auf einen Fehler auf der Website stoßen, müssen Sie aus demselben Grund auch eine zusätzliche NUNIT hinzufügen, die ebenfalls fehlschlägt. Wenn Sie dann Ihren Code so beheben, dass die NUNIT besteht, wissen Sie, dass Sie das Problem behoben haben, das der bereitgestellte Code hat. Aus diesem Grund können die meisten automatischen Build -Systeme so konfiguriert werden, dass zuerst alle Nunit -Tests automatisch ausgeführt werden, und dann den Build nicht ausführen, wenn einer der Tests fehlschlägt.

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