Parasoft-Logo Suche

Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »

Parasoft-Blog

Implementierung der Qualitätssicherung in einer CI / CD-Pipeline

By Daniel Garay 14. April 2021 9 min gelesen
14. April 2021 | 9 min gelesen
By Daniel Garay
Mann im Anzug, der die Hände ausstreckt, um eine virtuelle neonblaue kontinuierliche Testschleife zu "halten".

Die Bedeutung der Integration von CI/CD zur Qualitätssicherung in der Softwareentwicklung ist unbestritten. Hier ist eine Diskussion über die Verwendung von Automatisierungstools zur Implementierung von QA in einer CI/CD-Pipeline.

Die CI/CD-Pipeline hat sich in den letzten Jahren bei vielen Unternehmen etabliert, um die Softwareentwicklung zu optimieren. Moderne Workflows sollen schließlich die Arbeit erleichtern und Unternehmen effizienter machen. Beim Testen in DevOps- Umgebungen sind Produktivität und Genauigkeit gleichermaßen entscheidend. Daher spielt die Automatisierung von Bereitstellungsprozessen in vielen Softwareentwicklungsmodellen eine so wichtige Rolle.

Wie bei allem, was Test-Builds und -Revisionen umfasst, erfordern CI/CD-Pipelines jedoch die Implementierung robuster QA-Testpraktiken. Diese automatisierten Testmethoden verbessern bestehende manuelle Testprozesse, indem sie den erforderlichen Zeit- und Arbeitsaufwand reduzieren. Das frühzeitige Erkennen von Problemen und das Sicherstellen, dass eine Fehlerbehebung vorhanden ist, wird den Prozess nur weiter optimieren.

Kontinuierliches Testen für DevOps: Weiterentwicklung über die Automatisierung hinaus
Jetzt das Whitepaper herunterladen

Doch worauf kommt es bei Continuous Integration und Continuous Delivery (bzw. Deployment) an? Gibt es spezifische CI/CD-Tools, die jedes Unternehmen benötigt, oder nur spezielle, die auf bestimmte Anwendungsfälle zugeschnitten sind?

Infografik mit CI / CD-Pipline, die einen großen Monitor mit Code und 3 (wörtlichen) Fehlern zeigt. Frau im Vordergrund mit Laptop-Test. Zwei Männer auf jeder Seite des Monitors halten Werkzeuge.

Was macht eine CI/CD-Pipeline?

Eine CI / CD-Pipeline automatisiert einfach die Bereitstellung von Software. In der Pipeline wird Code erstellt und Tests werden über eine kontinuierliche Integration ausgeführt. Anschließend stellt der automatisierte Prozess die aktualisierte Version des Codes bereit.

Was bedeutet kontinuierliche Integration?

Die kontinuierliche Integration kombiniert die Arbeit mehrerer Entwickler während eines Arbeitstages oder Zyklus zu einer gemeinsamen Hauptlinie. Dies hilft, Integrationskonflikte zu vermeiden, da sich die Update-Zweige nie zu weit von der Hauptcodebasis entwickeln.

Automatisierte Tests finden normalerweise an diesem Punkt im Workflow statt. Dies sorgt für eine verbesserte wirtschaftliche Leistung und verbessert die Früherkennung von Fehlern.

Was bedeutet kontinuierliche Lieferung?

Der Ansatz der kontinuierlichen Bereitstellung erfordert, dass Entwicklungsteams Code in kürzeren Zyklen bearbeiten. Der Code kann dann nicht nur jederzeit aktualisiert werden, sondern ermöglicht auch einen optimierten Workflow zum Erstellen, Testen und Freigeben. Dies reduziert auch die Gesamtkosten und -risiken, die mit Entwicklungsprojekten verbunden sind.

Von Fehlerkorrekturen bis hin zu Feature-Updates macht die kontinuierliche Bereitstellung das Freigeben von Änderungen für die Produktionsphase der Entwicklung viel weniger unangenehm.

Warum Sie in Softwaretestautomatisierung investieren sollten
Jetzt auf Abruf ansehen

Was ist der Unterschied zwischen kontinuierlicher Bereitstellung und kontinuierlicher Bereitstellung?

Diese beiden Aspekte der Pipeline erfolgen nach der kontinuierlichen Integration, die einen stärkeren Fokus auf Tests legt. Kontinuierliche Bereitstellung hingegen überträgt Codeänderungen automatisch in eine Entwicklungsumgebung. Dadurch werden automatisierte Tests mit automatisierten Releases kombiniert, was die Analyse, Fehlerbehebung und Aktualisierung deutlich vereinfacht.

Die kontinuierliche Bereitstellung ist ein ähnlicher Prozess wie die kontinuierliche Bereitstellung, arbeitet jedoch mit der Produktionsumgebung anstelle einer Testumgebung. Diese Phase in der Pipeline basiert auf automatisierten Bereitstellungen, ohne dass ein menschliches Eingreifen erforderlich ist. Alle genehmigten Änderungen am Code werden sofort in die Produktion übernommen.

Beide Prozesse liefern etwas, das jeder für die geplante Wartung benötigt: Vorhersehbarkeit.

Was ist der CI/CD-Prozess?

Der Prozess, durch den sowohl die kontinuierliche Integration als auch die kontinuierliche Bereitstellung erfolgen, ist ein mehrstufiger Workflow mit wenigen Elementen. Wie bereits erwähnt, wird die Hauptleitung mehrmals täglich mit verschiedenen Aktualisierungen für mehrere Entwickler oder Teams aktualisiert.

Endlosschleife in Form einer seitlichen "8". Verbundener, kontinuierlicher Teil: Planen, überwachen, betreiben, bereitstellen, freigeben, testen, erstellen, Code zurück zum Planen.

Die einfachste Aufschlüsselung umfasst jedoch fünf Hauptkategorien: Erstellen, Testen, Freigeben, Bereitstellen und Validieren. Während diese Aufgaben mit bestimmten Tools erledigt werden können, können sie auch von automatisierten Tool-Suites oder nur einem Service erledigt werden.

Elemente einer CI / CD-Pipeline

Jede der fünf CI / CD-Pipelinekategorien hat ihre eigenen Unteraufgaben.

  1. Ändern
  2. Build starten
  3. Bauen
  4. Bestimmen Sie die Build-Ergebnisse
  5. Automatisiertes Testen
  6. Testergebnisse ermitteln
  7. In Staging-Umgebung bereitstellen
  8. QS-Tests
  9. In der Produktion bereitstellen
  10. Bestätigen

Natürlich variieren diese Prozesse von Team zu Team und von Unternehmen zu Unternehmen.

Wer braucht eine CI / CD-Pipeline?

DevOps und Softwareentwicklungsteams mit mehreren Silos oder Einheiten profitieren am meisten von CI / CD-Pipelines. Der Workflow hilft dabei, die Versionsunterschiede zu überbrücken und ineffiziente Informationen zu Änderungen zu vermeiden. Die automatisierten Prozesse helfen auch dabei, Fehler zu beseitigen, schnelle Iterationen zu erstellen und Entwicklern sogar standardisierte Rückkopplungsschleifen zu geben.

Vom automatisierten zum kontinuierlichen Testen für DevOps
Mehr erfahren

Unabhängig davon, ob Ihr Unternehmen an Krankenhausdatenbanken, Software as a Service (SaaS) -Produkten oder sicherheitskritischen Anwendungen arbeitet, können CI / CD-Pipelines Ihre Workflow-Effizienz und Produktgenauigkeit verbessern. Es erfordert jedoch die richtigen QS-Prozesse, um am effektivsten zu sein.

Darüber hinaus muss jeder in IT-Führungspositionen die Implementierung der CI / CD-Pipeline vollständig verstehen. Es ermöglicht Ihrem Unternehmen, mit Ihren Mitbewerbern Schritt zu halten, was, wie Branchenmitglieder wissen, eine unendliche Herausforderung darstellt.

Was ist eine CI/CD-Pipeline in Azure DevOps?

Azure DevOps Project ist ein großartiges Tool zur Vereinfachung der Einrichtung einer CI / CD-Pipeline durch Teams mithilfe von Azure DevOps. Verwenden Sie Ihren eigenen Code oder einen aus einer Beispielanwendung, um Anwendungen für Dienste wie die SQL-Datenbank, virtuelle Maschinen und mehr bereitzustellen.

Die Pipeline hilft dabei, Änderungen an GitHub festzuschreiben und sie dann automatisch in Azure bereitzustellen. Diese Art der zuverlässigen Automatisierung ist nur ein Merkmal einer effektiven CI / CD-Pipeline.

Reihe farbiger Kästchen mit Pfeilen, die den kontinuierlichen Prozess widerspiegeln: Versionskontrolle, Erstellen, Komponententest, Bereitstellen, automatischer Test, Bereitstellen für das Produkt, Messen und Validieren

CI / CD-Pipeline-Stufen und Workflow

Der wichtigste Aspekt des CI/CD-Pipeline-Workflows ist die Feedbackschleife, die er bereitstellt, um den reibungslosen Ablauf des „kontinuierlichen“ Teils sicherzustellen. Störungen in dieser Schleife führen zu Ineffizienzen und damit zu Verzögerungen bei Entwicklung und Bereitstellung.

Der wesentliche Arbeitsablauf hängt jedoch vom Aspekt des automatisierten Testens ab. Die Versionskontrolle führt alle Änderungen im Haupt-Repository zusammen. Nach der Bereitstellung in der Testumgebung beginnt das automatisierte Testen. In der letzten Phase der kontinuierlichen Bereitstellung ist dies der letzte Moment, in dem Produktionsfeedback stattfinden kann.

Danach können Validierung und Messung beginnen.

Was macht eine gute CI / CD-Pipeline aus?

Eine gute CI / CD-Pipeline benötigt vier Dinge, um der Organisation signifikante Vorteile zu bieten:

  • Zuverlässigkeit
  • Kompatibilität
  • Schnelligkeit
  • Automation

Die Gesamtstrategie besteht darin, „mit weniger mehr zu erreichen“ und gleichzeitig die Ausgabegenauigkeit und Effizienz zu steigern. Automatisierung spielt eine Schlüsselrolle bei der Ermöglichung der anderen drei Aspekte erfolgreicher kontinuierlicher Integrations- und Bereitstellungspipelines.

Zusätzliche Vorteile von Pipelines

Neben den offensichtlichen Vorteilen von Zuverlässigkeit, Automatisierung und höherer Geschwindigkeit bieten CI / CD-Pipelines viele weitere Vorteile. Teams können ihre verbesserten Release-Zyklen nutzen, um ihre Workflows zur Fehlerbehebung zu verfeinern. Sie können die verbesserte Codequalität nutzen, um bei neuen Initiativen zusammenzuarbeiten oder aktuelle Projekte neu zu bewerten.

Kurz gesagt, CI / CD-Pipelines bieten:

  • Rückstandsreduzierung
  • Bessere Testzuverlässigkeit
  • Weniger Änderungen
  • Reduzierte Überprüfungszeit
  • Verbesserte Fehlererkennung
  • Fehleranalyse
  • Klare Kommunikation
  • Kostenreduktion
  • Erhöhte Kundenzufriedenheit
  • Schnellere mittlere Zeit bis zur Auflösung (MTTR)
  • Verbesserungen der Benutzerfreundlichkeit durch Feedback der Endbenutzer

Die Liste geht wirklich weiter! Die Implementierung der Qualitätssicherung in CI / CD-Pipelines ist der letzte Schritt bei der Erstellung eines Systems, das für Ihre DevOps-Teams in kürzester Zeit die maximale Anzahl von Vorteilen bietet.

CI / CD-Tools

Es gibt viele CI- und CD-Tools auf dem Markt, aber nicht alle werden für jedes Unternehmen oder Team benötigt. Parasoft arbeitet mit den führenden Anbietern zusammen, um die CI / CD-Integration über Tools hinweg sicherzustellen, z.

Es gibt viel über unseren ständig wachsenden Katalog an Tool-Integrationen zu erfahren, wobei GitHub die neueste Ergänzung ist.

Zwei Roboterarme, die ein buntes Puzzle bilden.

Herausforderungen bei der Implementierung der CI / CD-Pipeline

Diese automatisierten Pipelines bieten Softwareteams eine höhere Zuverlässigkeit, Geschwindigkeit, Kommunikation und mehr. Trotz der vielen Vorteile der kontinuierlichen Integration und der kontinuierlichen Bereitstellung ist jedes System nicht ohne Fallstricke.

Stellen Sie sich Ihre CI / CD-Pipeline wie einen Carbonrahmen vor. Es ist leichter, lässt Sie schneller fahren und verbessert nur die Leistung insgesamt. Aber wenn es seinen Bruchpunkt erreicht, erfordert es sofortige Aufmerksamkeit. Im Gegensatz zu Kohlefaser müssen CI / CD-Pipelines jedoch nicht vollständig ausgetauscht werden, wenn Teams auf Probleme stoßen.

Sie müssen sich nur ein paar wichtige Dinge merken, um die Gesundheit ihrer Systeme zu erhalten.

Häufige Probleme mit der CI / CD-Pipeline

Eines der häufigsten Probleme bei CI/CD-Pipelines betrifft UI-Tests mit Selenium . CI/CD kann Probleme mit Selenium-Tests, wie z. B. falsch negative Ergebnisse bei Regressionstests und Fehlern, verschärfen.

Parasoft ging dieses Problem mit Parasoft Selenic direkt an – einem Tool, das die Analyse und Behebung von Selenium-spezifischen Testproblemen automatisiert. Das Tool verlagert die Arbeitslast lediglich auf das CI-System, sodass die Entwickler die Probleme nicht mehr manuell aufspüren müssen (sofern überhaupt welche vorhanden sind).

Andere häufige Probleme sind:

  • Instabile CI / CD-Pipelines
  • Kontinuierliche Lieferung mit kontinuierlicher Bereitstellung in Einklang bringen
  • Keine Priorisierung der richtigen Prozesse für die Automatisierung
  • Keine umsetzbaren Metriken und Dashboards
  • Ressourcenmanagement in Bezug auf die Häufigkeit von CI-Jobs
  • CI- und CD-Koordination
  • Verwendung der falschen Werkzeuge für die falschen Jobs

Obwohl dies keine vollständige Liste ist, sind dies die häufigsten Probleme mit der CI / CD-Pipeline. Wie es die Art der Softwareentwicklung ist, kann ein Team jedoch auf einzigartige Probleme stoßen, die innovative Lösungen erfordern.

Integration der Testautomatisierung in CI / CD-Pipelines

Manuelles Testen ist keinesfalls überflüssig, aber automatisiertes Testen muss unbedingt in Ihre CI/CD-Pipeline integriert werden. Teams, die ihre Agilität verbessern wollen, müssen flexibler werden, und der erste Schritt dazu ist die Testautomatisierung.

Es muss außerdem darauf hingewiesen werden, dass die Automatisierung einer CI/CD-Pipeline und die Integration von Testautomatisierung zwei unterschiedliche Dinge sind. Schließlich ist das Testen nur ein Teil des Pipeline-Prozesses. Die Automatisierung der gesamten Pipeline ist eine völlig andere Aufgabe.

Welche Rolle spielt die Testautomatisierung in einer CI / CD-Pipeline?

Softwareentwickler sind mit der Automatisierung funktionaler Tests bestens vertraut. Durch deren Einsatz können Entwickler neue Elemente oder Funktionen schnell implementieren. Funktionen wie Parasofts Smart Test Execution gewährleisten, dass jede Kategorie abgedeckt ist – mit schnellerem Ergebniszugriff, optimierten automatisierten Tests, kontinuierlichem Testen und vielem mehr.

Automatisierung beschränkt sich jedoch nicht allein auf Funktionstests. Leistungstests sind heute ein integraler Bestandteil der kontinuierlichen Anwendungsbereitstellung. Das Hinzufügen spezifischer Leistungstests zu Tools wie Jenkins ist nur eine Möglichkeit für Teams, ihre CI/CD-Pipelines zu verbessern. Diese Tests werden regelmäßig ausgeführt, um Fehler besser und früher zu erkennen und die Kompatibilität der Builds zu überprüfen.

Last- und Leistungstests in einer DevOps Delivery-Pipeline
Lesen Sie den Blog

Die Erfassung der Analyse der Leistungstestergebnisse kann zur weiteren Agilität ebenfalls automatisiert werden. Parasoft Load Test bietet wichtige Erkenntnisse, um Ihre Prozesse weiter zu verbessern.

Lupe über einem Monitor mit Quellcode-Skript, um Fehler zu finden. Softwaretest.

Wie integriere ich Tests in meine CI / CD-Pipeline? Und warum sollte ich?

Die Integration automatisierter Tests in ein System ist ein wesentlicher Bestandteil jedes Pipeline-Workflows.

Die Verkürzung einer Rückkopplungsschleife ist jedoch einer der nicht ganz geheimen Tipps zur Erstellung einer effektiven CI / CD-Pipeline. Je kürzer die Wartezeit der Entwickler auf die Testergebnisse ist, desto mehr Zeit müssen sie zur Behebung von Fehlerbehebungen und zur Durchführung von Codeänderungen aufwenden.

Automatisierte Tests ermöglichen Skalierbarkeit – ein unverzichtbarer Bestandteil der Softwareentwicklung für Unternehmen, die expandieren oder wachsen wollen. Tatsächlich gibt es keinen Grund, automatisierte Tests nicht in eine CI/CD-Pipeline zu integrieren.

Welche Arten von Tests können Sie mit CI / CD automatisieren?

Die Rolle des automatisierten Testens in CI / CD-Pipelines ist so flexibel wie die Pipelines selbst. Darüber hinaus ist das manuelle Testen bei weitem nicht so agil wie das automatisierte Testen. Mithilfe der CI / CD-Automatisierung können Teams eine größere Anzahl von Tests einfacher bewältigen.

Unternehmen können beispielsweise die folgenden Arten von Tests durchführen:

  • API-Tests
  • Lastprüfung
  • UI-Tests
  • Regressionstests
  • Unit- und Komponententests
  • Funktionsprüfung
  • Nicht funktionierende Prüfung
  • Browserübergreifende Tests

Viele Tests können und sollten auch parallel laufen, um die Effizienz zu steigern. Von der Versionskontrolle über Regressionstests bis hin zur Service-Virtualisierung sind Continuous-Integration- und Continuous-Delivery-Systeme der beste Weg, um Ihre Entwicklungsteams besser zu machen.

Entwickler, die sich auf Elemente und Verhalten der Benutzeroberfläche konzentrieren, können auch browserübergreifende Tests nutzen, wie es sich anhört: Testen einer Website über verschiedene Browser hinweg, um Anomalien der Benutzeroberfläche zu identifizieren. Tools wie Parasoft Selenic - ein auf KI und maschinellem Lernen basierendes UI-Testtool - zielen darauf ab, diesen Aspekt des automatisierten Testens zu verbessern.

Whitepaper: On-Demand-Testumgebungen für Entwicklung und QA
Jetzt kostenlos herunterladen

Es ist jedoch wichtig, über das Testen der Benutzeroberfläche hinauszugehen, um Ihre Softwarequalitätsziele zu erreichen. Die intelligente Testgenerierung verwendet KI, um UI-Tests zu nutzen, um automatisch andere funktionale und nichtfunktionale Tests zu erstellen. Unsere Parasoft Jtest- und SOAtest-Tools ergänzen auch bestehende Best Practices für Komponententests und API-Tests.

Automatisierung. QA. Automatisierungsplakat und -konzept. Infografik mit Puzzleteil- und Radsymbolen. Diagramm mit den Schlüsselwörtern Innovation, Zuverlässigkeit, Digital, Prozess, Verbesserung, Produktivität.

Warum QS-Tests in einer CI / CD-Pipeline wichtig sind

Zuverlässige QS-Pipelines hängen von den dahinter stehenden automatisierten Systemen ab. Diese ermöglichen eine stabile Integration und regelmäßige Bereitstellung. Die Vereinfachung dieser Aspekte ist jedoch entscheidend, um so viel Wert wie möglich aus Ihrer CI / CD-Pipeline herauszuholen.

So implementieren Sie QA-Tests in CI/CD-Pipelines

Das Implementieren einer CI / CD-Pipeline mit QS muss kein langwieriger Kopfschmerz sein. Tatsächlich kann es allein auf einige Schlüsselaspekte reduziert werden:

  1. Wählen Sie die richtigen CI / CD-Tools für Ihre Projekte.
  2. Dokumentieren Sie Ihre CI / CD-Pipeline-Elemente.
  3. Nutzen Sie einen effektiven Testworkflow mit Testautomatisierungstools.
  4. Identifizieren Sie, welche Prozesse automatisiert werden KÖNNEN und SOLLTEN.
  5. Identifizieren Sie Schwachstellen, die zu Abstürzen führen, und aktualisieren Sie Prozesse.
  6. Förderung der Zusammenarbeit zwischen Entwicklern und Testern.

Pipelines arbeiten für kleine Projekte, mittelständische Unternehmen und in großem Maßstab. Es ist lediglich ein pragmatischer Ansatz für die Implementierung erforderlich, um eine verbesserte Leistung, Effizienz, ROIs und geringere Kosten zu erzielen.

Verbessern Sie Ihr DevOps-Team, indem Sie eine CI / CD-Pipeline mit Qualitätssicherung implementieren

Bei Parasoft leben wir nach dem Motto „Früh testen – kontinuierlich testen“. Gepaart mit automatisierter Compliance und dem Einsatz von KI sollen unsere Tools das Leben menschlicher Entwickler und Tester ein wenig einfacher machen. Die Implementierung einer CI/CD-Pipeline mit Qualitätssicherung ist nur ein weiterer Weg, dieses Ziel zu erreichen.

Machen Sie sich auf den Weg zu schnelleren Tests, genauerem Code und zuverlässigeren Workflows durch kontinuierliches Testen.
Beratungsgespräch buchen

Weiterführende Inhalte