continuous testing devops
Was ist Continuous Testing und Continuous Testing Pipeline in DevOps?
Ich hoffe, euch hat das letzte Tutorial gefallen Kontinuierliche Bereitstellung in DevOps .
Wir wissen, wie wichtig das Testen bei jeder Softwarebereitstellung ist, und DevOps ist ein kurzer Lieferzyklus. Es ist unmöglich, alle entworfenen Testfälle jedes Mal manuell auszuführen, wenn eine einzelne Codezeile im Versionskontrolltool aktualisiert wird und dort fortlaufend In DevOps kommen Tests und automatisierte Pipeline für kontinuierliche Tests ins Spiel.
Empfohlene Lektüre => DevOps Training Tutorial von Grund auf neu
Vorteile der CT:
-
- Qualität und Geschwindigkeit sind die enormen Vorteile der CT.
- Schnelleres und schnelleres Feedback zum Code.
- Steigert das Vertrauen des Teams und ermutigt es, sich kontinuierlich zu verbessern.
VIDEO Teil 3 Block 4: Kontinuierliches Testen- 14 Minuten 39 Sekunden
Transkript:
Was ist der Benutzername und das Passwort für meinen Router
In diesem Block lernen wir etwas darüber Kontinuierliche Tests und kontinuierliche Testpipeline im Detail.
Kontinuierliches Testen ist neben der kontinuierlichen Integration ein weiterer wichtiger Prozess der Pipeline für die kontinuierliche Bereitstellung. verschiedene Testphasen wobei die automatisierten Tests zusammen mit den automatisierten Qualitätstoren dazwischen ausgeführt werden.
Kontinuierliches Testen bedeutet daher, dass automatisierte Tests kontinuierlich und wiederholt gegen die Codebasis und die verschiedenen Bereitstellungsumgebungen ausgeführt werden.
Hauptsächlich sind Komponententests, statische Code-Analyse, Sicherheitscode-Analyse, Integrationstests, Last- und Leistungstests Teil eines kontinuierlichen Tests, der in einer automatisierten Pipeline für kontinuierliche Tests ausgeführt wird.
Da kontinuierliche Integration und kontinuierliche Bereitstellung als CI, CD bezeichnet werden, werden kontinuierliche Tests häufiger als CT bezeichnet.
Wenn Sie dieses Diagramm sehen, bei dem es sich um eine Pipeline für die kontinuierliche Bereitstellung handelt, enthält diese Pipeline zwei Pipelines. Eine ist eine Build-Pipeline, bei der es sich um eine CI-Pipeline oder eine Pipeline für die kontinuierliche Integration handelt, die aus automatisiertem Build-Trigger, Kompilieren, Erstellen und Bereitstellen besteht.
Die andere ist eine Testpipeline, bei der es sich um eine kontinuierliche Testpipeline handelt
Lassen Sie uns nun mehr über kontinuierliche Tests erfahren.
Wir wissen, wie wichtig es ist, zu testen, jede Codezeile zu testen ... jedes Mal zu testen ... und in verschiedenen Phasen zu testen, und es ist fast unmöglich, alle entworfenen Tests jedes Mal manuell auszuführen, wenn eine Codezeile in die Versionskontrolle aktualisiert wird.
Hier kommt das kontinuierliche Testen ins Spiel.
Solange der Code, der in die automatisierte, kontinuierlich integrierte Pipeline gelangt, nicht gründlich getestet wird und die erforderliche Qualität sicherstellt, kann die Software nicht an die Kunden weitergegeben werden. Ich meine, Qualität kann nur gewährleistet werden, wenn der Code gründlich getestet wurde.
Kontinuierliches Testen, wie zuvor definiert, besteht also darin, verschiedene Arten von Tests kontinuierlich auf der Codebasis und in verschiedenen Umgebungen auszuführen, in denen es bereitgestellt wird, wie in der Pipeline für die kontinuierliche Bereitstellung vordefiniert und entworfen.
Wie Sie auf dem Bild sehen, finden Unit-Tests auf dem CI-Server selbst statt, bei dem jede Einheit des Systems isoliert getestet wird.
Integrationstests finden in einer Integrationsumgebung statt, in der die zusammen integrierten Komponenten überprüft werden. Systemtests in der Systemtestumgebung, in der das BIG-System mit allen integrierten Komponenten und Schnittstellen anhand von Szenarien auf Systemebene in einer Systemtestumgebung usw. getestet wird.
Und die Testtiefe nimmt häufig zu, wenn sich die Simulation der Umgebung der Produktion nähert.
Kontinuierliche Tests werden mit dem Fortschritt in Richtung Produktionsumgebung zunehmend schwieriger und länger, da wir langsam eine Reihe von Tests und komplizierteren Tests hinzufügen müssen, wenn der Code ausgereift ist und die Komplexität der Umgebung zunimmt.
Es ist nicht so, dass dieselben Testfälle durchgehend ausgeführt werden, die Testfälle müssen jedes Mal in verschiedenen Phasen aktualisiert werden und automatisierte Skripte werden aktualisiert, wenn der Code ausgereifter wird und eine höhere Umgebungsebene erreicht wird, in der auch Konfigurationen und Infrastrukturen vorhanden sind vorrücken, bis es in Produktion geht.
Selbst die Zeit, die zum Ausführen der Tests benötigt wird, nimmt mit fortschreitendem Testpunkt zu, da die Ausführung von Unit-Tests möglicherweise sehr viel weniger Zeit in Anspruch nimmt, während einige Integrationstests oder einige Systemtests oder Auslastungstests einige lange Stunden dauern oder dauern können noch ein paar Tage zu laufen.
Hier würde das kontinuierliche Testen hauptsächlich die automatisierten Testfälle automatisch mit einem Auslöser ausführen. Wie wir zuvor definiert haben, umfasst die kontinuierliche Lieferung auch bestimmte manuelle Tests und Tore, wobei bestimmte Tests manuell durchgeführt werden, bevor sie in die Produktion gehen.
Diese Gates von mittlerer Qualität in jeder Testphase erhöhen das Vertrauen in den Code.
Daher umfasst die Pipeline für kontinuierliche Tests als solche Unit-Tests sowie vorläufige automatisierte Sicherheitsüberprüfungen. Dann geht es in eine Testebene der Integration, in der automatisierte Integrationstests ausgeführt werden, und dann in eine Systemebene, in der Szenarien auf Systemebene automatisiert und ausgeführt werden.
Hier werden auch bestimmte Leistungstestszenarien durchgeführt.
Dann geht es weiter zum 'Abnahmetest', der im Wesentlichen die automatisierten Site Acceptance Testfälle umfasst, und schließlich zum 'User Acceptance Testing', der eine manuelle Ausführung sein kann und die Teilnahme des Endbenutzers zur Durchführung der Tests beinhaltet Eine Art endgültige Freigabe für das Produkt oder eine Funktion, bei der das manuelle Gate aufgerufen und schließlich am Produktionsstandort bereitgestellt wird.
Im Grunde genommen nimmt die Komplexität der Tests und der Testumgebung mit fortschreitendem kontinuierlichem Testen zu und gelangt in die Umgebung, die näher an der Produktion liegt, wie eine Simulation.
Ich muss nicht ausdrücklich erwähnen, dass alle diese Testphasen Build-Verifikationstests, Sanity-Tests, Rauchtests und Regressionstests umfassen. Wie ich bereits sagte, hängt dies davon ab, was wir in der Pipeline für kontinuierliche Tests und Lieferungen entwerfen.
Dies ist die typische Pipeline für kontinuierliche Tests. Sie kann vom Team basierend auf dem Produkttyp und den verschiedenen Teststufen und Testarten, die das Produkt erfordert, entworfen werden.
dvd ripper für windows 10 kostenloser download
Kontinuierliches Testen erfordert die Integration des Automatisierungsframeworks in das Versionskontroll- und CI-Tool und die verschiedenen automatisierten Tools, um die funktionalen und nicht funktionalen Tests in verschiedenen Testphasen durchzuführen, z.
- Sonar für statische Code-Analyse,
- Verstärken für sichere Code-Analyse,
- Selen für Funktionstests,
- Lastläufer für Lasttests usw.,
Microsoft TFS, Jenkins, Chef, Puppet sind nur wenige Tools, die auf dem Markt verfügbar sind, um die CI-CD-Pipeline zu entwerfen.
Die Sache ist jedoch, dass diese Tools je nach verwendetem Versionskontrolltool möglicherweise nicht die vollständige End-to-End-Automatisierung unterstützen. Daher bevorzugen möglicherweise nur wenige Unternehmen die Entwicklung eigener Automatisierungsframeworks, die die End-to-End-Automatisierung der Bereitstellungspipeline aus Code ermöglichen verpflichten sich zur Codezustellung.
Kontinuierliche Tests sind daher ein sehr wichtiger Bestandteil der Tests, um die Qualität des Produkts oder der Freigabe sicherzustellen, und man sollte bei der Auswahl eines Werkzeugs, eines Frameworks usw., das in erster Linie die Qualität und Geschwindigkeit der Lieferung bestimmt, sehr vorsichtig sein.
Das Einrichten der richtigen Pipeline für kontinuierliche Tests dauert in der Pipeline für kontinuierliche Lieferungen etwas länger. Nicht nur im Tool- und Framework-Teil, sondern auch im Testfall-Teil. Zu den kontinuierlichen Tests gehört auch das Definieren der Bereitstellungspipeline.
Da CT die automatisierte Bereitstellung des Builds in verschiedenen Umgebungen in verschiedenen Phasen erfordert, müssen die Bereitstellung automatisiert und die Umgebungen über automatisierte Skripts eingerichtet werden.
Diese automatisierten Skripts, die das Einrichten von Infrastruktur- und Umgebungskonfigurationen als Code umfassen, werden in das Versionskontrolltool eingecheckt, und die Delivery-Pipeline übernimmt sie vom Versionskontrolltool, um die Bereitstellung durchzuführen. Dies wird als Bereitstellungspipeline bezeichnet.
Kommen wir nun zu den Vorteilen der CT:
Das Erreichen von Qualität und Geschwindigkeit ist der größte Vorteil kontinuierlicher Tests.
Anders als früher, wo Tests nur am Ende stattfanden, ist Test durchgehend das Konzept des kontinuierlichen Testens und damit des kontinuierlichen Testens in einer Lieferpipeline, das es dem Team ermöglicht, Qualitätstore überall und in beliebig vielen Qualitätstoren nacheinander einzuführen um den Qualitätsgrad zu erreichen, den sie benötigen.
Wenn der Code zum Testen an einem bestimmten Punkt oder Gate in einer Pipeline überhaupt fehlschlägt, kann das Team zurückgehen und die gesamte Bereitstellung bis zu diesem Punkt automatisch fehlschlagen.
Dies gibt sowohl dem Dev- als auch dem Ops-Team einen klaren Hinweis darauf, dass dort etwas fehlt und das Team daran arbeiten kann, es zu beheben. Dies ist also der Vorteil und die Flexibilität einer kontinuierlichen Testpipeline.
Die Einführung von Qualitätsgattern in verschiedenen Testphasen regelt also die Qualität des Codes in der Pipeline besser.
Je mehr Tore der Code durchläuft, desto mehr Vertrauen hat das Team in den Code, der es mit einem höheren Qualitätsniveau in die Produktion schafft.
Kontinuierliche Tests stärken das Vertrauen des Teams und ermutigen es, sich kontinuierlich zu verbessern.
Wenn das Team einen der Testfehler in einer Testphase oder in einem Qualitätsfenster in der Pipeline nicht wirklich vernachlässigt, ist ein kontinuierliches Testen auf jeden Fall ein Bonus für das Erreichen qualitativ hochwertiger Ziele.
Um auf kontinuierliche Tests zu schließen, sind von den Unit-Tests, die in der Vorphase durchgeführt werden, über die Abnahmetests bis hin zu Leistungstests und sogar bestimmten manuellen Tests, die durchgeführt werden sollen, SEHR SEHR wichtig für die Definition kontinuierlicher Tests in der DevOps-Pipeline.
Damit ist unsere Diskussion zu Teil 3-Themen wie kontinuierliche Integration, kontinuierliche Bereitstellung und kontinuierliches Testen abgeschlossen.
In unserem nächsten Tutorial werden wir mehr darüber diskutieren Konfigurationsmanagement, Release-Management und Überwachung der Anwendungsleistung.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Kontinuierliche Bereitstellung in DevOps
- Kontinuierliche Lieferung in DevOps
- Top 10 Tools für kontinuierliche Tests zum Testen von DevOps (Liste 2021)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- DevOps-Test-Tutorial: Wie wirkt sich DevOps auf QS-Tests aus?
- Zusammenfassung der DevOps-Video-Tutorials
- Kontinuierliche Integration in DevOps
- Testen von Primer eBook Download