Kontinuierliches Testen
Kontinuierliches Testen in DevOps ist ein Softwaretesttyp, bei dem die Software in jeder Phase des Lebenszyklus der Softwareentwicklung getestet wird. Das Ziel des kontinuierlichen Testens besteht darin, die Qualität der Software in jedem Schritt des kontinuierlichen Lieferprozesses zu bewerten, indem frühzeitig und häufig getestet wird.
Der kontinuierliche Testprozess in DevOps umfasst Stakeholder wie Entwickler, DevOps, Qualitätssicherung und Betriebssystem.
In diesem Tutorial lernen Sie
- Was ist kontinuierliches Testen?
- Wie unterscheidet sich das kontinuierliche Testen?
- Wie unterscheidet sich kontinuierliches Testen von Testautomatisierung?
- So führen Sie kontinuierliche Tests durch
- Kontinuierliche Testwerkzeuge
- Vorteile kontinuierlicher Tests
- Herausforderungen des kontinuierlichen Testens
Wie unterscheidet sich das kontinuierliche Testen?
Die alte Art zu testen war hand-zentriert. Die Software wurde von einem Team an ein anderes weitergegeben. Ein Projekt hätte bestimmte Entwicklungs- und QS-Phasen. QA-Teams wollten immer mehr Zeit, um die Qualität sicherzustellen. Ziel war es, dass die Qualität Vorrang vor dem Projektplan hat.
Das Unternehmen möchte jedoch eine schnellere Lieferung von Software an den Endbenutzer. Je neuer die Software ist, desto besser kann sie vermarktet werden und desto höher ist das Umsatzpotenzial des Unternehmens. Daher wurde eine neue Art des Testens entwickelt.
Kontinuierlich bedeutet ununterbrochene Tests, die kontinuierlich durchgeführt werden. In einem kontinuierlichen DevOps-Prozess wechselt eine Softwareänderung (Release Candidate) kontinuierlich von der Entwicklung über das Testen zur Bereitstellung.
Der Code wird kontinuierlich weiterentwickelt, bereitgestellt, getestet und bereitgestellt.
Wenn beispielsweise ein Entwickler den Code im Quellcode-Server überprüft, wie dies bei Jenkins der Fall ist, werden automatisierte Unit-Tests im kontinuierlichen Prozess ausgeführt. Wenn die Tests fehlschlagen, wird der Build abgelehnt und der Entwickler benachrichtigt. Wenn der Build den Test besteht, wird er für QA-Leistungsserver für umfassende Funktions- und Auslastungstests bereitgestellt. Die Tests werden parallel durchgeführt. Wenn die Tests erfolgreich sind, wird die Software in der Produktion bereitgestellt.
Kontinuierliches Testen ist ein kleines Zahnrad im kontinuierlichen Entwicklungs-, Integrations- und Bereitstellungszyklus.
Die Softwareentwicklung ist nicht mehr die gleiche wie in der Vergangenheit. Wir haben die Entwicklung von Monat auf Woche reduziert. Der aktuelle Teststapel (siehe Abbildung oben) ist für UI-Tests betitelt. Ziel ist es jedoch, immer mehr automatisierte Unit-Tests durchzuführen.
Wie unterscheidet sich kontinuierliches Testen von Testautomatisierung?
Testautomatisierung vs. kontinuierliches Testen
Parameter | Testautomatisierung | Kontinuierliches Testen |
---|---|---|
Definition | Testautomatisierung ist ein Prozess, bei dem Tools oder Software zur Automatisierung von Aufgaben verwendet werden. | Es handelt sich um eine Softwaretestmethode, die sich auf die Erzielung einer kontinuierlichen Qualität und Verbesserung konzentriert. |
Zweck | Eine Reihe ähnlicher oder sich wiederholender Aufgaben kann eine Maschine schneller und mit weniger Fehlern ausführen. | Der kontinuierliche Testprozess hilft, das Risiko zu finden, es anzugehen und die Qualität des Produkts zu verbessern. |
Voraussetzung | Automatisierung beim Testen ohne Integration kontinuierlicher Tests möglich. | Kontinuierliche Tests können ohne Testautomatisierung nicht implementiert werden. |
Zeit | Die Softwareversion kann einen Monat bis Jahre dauern. | Die Softwareversion kann wöchentlich bis stündlich veröffentlicht werden. |
Feedback | Regelmäßiges Feedback nach dem Testen jeder Version. | Das Feedback in jeder Phase muss sofort erfolgen. |
Geschichte | Automatisierte Tests werden seit Jahrzehnten durchgeführt, um den Testprozess zu beschleunigen. | Kontinuierliches Testen ist ein relativ neues Konzept. |
So führen Sie kontinuierliche Tests durch
- Verwenden von Tools zum Generieren einer Testautomatisierungssuite aus User Stories / Anforderungen
- Testumgebung erstellen.
- Kopieren und anonymisieren Sie Produktionsdaten, um ein Testdatenbett zu erstellen
- Verwenden Sie die Service-Virtualisierung, um die API zu testen
- Parallele Leistungstests
Kontinuierliche Testwerkzeuge
Hier ist eine kuratierte Liste der besten Tools für kontinuierliche Tests :
1) QuerySurge
QuerySurge ist die intelligente Datentestlösung, die die erste ihrer Art ist, die DevOps vollständig für kontinuierliche Datentests bereitstellt. Zu den Hauptfunktionen gehören die robuste API mit mehr als 60 Aufrufen, detaillierte Datenintelligenz und Datenanalyse, die nahtlose Integration in die DevOps-Pipeline für kontinuierliche Tests sowie die schnelle Überprüfung großer Datenmengen.
Starten Sie den Test kostenlos
2) Jenkins
Jenkins ist ein Continuous Integration Tool, das in Java geschrieben ist. Dieses Tool kann über die GUI-Oberfläche oder Konsolenbefehle konfiguriert werden.
Download-Link: https://jenkins.io/
3) Travis
Travis ist ein kontinuierliches Testtool, das auf dem GitHub gehostet wird. Es bietet gehostete und lokale Varianten. Es bietet eine Vielzahl verschiedener Sprachen und eine gute Dokumentation.
Download-Link: https://travis-ci.org/
4) Selen
Selen ist ein Open-Source-Tool zum Testen von Software. Es unterstützt alle führenden Browser wie Firefox, Chrome, IE und Safari. Selenium WebDriver wird verwendet, um das Testen von Webanwendungen zu automatisieren.
Download-Link: https://www.seleniumhq.org/
Vorteile kontinuierlicher Tests
- Beschleunigen Sie die Softwarebereitstellung
- Kontinuierliche Tests verbessern die Codequalität
- Es hilft bei der Beurteilung der genauen Abdeckung des Geschäftsrisikos.
- Es lässt sich nahtlos in den DevOps-Prozess integrieren
- Hilft bei der Erstellung eines agilen und zuverlässigen Prozesses in nur Stunden statt Monaten.
- Beschleunigt die Markteinführungszeit durch einen kontinuierlichen Feedback-Mechanismus.
- Fasst traditionell isolierte Teams zusammen, um den modernen Unternehmensanforderungen gerecht zu werden. Löst die Trennung zwischen Entwicklungs-, Test- und Betriebsteams auf.
- Testautomatisierung trägt zur Konsistenz bei, indem für alle relevanten Tests dieselbe Konfiguration beibehalten wird.
- Betont die Geschäftserwartungen, um Geschäftsrisiken zu mindern
- Bereitstellung eines allgegenwärtigen Zugriffs auf die Testumgebung mit Service Virtualization
Herausforderungen des kontinuierlichen Testens
- Der traditionelle Prozess begrenzt den kulturellen Wandel unter Entwicklungs- und Qualitätssicherungsfachleuten.
- Mangel an DevOps-Kenntnissen und richtigen Tools zum Testen in Agile & DevOps-Umgebungen.
- Heterogene Testumgebungen, die niemals die Produktionsumgebung widerspiegeln.
- Konventioneller Testprozess und lose definiertes Testdatenmanagement.
- Längere Code-Integrationszyklen führen zu Integrationsproblemen und späten Fehlerkorrekturen
- Unzureichende und ineffektive Ressourcen und Testumgebungen
- Komplexe Anwendungsarchitektur und Geschäftslogik, die die Einführung von DevOps einschränkt.
Fazit:
- In der Softwareentwicklung ist kontinuierliches Testen ein Prozess des frühen Testens, des häufigen Testens, des Testens überall und des Automatisierens.
- Die alte Art des Testens war eine Übergabezentrierung. Die Software wird von einem Team an ein anderes weitergegeben
- Jenkins, Travis und Selen sind beliebte Tools für kontinuierliche Tests und Integration.
- Kontinuierliche Tests liefern umsetzbares Feedback für jede Phase der Lieferpipeline.
- Kontinuierliche Tests tragen zur Verbesserung der Codequalität bei
- Der traditionelle Prozess begrenzt den kulturellen Wandel unter Entwicklungs- und Qualitätssicherungsfachleuten.
- Längere Code-Integrationszyklen führen zu Integrationsproblemen und späten Fehlerkorrekturen