Qualitätsmanagement
Qualitätsmanagement im Detail
Um den eigenen hohen Standard in der Softwareentwicklung zu erfüllen, verwendet euris unterschiedliche Methoden zur Steigerung der Quellcode- und Softwarequalität. Der Prozess zur Erreichung hervorragender Softwarequalität besteht aus verschiedenen Phasen. Besonderer Fokus liegt hierbei von Anfang an auf der Qualität des Quellcodes, die durch einen hausinternen Styleguide gewährleistet wird. Ergänzend dazu trägt der Einsatz von spezialisierten Quellcode-Tools zur Sicherung der technischen Qualität bei. Jedes von euris betreute Projekt wird durch umfassendes, individuell zugeschnittenes Testing während des kompletten Entwicklungsprozesses perfektioniert. Für praxisnahe Tests steht bei euris eine eigene Abteilung zur Verfügung.
Quellcodequalität
Die Qualität des Quellcode unterliegt einem streng definiertem internem Styleguide. Spezifiziert werden insbesondere die Codestylevorgaben, wobei auch Design Patterns von essenzieller Bedeutung sind. Zur Einhaltung ebendieser Vorgaben finden regelmäßig, vom technischen Projektleiter verordnete, Quellcodereviews statt
Zur Sicherstellung des eigenen hohen Qualitätsanspruch an den Quellcode sind vom Beginn der Entwicklung an qualitätssichernde Quellcode Tools im Einsatz. Diese werden von jedem Entwickler direkt während der Entwicklung eingesetzt. Durch den Einsatz dieser Tools wird ein einheitlicher Programmierstil gefördert, der die Lesbarkeit und somit die Wartbarkeit in unseren Projekten erhöht. Auch dieser Schritt wird kontinuierlich durch Quellcodereviews geprüft.
Quellcodereviews
Quellcodereviews sind ein kostengünstiges Mittel, um Fehler frühzeitig zu erkennen und zu vermeiden. Hierbei handelt es sich um eine systematische Überprüfung des geschriebenen Quellcodes durch eine oder mehrere Personen. Die Ergebnisse können dabei direkt in den Quellcode einfließen und beeinflussen somit die Sicherstellung der Softwarequalität unmittelbar. Studien belegen, dass durch regelmäßige Code-Reviews 85% der Fehler vor der Testphase erkannt werden. Und dies mit einem äußerst geringen Aufwand da der Fehler an der Quelle behoben wird und eine spätere aufwendigere Verortung entfällt.
Quellcode-Tools
Der vielseitige Einsatz von Quellcode-Tools bei euris führte zu unserem Erfolgsmodell (best practice). Nachfolgend wollen wir Ihnen einen exemplarischen Eindruck in unsere Tool-Welt geben.
- ReSharper: Ein Plug-in für Visual Studio, das die tägliche Arbeit durch Automatisieren von Code-Formatierung, -Analyse, -Reparatur, -Navigation und -Erzeugung vereinfacht und beschleunigt.
- Profiler und Analysen: Werkzeuge und Techniken zur Analyse der Leistung und des Verhaltens eines Programms, um Engpässe zu identifizieren und Verbesserungen vorzunehmen.
- Continuous Integration: Ein Softwareentwicklungsprozess, bei dem die Arbeit jedes Entwicklers regelmäßig (oftmals täglich) in ein gemeinsames Repository eingefügt wird, um frühzeitig Integrationsprobleme zu erkennen und zu beheben.
- CheckStyle: Ein Werkzeug zur Überprüfung der Einhaltung von Java-Codierungsstandards und -konventionen, um ein konsistentes Format und eine verbesserte Lesbarkeit des Codes zu gewährleisten.
- Findbugs: Ein Open-Source-Werkzeug zur statischen Code-Analyse, das nach gängigen Fehlern und Problem in Java-Code sucht, um die Qualität des Endprodukts zu verbessern.
- PMD: Ein weiteres Open-Source-Werkzeug zur statischen Code-Analyse, das potentielle Probleme wie tote Codes, suboptimale Code-Strukturen, mögliche Bugs usw. identifiziert.
- CPD: Akronym für Copy-Paste Detector, ist ein Werkzeug zur Erkennung von dupliziertem Code in verschiedenen Programmiersprachen, um Wiederholungen im Code aufzudecken und die Qualität zu verbessern.
Unit-Tests
euris setzt auf Testautomatisierung, um Softwareprozesse zu optimieren. Mit UNIT-Tests (Komponententests) prüfen wir einzelne Softwaremodule auf ihre Funktionalität, von einfachen Funktionen bis hin zu komplexen Abläufen. Durch regelmäßige Ausführung dieser Tests über geeignete Frameworks können wir Fehler frühzeitig erkennen und beheben, was zu erheblichen Kosteneinsparungen führt. Parallel führen wir auch Black-Box-Tests durch, um die Anwendungsspezifikationen und einen praxisnahen Abschlusstest zu überprüfen. Dies minimiert die Fehleranzahl während der Entwicklungsphase und ermöglicht eine fehlerfreie Anwendung.
Darüber hinaus sorgen wir für eine hohe Code-Abdeckung, um alle Bereiche der Software zu überprüfen. Im Java-Bereich verwenden wir Tools wie Cobertura, JaCoCo oder Clover, während im .NET-Bereich Microsoft Visual Studio und dotCover zum Einsatz kommen. So gewährleisten wir eine kosteneffiziente und zeitsparende Projektarbeit ohne Qualitätseinbußen.
Testing
Parallel zur Nutzung von Quellcode-Tools und Durchführung von Code-Reviews, stellt euris sicher, dass die erstellte Software über den gesamten Entwicklungsprozess hinweg umfassend getestet wird. Die daraus resultierenden Erkenntnisse fließen unmittelbar in die Identifikation und Prävention von Software-Fehlern ein. Dieses stetige Qualitätsmanagement ermöglicht es euris, die Software kontinuierlich zu bewerten und ihre Übereinstimmung mit den spezifischen Anforderungen zu überprüfen.
Bei euris ist die Qualitätssicherung von höchster Priorität und wird durch einen dedizierten Qualitätsbeauftragten überwacht. Verschiedene Testverfahren sind integraler Bestandteil unseres Ansatzes.
Zu Beginn werden White-Box- und UNIT-Tests für Modulebenen durchgeführt, wobei Werkzeuge wie jUnit oder nUnit zum Einsatz kommen. Die Testabdeckung wird mit Tools wie JaCoCo oder Cobertura geprüft. Im weiteren Prozess führen wir Performancetests und Lasttests durch, um die Anwendungsperformance zu optimieren.
Darüber hinaus führen wir Black-Box-Tests durch. Dazu zählen Integrationstests, die das Zusammenspiel der Module und Schnittstellen prüfen, und gegebenenfalls Oberflächentests. Systemtests, die von unserer eigenen Testabteilung durchgeführt werden, stellen eine umfassende Prüfung aller Funktionen und Anforderungen sicher.
Neben der Durchführung von Tests beraten wir auch gerne unsere Kunden bei der Planung und Durchführung ihrer eigenen Tests.
Gerne unterstützen wir Sie bei Ihrem Vorhaben und erstellen gemeinsam mit Ihnen ein individuelles Konzept für Ihre eigene Software.