Qualitätssicherung im Bereich Netzwerktransformation

Aktualisiert: Juli 19


Broadband-Network-Gateway (BNG)

Neue Herausforderungen für Breitbandanbieter


Große Breitbandanbieter setzen zunehmend auf software-basierte Lösungen für ihre Zugangsnetze: Bisherige, von externen Dienstleistern eingekaufte, Systeme sollen durch offene, disaggregierte und hoch automatisierte Systeme ersetzt werden. Dies ermöglicht kosteneffizientere und besser skalierbare Plattformen, die insbesondere flexibler zu betreiben und zu warten sind.

Hierfür werden aktuelle Ansätze und Technologien eingesetzt, wie beispielsweise Microservices in Docker-Containern, Kubernetes, „Continuous Integration“ und „Continuous Deployment“ (CICD).


A4 Process Overview

Die Umstellung der Breitbandinfrastruktur auf einen software-basierten Ansatz erfordert die umfangreiche Beteiligung agiler Teams mit Expertise sowohl im Bereich Software-Entwicklung und DevOps als auch im Bereich Netzwerkinfrastruktur.



siticom unterstützt!


Wir unterstützen die Bereiche Testautomatisierung, Release Management und Qualitätssicherung (QA) eines dieser innovativen Transformationsprojekte: Unsere Teams im Projekt vereinen langjährige Erfahrung im Management von Software-Projekten mit DevOps- und Netzwerkexpertise aus der Entwicklerpraxis.


In diesem Post beleuchten wir die Arbeit unseres QA-Teams näher.



Im Fokus: Sicherung der Code-Qualität


Code steht im Vordergrund eines jeden Projekts aus dem Bereich „Software-defined Networking“ (SDN). Die beteiligten Entwicklerteams bringen für gewöhnlich ihre eigenen jeweiligen Qualitätsstandards für Code mit. Um innerhalb des Projekts für reibungslose Zusammenarbeit zu sorgen, gilt es, diese Standards zu vereinheitlichen und insbesondere an vorhandene Infrastrukturgegebenheiten anzupassen. Beispielsweise gibt ein Telekommunikationsanbieter die Infrastruktur und die Prozesse für das Ausrollen neuer Netzinfrastruktur vor – Rahmenbedingungen dieser Art müssen bereits in einem frühen Stadium der Entwicklung von allen Teams einheitlich berücksichtigt werden.

Unser QA-Team arbeitet teamübergreifend: Das Team analysiert Qualitätsanforderungen des Kunden und erarbeitet gemeinsam mit den Entwicklerteams Regelwerke und Prozesse zu deren einheitlicher Umsetzung und Überwachung. Hierfür steht das Team in ständigem Austausch sowohl mit den Code-Maintainern der einzelnen Teams und Systemtestern als auch mit dem Projektmanagement.



Konkrete Aktivitäten unseres QA-Teams:



Qualitätsvereinbarungen für Werkzeuge und Prozesse


In Zusammenarbeit mit den Entwickler- und Infrastrukturteams innerhalb des Projekts entwerfen und schärfen wir Qualitätsvereinbarungen für Code in den im Projekt genutzten Programmiersprachen (z.B. Go und Java), sowie für verwendete Werkzeuge (z.B. Docker und Kubernetes) und Entwicklungsprozesse (GitFlow, Bearbeitung von Merge Requests (MRs) , Testprozesse). Die Vereinbarungen umfassen beispielsweise:


> Regeln zur Struktur und Formatierung des Codes

> Regeln zur Verwendung von Libraries

> Regeln zum Logging systeminterner Vorgänge

> Konventionen für Branchnamen

> Regeln zu Merge Requests im GitLab

> Regeln zu erlaubten Docker Base Images


Wir legen hierbei besonderen Wert darauf, mit den Vereinbarungen zu arbeiten, die sich bereits in den einzelnen Projektteams etabliert haben, und begleiten deren Vereinheitlichung und sichtbare Dokumentation.




Statische Code-Analyse (SCA)


Unsere Qualitätsvereinbarungen enthalten insbesondere auch Regeln zur Verwendung von Tools zur statischen Code-Analyse (Linting, SAST, etc.) in der CI-Pipeline, sodass potenzielle Verletzungen der Qualitätsvereinbarungen bereits während eines Commits von Entwicklern direkt gefunden und behoben werden können.


Als Erweiterung und Vereinheitlichung der bisher im Projekt verwendeten Tools arbeiten wir an der projektweiten Bereitstellung von SonarQube (https://www.sonarqube.org/). SonarQube bietet auf einer einheitlichen Plattform statische Code-Analyse für viele verschiedene Sprachen und visualisiert die Analyseergebnisse übersichtlich. Dies erleichtert die Bewertung der Code-Qualität insgesamt für sämtliche Beteiligten im Projekt, vom Entwickler bis zum Product Owner.

Wir planen, SonarQube an das im Projekt verwendete GitLab anzubinden, sodass Merge Requests im GitLab direkt automatisch mit den Ergebnissen von SonarQube-Analysen dekoriert werden. Dadurch können sowohl Entwickler als auch Reviewer schnell sehen, welche potenziellen Probleme in neuem Code existieren und welche bereits behoben worden sind.



Die besondere Herausforderung bei der Einführung von SonarQube besteht darin, die in SonarQube verwendeten Analyse-Regeln an projektspezifische Vorgaben anzupassen und ggf. geeignet zu erweitern. Wir entwerfen und iterieren diese Anpassungen in Zusammenarbeit mit den Projektteams.



Entwicklungsaktivitäten automatisiert auswerten & unterstützen


In einem großen Entwicklungsprojekt müssen viele verschiedene Teams ihre Arbeit untereinander koordinieren, beispielsweise müssen die Schnittstellen (APIs) der einzelnen Microservices miteinander kompatibel sein. Gleichzeitig werden in kurzen Abständen neue Versionen einzelner Microservices erstellt.

Wir helfen dabei, diese Vorgänge sinnvoll zu koordinieren, indem wir die in GitLab verfügbaren Werkzeuge durch automatische Skripte ergänzen. Unsere Skripte erstellen beispielsweise einen „GitLab Wetterbericht“, der die im Projekt relevanten Aktivitäten in GitLab für alle Projektmitglieder zusammenfasst (z.B. Status neuer Release-Branches in relevanten Repositories). Weitere Skripte erstellen automatisiert die Basis für Release Notes, überprüfen die Kompatibilität der Microservices untereinander, indem die verwendeten Versionen des Informationsmodells verglichen werden, und analysieren verwendete Abhängigkeiten.


Regelmäßige Qualitätskontrolle

Der Kern unserer Arbeit im QA-Team ist die regelmäßige Begutachtung von Projektrepositories. Im Rahmen solcher Begutachtungen überprüfen wir gemeinsam mit den Teams die Struktur der relevanten Repositories und insbesondere die Qualität des Codes und der Dokumentation. Hierbei orientieren wir uns an den verwendeten automatischen Tools und Skripten, aber berücksichtigen stets auch einzelne projektspezifische Ausnahmen. Wir dokumentieren die Ergebnisse der Begutachtungen als „technische Schuld“, die je nach Schweregrad für ein aktuelles oder zukünftiges Release behoben werden muss.




Ansprechspartner


Projekt

Sylvia Grewe

Consultant

+49 151 624 163 90

sylvia.grewe@siticom.de


Marketing & Partnerschaft

Ben Sellwood

Director HR & Communications

+ 49 151 155 240 69

ben.sellwood@siticom.de


24 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen