devops testing tutorial
DevOps Testing Tutorial: Eine kürzlich durchgeführte RightScale-Umfrage ergab, dass 54% der Unternehmen DevOps eingeführt haben und das Interesse an DevOps rapide zunimmt.
In diesem Artikel erfahren Sie, wie sich diese neue Softwareentwicklungsmethode auf die Qualitätssicherung auswirkt und wie sich die Qualitätssicherungsfunktion insgesamt entwickeln sollte, um diese Änderung zu berücksichtigen.
Auschecken => Schließen Sie die DevOps Tutorial-Reihe ab
In diesem Artikel erfahren Sie mehr über DevOps und die Auswirkungen auf die Qualitätssicherung und ihre Funktionen.
Was du lernen wirst:
Was ist DevOps?
DevOps - ist eine Kombination aus Development &AufErationen - Es handelt sich um eine Softwareentwicklungsmethode, mit der alle Softwareentwicklungsfunktionen von der Entwicklung bis zum Betrieb innerhalb desselben Zyklus integriert werden sollen.
Dies erfordert ein höheres Maß an Koordination innerhalb der verschiedenen Akteure im Softwareentwicklungsprozess (nämlich Entwicklung, Qualitätssicherung und Betrieb )
DevOps-Zyklus
Ein idealer DevOps-Zyklus würde beginnen von:
- Der Dev, der Code schreibt
- Erstellen und Bereitstellen von Binärdateien in einer QS-Umgebung
- Testfälle ausführen und schließlich
- Bereitstellung in der Produktion in einem reibungslosen integrierten Ablauf.
Offensichtlich legt dieser Ansatz großen Wert auf die Automatisierung von Build, Deployment und Testing. Durch die Verwendung von CI-Tools (Continuous Integration) werden Tools für Automatisierungstests zur Norm in a DevOps Zyklus.
Warum DevOps?
Obwohl es subtile Unterschiede zwischen gibt Agile und DevOps-Tests Wenn Sie mit Agile arbeiten, werden Sie feststellen, dass DevOps etwas vertrauter ist (und schließlich übernommen wird). Während agile Prinzipien in den Entwicklungs- und QS-Iterationen erfolgreich angewendet werden, ist dies auf der operativen Seite eine ganz andere Geschichte (und oft ein Streitpunkt). DevOps schlägt vor, diese Lücke zu schließen.
Implementierung des dijkstra-Algorithmus in Java
Anstelle der kontinuierlichen Integration wird nun DevOps beinhaltet 'kontinuierliche Entwicklung' , in dem der Code geschrieben und für die Versionskontrolle festgeschrieben wurde, wird in der Produktionsumgebung erstellt, bereitgestellt, getestet und installiert, die vom Endbenutzer verwendet werden kann.
Dieser Prozess hilft allen in der gesamten Kette, da Umgebungen und Prozesse standardisiert sind. Jede Aktion in der Kette ist automatisiert. Darüber hinaus haben alle Beteiligten die Freiheit, sich auf das Entwerfen und Codieren eines qualitativ hochwertigen Ergebnisses zu konzentrieren, anstatt sich um die verschiedenen Gebäude-, Betriebs- und QS-Prozesse zu kümmern.
Es verkürzt die Lebensdauer drastisch auf etwa 3-4 Stunden, vom Schreiben und Festschreiben des Zeitcodes bis zur Bereitstellung in der Produktion für den Endbenutzerverbrauch.
Kurz gesagt, DevOps ist eine Erweiterung von Agile oder ich nenne es gerne 'Agile on Steroids'.
Die Rolle der Qualitätssicherung in DevOps wurde geändert
Traditionell würde die Qualitätssicherung einen Build erhalten, der in der angegebenen Umgebung bereitgestellt wird, und die Qualitätssicherung würde dann mit der Erstellung beginnen Funktionell & Regressionstests . Der Build würde idealerweise ein paar Tage bei der Qualitätssicherung bleiben, bevor die Qualitätssicherung für den Build genehmigt wird. Alle diese Schritte ändern sich in DevOps.
QS-Änderungen für DevOps-Tests:
- Die Qualitätssicherung muss ihre Bemühungen im DevOps-Zyklus ausrichten.
- Sie müssen sicherstellen, dass alle ihre Testfälle automatisiert sind und eine nahezu 100% ige Codeabdeckung erreichen.
- Sie müssen sicherstellen, dass ihre Umgebungen standardisiert sind und die Bereitstellung auf ihren QS-Boxen automatisiert ist.
- Alle Aufgaben vor dem Testen, Aufräumen, Aufgaben nach dem Testen usw. sind automatisiert und auf den kontinuierlichen Integrationszyklus abgestimmt.
Wie bereits erwähnt, erfordert DevOps ein hohes Maß an Koordination zwischen verschiedenen Funktionen der Lieferkette. Dies bedeutet auch, dass die Grenzen zwischen verschiedenen Rollen der Mitwirkenden in der Kette porös werden.
DevOps ermutigt alle, zur Kette beizutragen . So kann ein Entwickler unter anderem Bereitstellungen konfigurieren. Bereitstellungsingenieure können dem QS-Repository Testfälle hinzufügen. QA-Ingenieure können ihre Automatisierungstestfälle in der DevOps-Kette konfigurieren.
Insgesamt ist jeder in der Kette für die Qualität und Aktualität der Ergebnisse verantwortlich.
DevOps und Testautomatisierung
Um diese Geschwindigkeit und Flexibilität zu erreichen, ist es wichtig, alle Testprozesse zu automatisieren und so zu konfigurieren, dass sie automatisch ausgeführt werden, wenn die Bereitstellung in der QS-Umgebung abgeschlossen ist. Um diese Integration zu erreichen, werden spezielle Tools für Automatisierungstests und Tools für die kontinuierliche Integration verwendet.
Dies erfordert auch den Aufbau eines ausgereiften Automation Testing Frameworks, mit dem neue Testfälle schnell skriptiert werden können.
DevOps-Teststrategie: Tipps für den Erfolg von DevOps
- Die Testfälle, die für einen bestimmten Build ausgeführt werden müssen, müssen identifiziert werden.
- Die Testausführung sollte im Wesentlichen schlank sein.
- Die Qualitätssicherung und der Entwickler müssen zusammensitzen und die Bereiche identifizieren, die aufgrund eines bestimmten Builds betroffen sind, und diese zugehörigen Testfälle sowie einen Test zum Testen der Gesundheit ausführen.
- Sie müssen auch spezielle Tools für die Codeanalyse und -abdeckung konfigurieren, um sicherzustellen, dass Sie eine Codeabdeckung von nahezu 100% erreichen.
- Das Konzept der Ausführung alle Regressionstestfälle für einen Testdurchlauf sind bald veraltet.
- Die Strategie zum Testen neuer Funktionen muss formalisiert werden, und die vorläufigen Builds können der Qualitätssicherung zur Verfügung gestellt werden, die wiederum Testskripte erstellt und diese Automatisierungstests für die vorläufigen Builds ausführt, bis der Code stabil genug ist, um in der Produktionsumgebung bereitgestellt zu werden .
- Alle zum Testen erforderlichen Umgebungen müssen standardisiert und die Bereitstellungen automatisiert werden.
- Mithilfe verschiedener Automatisierungstechniken sollte die Qualitätssicherung in der Lage sein, Automatisierungstestläufe in verschiedenen plattformübergreifenden (und bei Webanwendungen browserübergreifenden) Umgebungen auszulösen.
- Die parallele Ausführung von Tests trägt zur Verkürzung der Lebensdauer bei, was wiederum der Kern einer erfolgreichen DevOps-Implementierung ist.
- Für jeden Lauf müssen Ausstiegskriterien festgelegt werden, damit bei der Rückmeldung der Testergebnisse an die Kette eine Go / No-Go-Entscheidung für die Produktion getroffen wird.
- Gefundene Blocker- oder kritische Fehler müssen gemeldet und behoben und durch dieselbe Ereigniskette geleitet werden, bevor der Code in der Produktionsumgebung bereitgestellt wird.
Anwendungsüberwachung
Die Qualitätssicherung sollte auch in der Lage sein, Probleme frühzeitig zu erkennen und proaktiv zu melden. Um dies zu erreichen, müssen sie eine Überwachung in der Produktionsumgebung einrichten, um Fehler aufdecken zu können, bevor sie einen Fehler verursachen.
Das Einrichten spezialisierter Leistungsindikatoren wie Antwortzeiten, Speicher- und CPU-Auslastung usw. kann einen umfassenden Einblick in die Endbenutzererfahrung bieten.
Zum Beispiel Wenn die durchschnittliche Antwortzeit für die Anmeldung in den verschiedenen Builds allmählich zunimmt, sollte die Qualitätssicherung dieses Problem proaktiv melden, um den Anmeldecode zu optimieren. Andernfalls können zukünftige Builds aufgrund hoher Antwortzeiten zu Frustrationen beim Endbenutzer führen.
QA kann auch eine kleine Teilmenge vorhandener Testfälle mit hoher Priorität verwenden, die regelmäßig in der Produktion ausgeführt werden, um die Umgebung aktiv zu überwachen. Fehler wie 'Dieser Fehler tritt manchmal auf' oder ' Kann nicht reproduzieren “Kann durch diese Strategie erfasst werden, die letztendlich die Anwendung stabiler macht und auch die Endbenutzer zufriedener macht.
Auch diese Monitore müssen so konfiguriert werden, dass sie automatisch mit umfangreichen Berichten (wie Protokollen und Screenshots von Fehlern usw.) ausgeführt werden.
Welche der folgenden Aussagen trifft auf einen Integrationstest zu?
Fazit
Der Wasserfall machte dem V-Modell Platz, das wiederum durch Agile als bevorzugte Wahl für die Softwareentwicklung ersetzt wurde.
DevOps ist die Zukunft. Es ist ein kontinuierlicher Verbesserungszyklus, den Softwareentwicklungsmodelle von Zeit zu Zeit durchlaufen. Sie müssen es annehmen, verstehen und einprägen.
Sie müssen die verschiedenen Automatisierungs- und kontinuierlichen Integrationstools beherrschen, damit Ihre Automatisierungsbemühungen einen Mehrwert für die Kette bieten und schlank genug sind, um sich schnell an Änderungen anzupassen. Möglicherweise arbeiten Sie an Projekten, die möglicherweise Folgendes beinhalten Alpha , Beta und UAT Umgebungen vor der Bereitstellung in der Produktionsumgebung.
Das Konzept bleibt im Wesentlichen gleich. Automatisierung und mehr Automatisierung ist der Kern eines erfolgreichen DevOps-Zyklus. Als Qualitätssicherung sollten Sie jedoch auch in der Lage sein, eine Grenze zu ziehen, wie viel Automatisierung zu viel Automatisierung ist.
Über den Autor: Aniket Deshpande arbeitet als QA Manager bei AFour Technologies , Pune und arbeitet seit mehr als 9 Jahren im Bereich Softwaretests in verschiedenen Bereichen und Plattformen. Er ist begeistert von DevOps und arbeitet als Berater, um Organisationen bei der Einführung von DevOps-Teststrategien zu unterstützen.
Wenn Sie mehr wissen möchten oder DevOps und den damit verbundenen Testansatz in Ihrem Unternehmen implementieren möchten, wenden Sie sich bitte an Kontakt der Autor.
Was denkst du über DevOps Testing? Denken Sie, dass es dem Projekt zugute kommen kann, wenn Entwickler und Betriebsmitarbeiter zusammenarbeiten?
Teilen Sie uns Ihre Kommentare / Vorschläge zu diesem Artikel mit.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Kontinuierliches Testen in DevOps
- DevOps Tutorial: Der ultimative Leitfaden für DevOps (25+ Tutorials)
- DevOps entmystifizieren: Video-Tutorial (Teil 1)
- Top 10 Tools für kontinuierliche Tests zum Testen von DevOps (Liste 2021)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Was ist Softwaretest? Über 100 kostenlose Tutorials zum manuellen Testen
- Funktionstests gegen nichtfunktionale Tests
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)