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
Möglicherweise haben Sie in einem früheren Beitrag darüber gelesen, wie man SAST und Unit-Tests in einer Containerumgebung anwendet. Hier finden Sie eine Fortsetzung dazu, wie Sie statische Analysen und Unit-Tests mit Parasoft C/C++test Standard in einem Docker-Container sinnvoll bereitstellen können.
Zum Abschnitt springen
Zum Abschnitt springen
Container sind eine evolutionäre, standardisierte und tragbare Verpackungstechnologie, die direkt in den heutigen modernen agilen Entwicklungsworkflows wie DevOps/DevSecOps eingesetzt wird. Container wurden zunächst für die Entwicklung und Bereitstellung von Webanwendungen und Microservices eingeführt und fanden dort breite Akzeptanz in der IT-Branche. Heutzutage werden in der Embedded-Branche in großem Umfang Container eingesetzt.
Container bieten eine schnelle Reproduktion identischer Umgebungen für eingebettete Entwicklung, Softwaretests, Staging und Produktion in jeder Phase des SDLC.
Die Bereitstellung von Containern bietet mehrere Vorteile.
Es ist wichtig, die Containerarchitektur zu verstehen. Lassen Sie uns eine kurze Beschreibung durchgehen. Ein Container ist eine Anwendung, die mit anderen Komponenten oder Abhängigkeiten wie Binärdateien oder bestimmten Sprachlaufzeitbibliotheken und Konfigurationsdateien gebündelt ist. Container haben ihre eigenen Prozesse, ihre eigenen Netzwerkschnittstellen und Mounts.
Container sind außerdem voneinander isoliert und laufen auf einer Container-Engine wie Docker, um eine einfache Portabilität und Flexibilität zu gewährleisten. Darüber hinaus teilen sich Container ein Betriebssystem und laufen auf einem der folgenden Betriebssysteme:
Es ist auch wichtig, die Rolle der Container-Engine zu verstehen, da sie wichtige Funktionen bereitstellt, darunter:
Ein Container-Image ist eine statische Datei mit ausführbarem Code und enthält alles, was ein Container zum Ausführen benötigt. Daher ist ein Container eine laufende Instanz eines Container-Images. C/C++test wird mit einem Beispiel-Container-Image ausgeliefert, genauer gesagt handelt es sich um eine Docker-Datei.
Teil 1 In diesem Beitrag wurden die Vorteile der Verwendung von Containern zum Bereitstellen eingebetteter Entwicklungs-Toolchains erläutert. Es wurde gezeigt, wie Parasoft C / C ++ test Professional für die Arbeit mit der in einem Container bereitgestellten Kompilierungs-Toolchain und Testausführungsumgebung konfiguriert wird.
Schauen wir uns nun an, wie Sie mit Parasoft C / C ++ Test Standard ein Container-Image erstellen. Ich werde ein einfaches Beispiel mit einer statischen Analyse im Container demonstrieren.
Als befehlszeilenbasiertes Tool eignet sich Parasoft C/C++test Standard für In-Container-Bereitstellungen. Es kann mit dem Compiler und dem Build-System in ein Container-Image gepackt und für CI/CD verwendet und auf den Desktops der Entwickler für die lokalen Befehlszeilenscans bereitgestellt werden. Das Bild unten zeigt die allgemeine Übersicht über dieses Setup:
Das Diagramm zeigt Jenkins, der einen containerisierten C / C ++ - Test verwendet, um eine statische Analyse durchzuführen. In diesem speziellen Setup werden der Parasoft C / C ++ - Test, die Kompilierungs-Toolchain und die Build-Tools in dem Container bereitgestellt, der in der oberen rechten Ecke des Diagramms angezeigt wird.
Der Container darunter unten rechts bietet die Ausführungsumgebung, die möglicherweise zur Ausführung von Laufzeitprüfungen erforderlich ist, z. B. Komponententests oder automatisierte Tests auf Systemebene.
Wenn wir nur statische Analysen implementieren möchten, wird unser Setup höchstwahrscheinlich nur einen Containertyp mit der Kompilierungs-Toolchain und dem Parasoft C / C ++ - Test enthalten.
Wenn Sie dies noch nicht getan haben, bitte Installieren Sie die neueste Version des Parasoft C/C++-Tests für Linux.
Um das Erstellen eines Container-Images mit dem C / C ++ - Test zu vereinfachen, wird die neueste Version mit einem Beispiel für die Docker-Datei geliefert. Sie finden diese Docker-Datei an folgendem Ort:
/ integration / docker / Dockerfile
Diese einfache Docker-Datei konzentriert sich nur auf die erforderlichen C / C ++ - Testschritte zum Erstellen des Images. In den meisten Fällen der realen Welt müssen Sie diese Datei mit Ihrer Docker-Datei zusammenführen.
Bevor wir den Inhalt im Beispiel Dockerfile analysieren, wollen wir sehen, wie es funktioniert. In meinem Beispiel wird die folgende einfache Dateistruktur angenommen:
style = ”Schriftgröße: 13px;”>$ HOME / sandbox / parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz
1. Entpacken Sie die C / C ++ - Testdistribution.
2. Kopieren Sie die Beispiel-Docker-Datei aus der Distribution
3. Bereiten Sie eine Eigenschaftendatei für den C / C ++ - Test mit den Informationen zur Lizenz vor. Wir verwenden die Standarddatei cpptestcli.properties als Basis und kopieren sie in unser Arbeitsverzeichnis:
Bearbeiten Sie es, um die Informationen zu Ihrem Lizenzserverstandort einzufügen. Verwenden Sie Ihren bevorzugten Editor, um die Lizenzinformationen zu konfigurieren. Speichern Sie die Datei, wenn Sie fertig sind.
4. Bearbeiten Sie die Docker-Datei und kommentieren Sie die Zeilennummer 13 (die, in die die Datei cpptestcli.properties aus dem lokalen Verzeichnis an den Speicherort in den Containern kopiert wird). Die Zeile in der Docker-Datei sollte folgendermaßen aussehen:
5. Jetzt können wir das Docker-Image erstellen. Führen Sie den Befehl aus, um das erste Image mit dem C / C ++ - Test zu erstellen. Der Bildname lautet "cpptest_ci_image".
Docker benötigt einige Zeit, um den Cache zu analysieren und das erforderliche Basis-Image herunterzuladen. Sobald dies erledigt ist, wird die C / C ++ - Testdistribution kopiert und in das Image installiert. Nach ein oder zwei Minuten sollte das Bild fertig sein. Bestätigen Sie dies, indem Sie den Befehl ausführen, um alle Bilder aufzulisten:
In der Ausgabe sollte oben "cpptest_ci_image" angezeigt werden. Großartig, also haben wir ein Bild erstellt und bereit. Jetzt ist es Zeit, es zu testen!
Verwenden Sie für einen einfachen Test eine der in der Docker-Datei bereitgestellten Hilfs- / Beispielbefehlszeilen.
Verwenden Sie Ihren bevorzugten Editor, um die Docker-Datei zu öffnen, und scrollen Sie zum Ende der Dateien. Sie sollten einige Beispielbefehlszeilen wie diese sehen:
Verwenden Sie die Befehlszeile aus Zeile 26, um eine statische Analyse innerhalb des Containers für eines der mit der Distribution gelieferten C / C ++ - Testbeispiele auszuführen.
Da wir uns entschieden haben, die Datei cpptestcli.properties mit den Lizenzinformationen in den Container einzubauen, können wir die Befehlszeile vereinfachen und die Option -settings entfernen. Die Befehlszeile für den Test sollte so aussehen:
Voila! Die statische Analyse wurde im Container durchgeführt. Die Ergebnisse wurden auf der Konsole gemeldet.
Wir könnten das Tool noch weiter konfigurieren, um den HTML-Bericht im lokalen Dateisystem zu erstellen, aber das ist eine andere Geschichte. Unser Hauptziel bestand darin, den Container mit C/C++test darin zu erstellen und ihn für die Ausführung einer statischen Analyse zu konfigurieren. Wir haben das Ziel erreicht.
Wenn Sie einen CI-Server mit einrichten müssen statische Analyse Als Teil des Prozesses ist Ihre Aufgabe viel einfacher. Greifen Sie einfach auf den Container zu. Gleiches gilt, wenn Entwickler in Ihrem Team statische Analysen durchführen möchten.
Müssen Sie Parasoft C/C++test auf die neueste Version aktualisieren? Laden Sie einfach die Distribution herunter, erstellen Sie Ihr Container-Image neu und fertig! Das Team und die automatisierte Infrastruktur werden diesen Vorgang nicht einmal bemerken. Reibungslos, einfach und bei Bedarf reversibel.
Bevor wir fertig sind, schauen wir uns den Inhalt der Docker-Datei an, die mit dem Parasoft C / C ++ - Test geliefert wurde, der gerade zum Erstellen unseres Images verwendet wurde. Das Bild unten zeigt den Inhalt von / integration / docker / Dockerfile.
Hier sind die Details:
Dies ist alles, was zum Erstellen eines einfachen Containers mit Parasoft C / C ++ - Test erforderlich ist, der zur Ausführung einer statischen Analyse bereit ist.
Wie bereits erwähnt, handelt es sich hierbei um eine einfache Docker-Datei. Es wurde der Produktverteilung hinzugefügt, um Ihnen ein Beispiel dafür zu geben, was Sie möglicherweise zum Erstellen eines Container-Images für Ihre Umgebung benötigen. Sie müssen es an Ihre Bedürfnisse anpassen oder mit vorhandenen Docker-Dateien zusammenführen.