Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Zum Abschnitt springen
CI/CD sind Doppelbegriffe, die viele Diskussionen in der Softwareentwicklungslandschaft ausgelöst haben. Lesen Sie weiter, um zu erfahren, wie CI/CD eine Schlüsselrolle in der Automobilindustrie spielt und wie Parasoft dazu beitragen kann, Ihr CI/CD effizienter zu machen.
Zum Abschnitt springen
Zum Abschnitt springen
Moderne Fahrzeuge haben typischerweise mehr als 100 Millionen Codezeilen. Die Aufrechterhaltung von Qualität und Erschwinglichkeit sind für viele Entwicklungsteams zu Prioritäten und einzigartigen Herausforderungen geworden. Dies geht einher mit strengeren Sicherheitsanforderungen. All dies trägt dazu bei, dass das Testen noch mehr zu einem integralen Bestandteil des Softwareentwicklungslebenszyklus (SDLC) wird.
So wie es die Automobilindustrie weiterhin tut nutzen Sie die agile Entwicklungsmethodik, treten andere Prozesse auf, die beschleunigt werden können. Dazu gehört die Bereitstellung durch DevOps mit besonderem Fokus auf kontinuierliches Testen. DevOps zielt darauf ab, alle notwendigen Schritte zu automatisieren, die erforderlich sind, um Anwendungscode zu übernehmen und an den Endbenutzer zu liefern. Im Wesentlichen funktioniert es wie ein Förderband, um Anwendungscode durch verschiedene Phasen zu bewegen.
Die heutigen DevOps- und Continuous-Everything-Initiativen erfordern die Fähigkeit, die mit einem Release Candidate verbundenen Risiken sofort und kontinuierlich zu bewerten. Kontinuierliches Testen bietet eine automatisierte, unaufdringliche Möglichkeit, sofortiges Feedback zu den Geschäftsrisiken zu erhalten, die mit einem Software-Release-Kandidaten verbunden sind. Es leitet Entwicklungsteams an, die Geschäftserwartungen zu erfüllen, und hilft Managern, fundierte Kompromissentscheidungen zu treffen, um den Geschäftswert eines Release-Kandidaten zu optimieren. Vieles davon wird durch kontinuierliche Integration (CI) durchgeführt.
Unser Whitepaper zum Thema zeigt, wie CI/CD DevOps für automobile Entwicklungsprojekte nützlich sein können. Dieser Blog behandelt einige der gleichen Themen und beantwortet die folgenden Fragen.
Kontinuierliche Integration als Teil eines kontinuierlichen Entwicklungszyklus.
CI/CD steht für Continuous Integration und Continuous Delivery. Die Kombination aus beidem erstellt eine automatisierte Pipeline wo Code erstellt, dann getestet und dann mithilfe automatisierter Prozesse bereitgestellt wird. Es bedeutet auch, dass Entwicklungsteams in kürzeren Zyklen in einem optimierten Arbeitsablauf arbeiten.
Teams, die CI/CD verwenden haben in der Regel geringere Risiken, Kosten und Entwicklungszeiten bei der Verwendung dieser Methodik und dieses Ansatzes. Wie oben im CI/CD-DevOps-Zyklus dargestellt, ermöglicht die Feedback-Schleife den „kontinuierlichen“ Aspekt der Methodik, um die Automatisierung zu ermöglichen. Es sind jedoch automatisierte Tests, die die gesamte Schleife antreiben.
Da ein Großteil der Automobilentwicklung in Software verwickelt ist, ist das Pushen von Updates zur Routinearbeit geworden, anstatt Hardwarefehlfunktionen zu beheben. Einhaltung von Updates zu funktionale Sicherheitsstandards wie ISO 26262, AUTOSAR, und mehr bedeutet, dass Teams sich schnell anpassen müssen.
Der Einsatz agiler Methoden, kontinuierlicher Tests und Automatisierung ist die beste Strategie, um diese modernen Probleme bei der Entwicklung und Wartung von Automobilsoftware anzugehen.
Hier sind sieben Vorteile von CI/CD-Pipelines in der Automobilsoftwareentwicklung.
Wissen, welcher Code abgedeckt war und welcher nicht Durch die Ausführung von Testfällen können Teams besser verstehen, wo Fehler lauern könnten. Es hilft auch, zu wissen, wie viele weitere Testfälle für die erforderlichen Codeabdeckungsziele erforderlich sind, und genauere Ergebnisse zu erhalten.
Statische Analyse anwenden innerhalb des CI/CD-DevOps-Workflows erleichtert die Einhaltung von Coding-Anforderungen der Branche wie MISRA C/C++.
Nutzen Sie immense Arbeits- und Kosteneinsparungen, um Automotive-Software zu erstellen Tests auf automatisierter kontinuierlicher Basis das erfordert wenig menschliche Interaktion.
Frühes und häufiges Testen trägt dazu bei, dass weniger Bedrohungsvektoren, Fehler und Probleme während Ihres Arbeitsablaufs auftreten. Fehler werden früher aufgedeckt, was zu einfacheren Korrekturen, kürzeren Bereitstellungszeiten und geringeren Projektkosten führt.
Statische Analyse verwenden Codierungsstandards wie SEI CERT C/C++ ermöglicht eine frühere Erkennung von Sicherheitslücken und Fehlern.
Diese können dabei helfen, reproduzierbare, konsistente und sichere Entwicklungsumgebungen zu schaffen. Sie können zentral aktualisiert und dann bereitgestellt werden, wenn Entwickler den Code aktualisieren.
Die Grundlage für kontinuierliches Testen ist die Datengenerierung und -analyse. Indem Sie die entsprechenden Daten für bestimmte Szenarien erstellen, die Sie ausführen möchten, können Sie das Szenario besser simulieren, anstatt sich auf Produktionsdatenquellen zu verlassen.
Es ist wichtig, die DevOps-Phasen vollständig zu verstehen und zu wissen, wann Sie mit der Verwendung der richtigen Tools beginnen sollten, um die besten Ergebnisse zu erzielen. Es gibt auch verschiedene bewährte CI/CD-Pipeline-Tools oder -Lösungen auf dem Markt, die Ihre DevOps-Bereitstellung unterstützen. Einige dieser Tools für die Automobilindustrie sind:
Sie haben vielleicht den Begriff gehört, DevSecOps, Vor. Dies ist die Praxis der Integration von Sicherheit in den DevOps-Workflow. Es erfordert ein Umdenken in den Teams, um Sicherheitstools und -praktiken in diese Methodik zu integrieren.
Die Integration von Sicherheit in Ihren Arbeitsablauf ist von größter Bedeutung, da Sicherheit für viele Automobilhersteller sehr wichtig geworden ist. Regulatorische Anforderungen aus WP.29 der UNECE und die Notwendigkeit, Sicherheitsprozesse einzubinden Standards wie ISO 21434 erfordern es.
Die Integration von Sicherheit in die CI/CD-Phasen ist in der obigen Abbildung dargestellt, ebenso wie Testmethoden angewendet werden können.
Eine der Kernkomponenten von DevOps ist Continuous Integration. CI ist das Zusammenführen von Codefunktionen, Korrekturen oder kleinen Änderungen, die durch Prozesse unterstützt werden, die Versionskontrolle und Software-Build-Automatisierung umfassen.
Automatisierte Verfahren variieren für Entwicklerteams je nach Projektumfang, Prioritäten, verwendeten Tools, Budget und anderen Faktoren.
Kurz gesagt, der typische Workflow beginnt damit, dass Entwickler einen Zweig erstellen, von dem aus sie arbeiten können. Entwickler führen jeden Tag eine Pull-Anforderung aus, schreiben Code und nehmen Änderungen vor – mehrmals am Tag. Es wird ein Push oder Commit für die Codeänderung durchgeführt, wodurch eine Zusammenführungsanforderung erstellt wird.
Der Code wird in ein Repository wie Git gepusht, typischerweise innerhalb einer DevOps-Plattform wie GitLab. GitLab führt eine Pipeline für jeden Commit im Zweig des Entwicklers aus. Mit anderen Worten, es erstellt den Code und führt automatisierte Testskripte aus (statische Analyse, Komponententests, Codeabdeckung usw.). Docker-Images können auch verwendet werden, um die Pipeline zu erfüllen. Sobald der Code verifiziert wurde, wird er in den Hauptzweig eingebunden.
Andere Code-Hosting-Plattformen wie GitHub werden ebenfalls häufig verwendet und können selbst gehostete Runner hosten. Diese Runner können physische Server, virtuelle Maschinen oder Container-Images sein und vor Ort oder in einer öffentlichen Cloud wie Google Cloud ausgeführt werden.
Automatisierung reicht nicht mehr aus. Aus diesem Grund arbeiten kontinuierliche Tests mit der Automatisierung in DevOps zusammen, um bessere Ergebnisse, kürzere Lebenszyklen und weniger Fehler zu liefern. Es ermöglicht Teams einen schnellen Wechsel – eine notwendige Eigenschaft in der heutigen Welt sich ständig ändernder Anforderungen und Aktualisierungen.
Das Erstellen Ihrer eigenen Automotive-CI/CD-DevOps-Pipeline hängt von Ihrem Team, Ihren Arbeitsabläufen, Ihrem Projekt und dergleichen ab. Aber im Allgemeinen hängt der Bau der Pipeline von einigen Schlüsselaspekten ab.
Wenn ein Entwickler neuen Code erstellt oder einen Fix fertiggestellt hat, löst dessen Übergabe an das Repository Tests mit einem inkrementellen Build-Test und einem statischen Analysetest auf der Einheit aus. Entwickler können diese Ergebnisse verwenden, um sie nach Bedarf umzugestalten.
Entwickler können projektweite Builds auch manuell oder zu bestimmten Zeiten während der Arbeitszeit auslösen. Dies würde einen vollständigen statischen Analyselauf starten, gefolgt von einer Regressionstestsuite mit neuen und aktualisierten Komponententests.
Mit besonderem Fokus auf statische Analyse und Unit-Tests spielt die Testautomatisierung die wichtigste Rolle in der Code-, Build- und Testphase des SDLC.
Die Integration wichtiger Qualitäts- und Sicherheitsprüfungen erfordert statische Analysewerkzeuge.
Entwicklungsteams wissen, dass CI/CD-Workflows gleich funktionieren können, unabhängig davon, ob sie containerisiert sind oder nicht. Container ermöglichen es DevOps-Teams jedoch, Anwendungen einfacher bereitzustellen sowie sie zu patchen und an die Anforderungen einer Organisation anzupassen. Im Wesentlichen beschleunigen Container die Entwicklung, das Testen und die Produktion, wie sie im Rahmen der Agile- und DevOps-Nutzung angewendet werden.
Bei der Verwaltung komplexer Entwicklungsumgebungen, insbesondere im sicherheitskritischen Bereich, kämpfen Teams normalerweise mit den folgenden Herausforderungen.
All diese Probleme lassen sich mit Containern lösen.
Jede Strategie, die die Markteinführungszeit und Kosten reduziert und die Arbeit für Entwicklungsteams vereinfacht, ist eine Win-Win-Win-Situation. Die Übernahme der Agile-Methodik und der Wechsel nach links in Richtung CI/CD-DevOps ist eine Notwendigkeit für moderne Entwickler in der Automobilindustrie. Aber nicht alle Tools auf dem Markt für diesen Zweck sind gleich geschaffen.
Parasoft präsentiert a einzigartige Lösung für Ihre CI/CD-DevOps-Anforderungen. Unser Tool generiert automatisch Datenberichte, verfügt über eine intuitive Benutzeroberfläche, die anfängerfreundlich ist, unterstützt bei End-to-End-Systemtests und vieles mehr. Eliminieren Sie Fragen zur Werkzeugqualifizierung oder Probleme mit der Aufzeichnung. Verfolgen Sie den Fortschritt mit intelligenten Berichten und Dashboards, die Daten über Komponententests, statische Analysen und andere Metriken bereitstellen.
Unsere Lösungen halten die für sicherheitskritische Software erforderlichen Standards und Zertifizierungen ein. Darüber hinaus profitieren Parasoft-Benutzer von einer flexiblen, zentralisierten webbasierten Schnittstelle zum Durchsuchen von Ergebnissen bei der Integration in CI/CD-Workflows. Das dynamische webbasierte Berichts-Dashboard verwendet unsere Process Intelligence Engine, um Funktionen für die Lebensqualität bereitzustellen, wie:
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.