Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>
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 der Parasoft C / C ++ - Teststandard 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 folgende Bild 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 2020.1 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 beschlossen 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 folgendermaßen aussehen:
Voila! Die statische Analyse wurde im Container durchgeführt. Die Ergebnisse wurden auf der Konsole gemeldet.
Wir könnten das Tool weiter konfigurieren, um den HTML-Bericht im lokalen Dateisystem zu erstellen, aber dies ist eine andere Geschichte. Unser primäres Ziel war es, den Container mit dem darin enthaltenen C / C ++ - Test 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.
Sie müssen den Parasoft C / C ++ - Test auf den aktualisieren neueste Erscheinung? 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. Bei Bedarf glatt, einfach und 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, ist dies eine einfache Docker-Datei. Es wurde der Distribution hinzugefügt, um Ihnen ein Beispiel dafür zu geben, was Sie möglicherweise benötigen, um ein Container-Image für Ihre Umgebung zu erstellen. Sie müssen es an Ihre Bedürfnisse anpassen oder mit vorhandenen Docker-Dateien zusammenführen.
Zu den Spezialitäten von Miroslaw, dem Produktmanager für die eingebetteten Testlösungen von Parasoft, gehören C / C ++, RTOS, statische Code-Analyse, Komponententests, Verwaltung der Softwarequalität für sicherheitskritische Anwendungen und Einhaltung der Sicherheitsstandards durch die Software.