Kontinuierliche Verifikation und CI/CD
Durch die Integration der Verifikation in die CI-Pipeline werden Fehler bereits an der Stelle erkannt, an der sie entstehen, noch bevor sie sich in integrierte Builds oder nachgelagerte Komponenten ausbreiten.
Für Embedded-Software-Teams bedeutet die Integration der Verifikation in die CI/CD-Pipeline, dass jeder Code-Commit automatisch eine statische Analyse, die Ausführung von Regressionstests, die Code-Coverage-Messung sowie Qualitätskontrollen auslöst. Probleme werden innerhalb weniger Minuten nach ihrem Auftreten erkannt, solange der Code noch aktuell ist und die Behebung unkompliziert ist.
Statische Analyse in der Pipeline
PC-lint Plus wird als Tool auf der Kommandozeile ausgeführt und lässt sich in jede CI/CD-Umgebung integrieren. Dank seines vollständig anpassbaren Ausgabeformats können die Analyseergebnisse von Build-Systemen, Issue-Trackern und Dashboards verarbeitet werden. Da das Tool auf dem Quellcode basiert und weder einen Build noch eine Ausführung erfordert, kann es bei jedem Commit mit minimalem Aufwand ausgeführt werden.
PC-lint Plus View erweitert diese Transparenz direkt in die Entwicklungsumgebung. Die Ergebnisse werden inline angezeigt, während der Code geschrieben wird, sodass Fehler und Verstöße gegen Richtlinien für den Entwickler, der sie verursacht hat, sofort sichtbar sind, anstatt erst später in einem Build-Bericht aufzutauchen. Die gleiche Analyse, die in der Pipeline ausgeführt wird, läuft auch im Editor – unter Verwendung derselben Regelkonfiguration.
PC-lint Plus kennzeichnet Verstöße gegen Codierungsstandards, Null-Zeiger-Dereferenzen, Sicherheitslücken und andere Fehlerklassen in dem Moment, in dem sie in der Codebasis auftreten – und zwar innerhalb des Builds, in dem sie entstanden sind.
Automatisierte Ausführung von Tests
VectorCAST lässt sich in Jenkins, Azure DevOps, GitLab und andere CI-Frameworks integrieren. Die Server-Edition ist für die parallele Testausführung in automatisierten Umgebungen optimiert und führt Tests über mehrere Konfigurationen hinweg durch, ohne die interaktive Testentwicklung zu behindern.
Change-Based Testing
Die Ausführung der gesamten Testsuite bei jedem Commit ist bei großen Codebasen nicht praktikabel. Das Change-Based Testing (CBT) in VectorCAST löst dieses Problem, indem es die minimale Menge an Testfällen ermittelt, die die von einer Änderung betroffenen Sektionen abdecken, und nur diese Tests erneut ausführt.
Die Testabdeckung bleibt dabei gewährleistet. CBT liefert schnelles Feedback zu den Auswirkungen jeder Änderung und sorgt gleichzeitig für einen kurzen CI-Zyklus. Bei Bedarf können vollständige Regressionstests geplant werden. Dazwischen liefert CBT schnelles Feedback zu den Auswirkungen von Änderungen und sorgt so für einen kurzen CI-Zyklus ohne Lücken.
Qualitätskontrollen und Überwachung des Trends
Einzelne Testläufe spiegeln den Zustand eines einzelnen Builds wider. Squore überwacht den Projektverlauf. Es verfolgt, ob sich die Testabdeckung zwischen den Releases verbessert, ob sich die Ergebnisse der statischen Analyse häufen und ob die Codebasis auf dem richtigen Weg ist, die Anforderungen an die Testabdeckung vor der Integration zu erfüllen.
Squore setzt Qualitätskontrollen durch, die verhindern, dass nicht konformer Code die Pipeline durchläuft. Wenn ein Commit zu einer Regression der Testabdeckung unter einen definierten Schwellenwert führen würde oder wenn die Ergebnisse der statischen Analyse einen konfigurierten Grenzwert überschreiten, stoppt die Qualitätskontrolle den Build und benachrichtigt das Team. Die Trendanalyse deckt Qualitätsverschlechterungen frühzeitig auf, bevor sie zu einem Problem werden, das die Veröffentlichung verzögert.
Die Compliance-Dividende
Jeder automatisierte Testlauf, die Ausführung einer statischen Analyse und die Abdeckungsmessung tragen zu einem wachsenden Bestand an Belegen bei, die aufzeigen, was verifiziert wurde, wie gründlich dies geschah und auf welcher Grundlage. Diese Belege entstehen als Nebenprodukt des Entwicklungsprozesses und nicht als separate Konformitätsmaßnahme, die unter Zeitdruck vor einem Audit zusammengestellt wird.
Für Teams, die nach ISO 26262, DO-178C, IEC 61508 oder IEC 62304 arbeiten, sind die praktischen Auswirkungen erheblich. Zertifizierungsnachweise, die am Ende früherer Projekte Wochen zum Kompilieren benötigten, liegen während des gesamten aktuellen Projekts kontinuierlich vor. Lücken in der Testabdeckung werden bereits erkannt, solange sie noch gering sind. Der Rückstand bei der statischen Analyse häuft sich nicht so weit an, dass er unüberschaubar wird. Das Audit wird zu einer Überprüfung bereits vorhandener Unterlagen und nicht zu einem Wettlauf um deren Erstellung.
PC-lint Plus, VectorCAST und Squore sind jeweils nach den von ihnen unterstützten Standards zertifiziert. Ihre Ergebnisse werden ohne zusätzliche Qualifizierungsmaßnahmen als Verifikationsnachweise akzeptiert. Durch ihre Integration in die Pipeline werden Konformitätsnachweise zu einem Produkt der Entwicklungsarbeit und nicht zu einem eigenständigen Projekt.