Frage

Ich bin relativ unerfahren, wenn es um Unit Testing / Automatisiertes Testen kommt, so verzeihen Sie die Frage, ob es keinen Sinn macht.

Die aktuelle Codebasis arbeite ich an ist so eng miteinander gekoppelt, dass ich die meisten der Code Refactoring müssen werden, bevor überhaupt in der Lage, Unit-Tests darauf zu laufen, so las ich einige Beiträge und entdeckte Selen, die ich denke, ein wirklich cooles Programm.

Mein Mandant würde bestimmte automatisierte Tests wie alle zehn Minuten auf unseren Produktionsserver ausgeführt werden, um sicherzustellen, dass unsere Website in Betrieb ist, und dass bestimmte Merkmale / Aspekte laufen normal.

Ich habe nie wirklich gedacht, Tests gegen einen Produktions-Server laufen, weil sie eine zusätzliche Belastung auf die Website sind hinzufügen. Ich dachte immer, würden Sie alle Tests gegen einen Staging-Server laufen, und wenn diese Arbeit, können Sie einfach die prouction Website übernehmen betriebsbereit, solange der Hosting-Provider nicht ein Problem erfährt.

Alle Gedanken an Ihrem Ende auf Testproduktionscode auf dem tatsächlichen Produktionsserver?

Vielen Dank Jungs!

War es hilfreich?

Lösung

Vielleicht würde es helfen, wenn Sie den Selen-Skripte gedacht als „Überwachung“ anstelle von „Prüfung“? Ich hoffe, dass alle wichtigen Web-Site gibt eine Art von Überwachung los hat, auch wenn es nur ein periodisches PING oder die Homepage Laden jeder so oft. Während es möglich ist, zu weit, diesen Weg zu nehmen, sei nicht generell der Begriff Angst. Also, was könnte einige der Vorteile dieser Überwachung / Testen Sie und Ihre Kunden?

  1. Irgendwie nicht alles Gute Tests in der Welt, um die seltsame Dinge vorhersagen kann der Anwender tun, entweder absichtlich oder durch schiere Kraft von Zahlen (wenn 1 Million Affen auf Schreibmaschinen Hamlet schreiben kann, sich vorstellen, was ein paar hundert Klick glücklich Benutzer können tun? eine Website Pingen kann Ihnen sagen, wenn es oben ist, aber nicht, wenn eine Tabelle beschädigt ist und ein Bericht jetzt versagt, alles nur, weil ein Benutzer in einem Wert mit einem Umlaut in sie eingegeben haben.

  2. Während Ihre Website könnte auf dem Staging-Server groß ausführen, vielleicht wird es beginnen, im Laufe der Zeit zu verschlechtern. Wenn Sie die Leistung dieser Selen Tests überwacht werden, können Sie vor der Langsamkeit Beschwerden bleiben. Natürlich, wie Sie Ihre Überwachung erwähnt, sollten Sie keine Probleme verursachen entweder! Sie können Ihren Client, dass bestimmte Tests geeignet sind, haben zu überzeugen, alle X Minuten zu laufen, und andere sollten nur einmal am Tag ausgeführt werden, um 3 Uhr morgens.

  3. Wenn Sie eine Notfall-Änderung an die Live-Site am Ende machen, werden Sie mehr sicher sein, zu wissen, dass Tests sicherzustellen, dass alles machen laufen in Ordnung ist.

Andere Tipps

Ich habe auf ähnlichen Produktionsserver von langer Zeit gearbeitet. Ich kann aus meiner Erfahrung sagen, ist, dass Sie es immer besser ist, unsere Änderung Änderungen / Patches in Bühnenumgebung zu testen und es nur einsetzen, in Produktionsservern. Dies liegt daran, beide Staging und Produktionsumgebungen gleich sind, mit Ausnahme der Datenmenge. Wenn wirklich erforderlich ist, wäre es in Ordnung sein, einige Tests auf Produktionsservern laufen, sobald der Code / Patch installiert ist. Aber es ist nicht zu empfehlen / gute Möglichkeit, die Tests immer auf dem Produktionsserver ausgeführt werden.

wäre mein Vorschlag, die Produktionsdatenbank Schatten auf eine Inszenierung / Testumgebung auf einer nächtlichen Basis und die Komponententests laufen dort jede Nacht. Der Ansatz des Kunden vorgeschlagen würde, sicherzustellen, gut sein, dass neue Daten in das System eingeführt keine Ausnahmen innerhalb des Systems verursacht haben, aber ich bin nicht einverstanden mit dieser in der Produktion zu tun.

es in einer Staging-Umgebung laufen würden Sie die Möglichkeit, Funktionen zu bewerten, wenn neue Daten das System fließen in, ohne die Produktionsumgebung als Prüfstand zu verwenden.

[Bearbeiten], um sicherzustellen, dass die Seite online ist, könnten Sie ein einfaches Programm schreiben, das es alle 10 Minuten einen Ping-Befehl, anstatt Ihre ganze Testsuite dagegen läuft.

Was wird in der Produktionsumgebung ändern, die Sie benötigen, automatisierte Tests laufen? Ich verstehe, dass Sie die Überwachung und Warnungen müssen sicherstellen, dass die Server in Betrieb sind.

Wie auch immer die Wahl, ob es sich um eine Überwachung oder Prüfung Typ-Lösung sein, die Sache, die Sie zuerst tun sollten und vor allem für Ihre Kunden sie warnt. Wie Sie erwähnt haben, Tests in der Produktion ist fast nie eine gute Idee. Sobald sie sich der Gefahren bewusst sind und wenn es keine andere logische Entscheidungen, konstruieren sorgfältig sehr minimal-Tests. Wenden Sie sie in Schichten und überwachen sie religiös, um sicherzustellen, dass sie keine Probleme mit dem App verursachen.

ich mit Peter darüber einig, dass das klingt eher wie Überwachung als Tests. Ein kleiner Unterschied, aber ein wichtiges Thema, denke ich. Wenn die Anforderungen an Service Level Agreements beziehen Client dann ihre Wünsche klingen nicht zu abwegig.

Auch kann es nicht sicher sein, dass übernehmen, wenn der Diensteanbieter nicht ist keine Probleme auftreten, dass die Website richtig funktioniert. Was passiert, wenn die Seite wird mit Anfragen überschwemmt? Oder vielleicht SQL, die in Test fein laufen beginnt verursacht Probleme (Timeouts usw. Blockierung) mit einer größeren Produktionsdatenbank?

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