Seien Sie am 30. April dabei: Vorstellung von Parasoft C/C++test CT für kontinuierliche Tests und Compliance-Exzellenz | Registrierung

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

Porträt von Daniel Garay, Direktor für Qualitätssicherung bei Parasoft
14. April 2021
9 min lesen

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 wurde in den letzten Jahren von vielen Unternehmen eingeführt, um ihre Softwareentwicklung zu rationalisieren. Denn moderne Workflows sind dazu da, das Leben aller einfacher und Unternehmen effizienter zu machen. Wann Testen in DevOps Umgebungen sind sowohl Produktivität als auch Genauigkeit von entscheidender Bedeutung. Aus diesem Grund ist die Bereitstellungsautomatisierung in vielen Modalitäten der Softwareentwicklung so stark ausgeprägt.

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

Aber was sind die „Fleisch und Kartoffeln“ von Pipelines mit kontinuierlicher Integration und kontinuierlicher Lieferung (oder Bereitstellung)? Gibt es spezielle CI / CD-Tools, die jedes Unternehmen benötigt, oder nur fokussierte, 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

Was ist der Unterschied zwischen kontinuierlicher Bereitstellung und kontinuierlicher Bereitstellung?

Diese beiden Aspekte der Pipeline treten beide nach einer kontinuierlichen Integration auf, bei der der Schwerpunkt stärker auf dem Testen liegt. Im Gegensatz dazu werden bei kontinuierlicher Bereitstellung Codeänderungen automatisch in eine Entwicklungsumgebung übertragen. Dies kombiniert automatisierte Tests mit automatisierten Releases, um die Analyse, Fehlerbehebung und Aktualisierung zu vereinfachen.

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. Change
  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

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 größte Aspekt des CI / CD-Pipeline-Workflows ist die Rückkopplungsschleife, die bereitgestellt wird, damit der „kontinuierliche“ Teil ordnungsgemäß funktioniert. Jegliche Unterbrechungen in der Schleife verursachen Ineffizienzen, die dann zu Verzögerungen bei der Entwicklung und Bereitstellung führen.

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 erhöhen. Die Automatisierung spielt eine Schlüsselrolle bei der Erleichterung der anderen drei Facetten einer hervorragenden kontinuierlichen Integration und kontinuierlicher Lieferpipelines.

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 zu lernen über unseren Katalog von Werkzeugintegrationen das wächst weiter mit GitHub als jüngster Neuzugang.

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

Zu den häufigsten Problemen bei CI/CD-Pipelines gehören UI-Tests mit Selenium. CI/CD kann sich verschlimmern Selentest Probleme wie falsch negative Ergebnisse bei Regressionen und Defekten.

Parasoft versuchte, dieses Problem direkt anzugehen mit Parasoft Selenic - einem Tool, das die Analyse und Korrektur von Selenium-spezifischen Testproblemen automatisiert. Das Tool verlagert lediglich die Arbeitslast auf das CI-System, sodass die menschlichen Entwickler die Probleme nicht beseitigen müssen (wenn es überhaupt echte Probleme gibt).

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 keineswegs ein unnötiger Ansatz, aber automatisiertes Testen muss ohne Frage einen Platz in Ihrer CI/CD-Pipeline haben. Teams, die ihre Agilität verbessern wollen, müssen flexibler sein und Der erste Schritt ist die Testautomatisierung.

Es muss auch gesagt werden, dass Automatisieren einer CI/CD-Pipeline und die Integration von Testautomatisierung sind zwei verschiedene Dinge. Schließlich ist das Testen nur ein Teil des Pipeline-Prozesses. Die Automatisierung der gesamten Pipeline ist eine ganz andere Aufgabe.

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

Softwareentwickler sind mit der Automatisierung von Funktionstests bestens vertraut. Durch die Verwendung können Entwickler schnell mit neuen Elementen oder Funktionen fortfahren. Funktionen wie Parasofts Intelligente Testausführung Stellen Sie sicher, dass jede Kategorie mit schnellerem Ergebniszugriff, optimierten automatisierten Tests, kontinuierlichen Tests und vielem mehr abgedeckt ist.

Die Automatisierung beschränkt sich jedoch nicht nur auf Funktionstests. Leistungstest ist mittlerweile ein integraler Bestandteil der kontinuierlichen Anwendungsbereitstellung. Das Hinzufügen spezifischer Leistungstests zu Tools wie Jenkins ist nur eine Möglichkeit, mit der Teams ihre CI/CD-Pipelines verbessern können. Diese Tests werden natürlich regelmäßig durchgeführt, um eine bessere und frühere Fehlererkennung zu ermöglichen und die Build-Kompatibilität zu bewerten.

Last- und Leistungstests in einer DevOps Delivery-Pipeline

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.

Automatisiertes Testen ermöglicht Skalierbarkeit- ein nicht überspringbarer Teil der Softwareentwicklung für Unternehmen, die expandieren oder wachsen möchten. Tatsächlich gibt es keinen Grund, automatisierte Tests mit einer CI / CD-Pipeline nicht zu implementieren.

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

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“. In Verbindung mit automatisierter Compliance und der Nutzung von KI zielen unsere Tools darauf ab, das Leben von menschlichen Entwicklern und Testern ein wenig einfacher zu machen. Die Implementierung einer CI/CD-Pipeline mit QA ist nur eine weitere Möglichkeit, dieses Ziel zu erreichen.

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

Verwandte Post + Ressourcen