Build- und Testautomatisierung Unabhängigkeit durch Prozess

In professionellen Embedded Software-Projekten - insbesondere im industriellen Umfeld - gehen wir von Produktlebenszyklen von mehreren Jahren aus. Ein valides Build- und
Software Management ist unerlässlich, um eine langfristige,
wirtschaftliche Weiterentwicklung zu ermöglichen. Es macht
die gewünschte Transparenz von Open Source Software
sowie die Teilhabe an Innovationen und kontinuierlichen
(Sicherheits-) Updates aus der Community erst handhabbar.
Unabhängigkeit durch
Prozess-Sicherheit
Spätestens, wenn Embedded Linux-Betriebssystemsoftware einer Zertifizierung unterliegt, ist man darauf angewiesen, einen validen und reproduzierbaren Build-Prozess mit
verlässlichem Versions-Management nachweisen zu können. Das Build Automation Management mit entsprechendem Software Change Management besteht in der Regel
aus Tooling und Infrastruktur, aber ebenso aus definierten
Prozessen. Wesentliche Anforderungen sind außerdem Personen- und Baurechnerunabhängigkeit.
Emb. Linux D v1
Variants
Build- & Testautomatisierung
Build- und
Testautomatisierung
Emb. Linux C v1
Emb. Linux C v2
Auditierbares Software Change Management
e2factory unterstützt das gesamte Product Lifecycle Management der in einem Kundenprodukt enthaltenen Embedded Software-Komponenten, insbesondere, aber nicht nur
auf Betriebssystem-Ebene.
e2factory unterliegt der GPLv3 und ist als Entwicklungswerkzeug frei verfügbar.
Entscheidend für den industriellen Einsatz sind in erster
Linie die folgenden Eigenschaften und Zusatznutzen:
■ e2factory ermöglicht ein verlässliches Build Automation
Management und ein auditierbares Software Change Management
■ Reproduzierbarkeit sämtlicher entsprechend angelegter
Software-Versionen durch Prüfsummencheck sämtlicher
Eingangsparamter eines jeden Build-Prozesses (Sourcen,
Buildscripte, Konfiguration, Bauumgebung)
■ Multiuser-Fähigkeit durch Client-/Server-Architektur
■ geringe Komplexität bei fokussierter Funktionalität:
transparente Zusammenstellung eines Board Support
Packages
Emb. Linux D v2
Emb. Linux C v3
Emb. Linux B v2
Emb. Linux B v1
Emb. Linux A v1
Gegen diese Anforderungen sowie im Rahmen diverser
zertifizierungspflichtiger Projekte hat emlix e2factory entwickelt. Das Software Management und Build-System wird seit
2003 kontinuierlich gepflegt und weiterentwickelt und wird
mittlerweile in einigen hundert Entwicklungsprojekten sowie
zur Wartung und Pflege eingesetzt.
Emb. Linux A v2
Emb. Linux A v3
Build System
Repository
Versions
t
e2factory ermöglicht ein
zuverlässiges Versions- und
Variantenmanagement. Auch
nach Jahren können baurechnerunabhängig die gewünschten Releases exakt nachgebaut
und modifiziert werden.
Der dahinter liegende Prozess
erfüllt diverse Zertifizierungsanforderungen.
Build- & Testautomatisierung
e2factory sorgt für die strikte
Trennung von Sourcen,
Konfiguration und eigentlicher
Bauumgebung.
source
#1
chroot
pkg #1
result
#1
source
#2
chroot
pkg #2
result
#2
source
#n
chroot
pkg #n
result
#n
Result Server
Source Server(s)
Project
■ Prozesssicherheit bei Baurechner- und Personenunabhängigkeit
■ unterstützt Community-nahes Arbeiten
(Mainline Compliance)
■ Software Paket Management auf Host und Target
■ die Sourcen werden im Rahmen von Projekten direkt vom
upstream bezogen, reduziert auf das tatsächlich benötigte
e2factory Professional
Für den Einsatz im Unternehmen bietet emlix im
Rahmen eines Professional Open Source-Ansatzes
umfangreichen Service und Support – während der
Entwicklung und über den gesamten Product Lifecycle
eines Kundenproduktes. e2factory professional beinhaltet u.a.:
■ Project Set-up inkl. projektspezifischer Toolchain
und Changeroot
■ Projektspezifische Konfiguration von e2factory
■ e2factory Workshop und Support-Kontingent
■ Signatur von Host- und Target-Paketen (optional)
■ Host- und Target-Paketmanagement
■ Umfangreiche Dokumentation (User Manual)
■ Serverinfrastruktur in zertifizierten Rechenzentren;
Backup und Recovery
■ ggf. Portierung auf Server des Kunden
Die enthaltenen Leistungen können als Supportvertrag oder im Rahmen von Wartungsverträgen abhängig
von den Kundenbedürfnissen vereinbart werden.
■ integriertes Versionsmanagement; beliebige Versionen
können in einem Projekt verwaltet werden, Rückverfolgbarkeit von Änderungen
■ e2factory erlaubt sicheres, verteiltes Arbeiten über verschiedene Standorte hinweg (e2factory workbench)
■ effizientes und verlässliches Lifecycle Management über
den gesamten Produktlebenszyklus und diverse Software-Stände sowie ggf. Produktvarianten
■ gezielte, qualitätsgesicherte Zusammenstellung eines
BSPs ohne unerwünschte Patches, Versionskonflikt etc.;
kein Distributions Lock-in
■ In e2factory lassen sich die einzelnen Open Source-Lizenzen der jeweils verwendeten Software-Bausteine dokumentieren. Dies ermöglicht einen rechtssicheren Umgang
mit freier Software.
e2factory ist eine emlix-Marke und wird in emlix-Verantwortung kontinuierlich gewartet und weiterentwickelt.
Hierbei gibt es klare Paradigmen im Bereich der Verlässlichkeit, Rückwärtskompatibilität und der Validierbarkeit mit
zentralem Reviewing. e2factory-Updates werden sorgfältig
geplant, gründlich getestet (umfangreiche Testsuite) und für
jeden einzelnen Kunden abgestimmt.
Build- & Testautomatisierung
e2factory workbench
Zur Unterstützung einer nahtlosen Zusammenarbeit
zwischen Entwicklergruppen bietet emlix e2factory
workbench an. emlix hosted über e2factory workbench
die Projekte des Auftraggebers. Autorisierte Personen
können über verschlüsselte Datenverbindungen auf
die workbench zugreifen und unmittelbar zusammenarbeiten. Das Supportangebot e2factory workbench
beinhaltet zusätzlich zu e2factory professional:
■ Set-up der e2factory workbench für verteiltes Arbeiten auf emlix-Servern
Testplan
Generator
Open Source
Test Library
e2mtt
Library
Test
Definition
Host PC
Testdriver
Target
Device
Rev. 1.N
■ Support bei der Abstimmung mit der Kunden-IT
■ Administration von Entwicklungs-Servern und -Infrastruktur
Report
Generator
Report
Analyze
■ Verwaltung von Nutzern und Zugriffsberechtigungen
■ auf Wunsch Portierung auf Kundenserver
emlix Test Application
Framework (TAF)
Mit dem Test Application Framework (TAF) hat emlix ein
Qualitätssicherungs-Werkzeug entwickelt, das sich optimal
an die Dynamik agiler Entwicklung anpassen kann und ein
kontinuierliches und wirtschaftliches Testen nah an der
Hardware erlaubt. Sämtliche Testläufe werden reproduzierbar archiviert, um auch zu einem späteren Zeitpunkt Ergebnisse überprüfen zu können.
Das TAF enthält über 200 von emlix entwickelte, überwiegend automatisierte und systemnahe Tests für Embedded
Linux-Systeme – ergänzt durch Module aus Open Source
Test Libraries (zum Beispiel LTP - Linux Test Project). Eine
spezifische Auswahl dieser Tests stellt, erweitert um projektbezogene Tests, die Testsuite eines Entwicklungsprojektes
dar.
Zu den Testergebnissen kann eine den Anforderungen
entsprechende, umfangreiche Dokumentation generiert
Report
Database
Auswahl, Durchführung und
Dokumentation von Tests im TAF
werden, die Entwicklungsstand und Qualität des Produktes
darstellen.
Die durchgängige eindeutige Versionierung und Dokumentation erlauben zusammen mit der Archivierung der
reproduzierbaren Testergebnisse den Einsatz des TAF in Projekten mit hohen Qualitätsanforderungen (Zertifizierungen).
Zusammen mit e2factory wird eine durchgängige Reproduzierbarkeit und Nachverfolgbarkeit aller Entwicklungsschritte
und Testläufe erreicht.
Funktionsweise des TAF
Zum Projektstart werden die relevanten Tests aus der
generischen Test-Tool-Bibliothek ausgewählt und für das
Zielprojekt konfiguriert. Für projektspezifische zu testende
Anforderungen werden weitere Tests implementiert, sodass
zu jedem relevanten Bestandteil des Projektziels die notwendige Testabdeckung formuliert ist.
Die initiale Testauswahl kann durch Hinzufügen weiterer
Tests sowie Adaption bestehender Tests kontinuierlich über
die Entwicklungszyklen an sich verfeinernde und verändernde Anforderungen angepasst werden. Tests können von
Build- & Testautomatisierung
TAF erleichtert.
Test Results
Test Cycle1-n
Report
Generator
Test
Report
Der Testprozess beginnt mit dem Übersetzen der Tests in
ausführbare Dateien. Das TAF-Bausystem automatisiert diesen Schritt und generiert die zur Ausführung notwendigen
Testpläne und Verzeichnisstrukturen. Nach dem Setup des
zu testenden Geräts führt der Testrunner die Tests anhand
der Testpläne aus und protokolliert die Ergebnisse umfangreich in Result-Dateien. Es ist möglich, dass verschiedene
Tester mehrere Testläufe auf verschiedenen Varianten des zu
testenden Systems durchführen. Alle Testergebnisse können
in die Result-Datenbank des TAF eingepflegt werden und aus
dieser heraus zu Testreports korreliert werden.
Der Testrunner selber läuft nicht auf dem zu testenden
Gerät, sondern auf einem Test-Host, und führt Tests auf dem
zu testenden Gerät aus. Ebenfalls möglich sind Tests, die
nicht auf dem, sondern gegen das zu testende Gerät laufen.
Dadurch können komplexe Vorgänge geprüft werden, die
beispielsweise den Neustart des zu testenden Geräts beinhalten.
Hohe Flexibilität
Results
Expected
Das TAF erstellt
Datenbank-basiert
automatisierte
Testreports, die das
gesamte Test-Set-up
dokumentieren.
Werden Projekte parallel zu laufenden Entwicklungszyklen
mit dem Test Application Framework getestet, spielt dessen
flexible Anpassbarkeit eine grosse Rolle. Ergebnisse aus verschiedenen Entwicklungsständen lassen sich miteinander
vergleichen, systemspezifische aber auch generische Tests
lassen sich problemlos ergänzen. Das TAF kann für jedes
Projekt mit seinen besonderen Anforderungen konfiguriert
und erweitert werden.
Verification
emlix GmbH
solutions @ emlix.com
http://www.emlix.com
emlix entwickelt oder von unseren Kunden zur Verfügung
gestellt werden. Die Integration eigenständiger Tests in das
TAF ist mit geringem Aufwand möglich. Robuste Test-Tools
müssen bestimmte Funktionalitäten implementieren. Mit
der taflib stellt emlix eine Implementierung zur Verfügung,
die das Erstellen neuer Tests und deren Integration in das
Phone +49 (0) 551 / 30664-0
Fax +49 (0) 551 / 30664-11