Azahara Camacho, Author at WATA Factory https://wata.es/author/acamacho/ IT Consulting & Outsourcing for your company Mon, 14 Apr 2025 14:59:41 +0000 de hourly 1 https://wordpress.org/?v=6.8.3 https://wata.es/wp-content/uploads/2020/09/cropped-favicon_08-2020-32x32.png Azahara Camacho, Author at WATA Factory https://wata.es/author/acamacho/ 32 32 SonarQube: Wie man die Qualität des Codes während eines CI/CD-Prozesses gewährleisten kann https://wata.es/de/sonarqube-wie-man-die-qualitat-des-codes-wahrend-eines-ci-cd-prozesses-gewahrleisten-kann/ Sat, 03 Jul 2021 07:00:28 +0000 https://wata.es/?p=4947 In früheren Artikeln haben wir verschiedene Testverfahren gesehen, mit denen wir die Qualität und Korrektheit des zu liefernden Endprodukts sicherstellen können. In diesem Artikel werden wir über SonarQube sprechen, ein Tool, mit dem wir auch intern die Qualität sicherstellen können. Wir können also kontrollieren, ob der Entwicklungsprozess, die verwendete Architektur oder die eingesetzten Algorithmen einer […]

The post SonarQube: Wie man die Qualität des Codes während eines CI/CD-Prozesses gewährleisten kann appeared first on WATA Factory.

]]>
In früheren Artikeln haben wir verschiedene Testverfahren gesehen, mit denen wir die Qualität und Korrektheit des zu liefernden Endprodukts sicherstellen können. In diesem Artikel werden wir über SonarQube sprechen, ein Tool, mit dem wir auch intern die Qualität sicherstellen können.

Wir können also kontrollieren, ob der Entwicklungsprozess, die verwendete Architektur oder die eingesetzten Algorithmen einer geeigneten Struktur folgen, einem Muster, welches uns eine einfache Pflege des Produkts ermöglicht.

Was ist SonarQube?

SonarQube ist eines der meistgenutzten Tools, um Codes zu überprüfen, Bugs, Schwachstellen und andere Probleme in unserem Projekt zu erkennen. Es ermöglicht die Analyse eines Codes, der in den gängigsten Programmiersprachen geschrieben wurde (Java, PHP, JavaScript, C#, HTML, etc.).

SonarQube wird als eine weitere Datei in das zu analysierende Projekt integriert, und wenn die Pipeline, in der die Tasks gestartet werden, richtig konfiguriert ist, wird die Code-Inspektion jedes Mal automatisch durchgeführt, wenn wir eine Änderung in irgendeinem Teil des Projekts vornehmen.

Das Bild stammt aus der offiziellen Dokumentation von SonarQube

Wie man in dem Bild sehen kann ist das typische Szenario, in welcher man die Nützlichkeit am besten verstehen kann, eins mit drei klaren Phasen:

  • Entwicklung – Der Code wird von den Entwicklern im Repository aktualisiert. Bevor sie den SonarQube-Dienst mit der Analyse der Änderungen beauftragen, können sie dank des SonarLint-Tools, das in die IDEs integriert werden kann, sofortiges Feedback erhalten.
  • CI/CD – Wenn die neuen Änderungen in das Repository aufgenommen werden, prüfen und erstellen die Continuous Integration Tools den Code und führen die Tests aus. Dann wird der SonarQube-Scanner aufgerufen, um die Ergebnisse einiger dieser Tests und den Code als solchen zu analysieren.
  • SonarQube-Plattform – Sobald die Analyse des Projekts abgeschlossen ist, werden die Ergebnisse in der Plattform gespeichert und abhängig von den konfigurierten Qualitätsbedingungen können die Teammitglieder informiert werden, wenn sie einen Mangel beheben müssen.

Für die verschiedenen Projekte, die bei WATA Factory, durchgeführt werden, haben wir uns für die Community-Edition entschieden, die frei und Open Source ist. Es gibt jedoch auch kostenpflichtige Alternativen, die die Installation und Wartung des SonarQube-Dienstes durch dasselbe Unternehmen erleichtern. Die Community-Version kann auf zwei Arten installiert werden:

  • Lokal – Der Entwickler kann den SonarQube-Dienst auf seinem Localhost einrichten, um seinen Code analysieren zu können, ohne ihn auf einem externen oder entfernten Server hosten zu müssen.
  • Remote – Der SonarQube-Dienst wird auf einem Remote-Server gehostet, auf den man mittels vom Dienstadministrator generierter Anmeldeinformationen zugreifen kann.

Je nach Bedarf und Größe des Projekts (Mitglieder, Ressourcen oder Dienstleistungen, die in Anspruch genommen werden müssen) kann man die am besten geeignete Option wählen.

Allgemeine Konzepte

Um ein wenig mehr über die Relevanz der Verwendung dieses Tools zu verstehen, werden wir die allgemeinen Konzepte, welche auf der Plattform erscheinen, detailliert erläutern:

  1. Benutzer und Gruppen: Wie in jeder Umgebung können wir Benutzer definieren, die in Gruppen verwaltet werden. Jeder dieser Benutzer verfügt über eine Reihe von Berechtigungen, die ihnen ermöglichen die Analyse eines Projekts anzufordern, falsch positive Ergebnisse der durchgeführten Analyse zu validieren oder sogar zu stornieren.
  2. Projekte: Um die Analyse unseres Codes durchzuführen, müssen wir ein Projekt mit den notwendigen Parametern, die unser Softwareprojekt identifizieren, auf der Plattform erstellen. Diese Parameter sollten, abhängig von der Sprache, die wir in unserem Projekt verwenden, auf die eine oder andere Weise angegeben werden. Innerhalb dieser Projekte finden wir die Analyse der einzelnen Projekte, die folgende Daten enthält:
  3. Bugs: Fehler im Code, die so schnell wie möglich behoben werden müssen
  4. Schwachstellen: Stellen im Code, die offen für externe Angriffe sind und die Integrität und Sicherheit des Projekts gefährden können.
  5. Hotspots: Bereiche des Codes, die überprüft werden sollten, um größere Probleme zu vermeiden, sie müssen nicht unbedingt die Sicherheit des Projekts gefährden.
  6. Code Smells: Elemente, die den Code unverständlich oder schwer wartbar machen.
  7. Abdeckung: Aus den Berichten der ausgeführten Unit-Tests importiert SonarQube die Ergebnisse und zeigt die Abdeckung an.
  8. Duplikate: Anzahl der erkannten duplizierten Blöcke, Dateien und Zeilen.
  9. Gesamtzeilen: Gesamte Anzahl der Codezeilen im Projekt.
  10. Sprachen: Programmiersprachen, die im Projekt verwendet werden.
  11. Aktueller Status: Failed/Passed, abhängig von den im zugehörigen Qualitätsprofil festgelegten Werten.
  12. Tags: Tags, die dem Projekt zugewiesen wurden.
  13. Zeitpunkt der letzten Analyse: Aufzeichnung jeder durchgeführten Analyse.
  14. Qualitätsprofile: Sie hängen direkt von den in den Quality Gates festgelegten Bedingungen ab, welche die Regeln angeben, die in jeder der in SonarQube verfügbaren Sprachen befolgt werden müssen. Die Bedingungen der Qualitätsprofile spiegeln die Grenzen der Mindestabdeckung, der duplizierten Zeilen, des Sicherheitsindex oder des Wartbarkeitsindex wider.

Wie wir sehen können, sind der Bericht und die generierten Informationen sehr umfangreich, was uns einen sehr genauen Überblick über den Status unseres Projekts ermöglicht.

Bei WATA Factory haben wir mit SonarQube ein weiteres Werkzeug etabliert, welches die Verbesserung der Codequalität und auch ein indirektes Lernen bei den Entwicklern ermöglicht. Denn mit jedem der Berichte lernt man, welche schlechten Praktiken zu vermeiden sind und wie man sie mit den Vorschlägen, die das gleiche Tool anbietet, dank der in den Quality Gates definierten Regeln lösen kann In zukünftigen Artikeln werden wir sehen, wie wir unser Projekt konfigurieren, um es mit SonarQube automatisch aus einer Pipeline heraus analysieren zu können.

The post SonarQube: Wie man die Qualität des Codes während eines CI/CD-Prozesses gewährleisten kann appeared first on WATA Factory.

]]>
Automated Testing: Merkmale, Vor- und Nachteile https://wata.es/de/automated-testing-merkmale-vor-und-nachteile/ Mon, 21 Dec 2020 08:00:54 +0000 https://wata.es/?p=4686 Ein Softwareprojekt umfasst mehrere Phasen, die es uns ermöglichen, seine korrekte Ausführung zu gewährleisten. Um die Qualität und Korrektur des Endprodukts zu garantieren, müssen wir Software-Testing anwenden. Wie wir bereits in einem früheren Artikel gesehen haben, gibt es innerhalb des Software-Testings zwei verschiedene Arten: manuelle Tests und automatisierte Tests. In diesem Artikel erläutern wir die […]

The post Automated Testing: Merkmale, Vor- und Nachteile appeared first on WATA Factory.

]]>
Ein Softwareprojekt umfasst mehrere Phasen, die es uns ermöglichen, seine korrekte Ausführung zu gewährleisten. Um die Qualität und Korrektur des Endprodukts zu garantieren, müssen wir Software-Testing anwenden.

Wie wir bereits in einem früheren Artikel gesehen haben, gibt es innerhalb des Software-Testings zwei verschiedene Arten: manuelle Tests und automatisierte Tests.

In diesem Artikel erläutern wir die Merkmale und die Vor- sowie Nachteile des automatischen Testens in einem Softwareprojekt. Um den Inhalt dieses Artikels zu erarbeiten, habe ich meine persönlichen Erfahrungen mit denen verschiedener Kollegen in unserem Team bei WATA Factory erweitert.

Wir werden die wichtigsten Aspekte aufweisen, die man auf jeden Fall beachten sollte, um den Weg zum Erfolg so einfach und schnell wie möglich zu gestalten.

Merkmale des automatischen Testens

Automatisches Testen ist die Vorgehensweise, welche auf den von Testautomatisierungswerkzeugen entwickelten Prozessen basiert. Eines seiner Hauptziele ist, als Ergänzung zur Verbesserung der manuellen Tests, den Testprozess eines Softwareprojekts zu verbessern.

Mit dem heutigen Stand kann das automatische Testen niemals zu 100% die Vorteile, die uns das manuelle Testen bringt, ersetzen. Die Automatisierung verbessert den Testprozess nur, indem sie Vorteile wie paralleles Testen, automatisches Reporting, Eliminierung von sich wiederholenden Aufgaben für manuelle Tester oder Wiederverwendung von Testszenarien bietet. Aber derzeit kann das Software-Testen eines Projekts nicht vollständig durch automatisiertes Testen allein abgedeckt werden.

Bei dieser Art des Testens liegt die Verantwortung des Prozesses vollständig bei dem ausgewählten Tool und den Skripts, die der Tester für die zu testende Anwendung (Application under Test – AUT) entworfen hat. m Gegensatz zu manuellen Tests können automatische Tests nicht in jedem Bereich angewendet werden. Vor allem lässt die automatische Anwendung gerade bei visuellen und UI-Tests noch viel zu wünschen übrig. Es gibt Projekte, in denen täglich bessere Tools auf Basis von KI entwickelt werden, die es aber trotzdem nicht schaffen, alle gewünschten Ziele zu erreichen.

Anhand dieser Daten können wir die wichtigsten Vor- und Nachteile des automatischen Testens ermitteln:

Vorteile

Im Gegensatz zum manuellen Testen können wir beim automatisierten Testen viele Arbeitsabläufe parallelisieren. Die Planung dieser Abläufe bietet eine Vielzahl von Möglichkeiten, um die Qualität des Produkts zu verbessern. Mit einem höheren Detaillierungsgrad könnten wir sagen, dass uns das automatisierte Testen folgendes bietet:

  • Schnelligkeit: Die Ausführungszeit ist kürzer.
  • Zuverlässigkeit: mehr Permutationen und Pfade können in der AUT abgedeckt werden.
  • Effizienz: mehr Tests werden in kürzerer Zeit ausgeführt und die AUT-Abdeckung wird verbessert.
  • Die Tests werden automatisch aus den Skripts ausgeführt.
  • Die Tests können in verschiedenen Szenarien wiederverwendet werden.

Nachteile

Andererseits bringt die Anwendung dieser Prüftechnik eine Reihe von Auswirkungen mit sich. Unter diesen ist die Herausragendste die Notwendigkeit, ein technisch besser ausgebildetes Testteam für die Gestaltung der Skripts zu haben. Und wie wir schon erwähnt haben, die Einschränkungen, die wir in verschiedenen Bereichen, wie z. B. bei Benutzertests, beachten müssen. Wenn wir diese Nachteile analysieren, können wir die folgende Auflistung erhalten:

  • Die Tester müssen technische Kenntnisse haben, um die Testskripte umsetzen zu können.
  • Kann nicht auf alle möglichen Arten von Testungen angewendet werden. Zum Beispiel die visuelle Prüfung.
  • Wenn die Skripts nicht korrekt gestaltet sind, können falsch negative Ergebnisseerzeugt werden, die die Zuverlässigkeit der Berichte verringern.
  • Wir können Aspekte wie den Grad der Benutzerfreundlichkeit oder wie intuitiv die AUT ist, nicht automatisieren. Dazu benötigen wir den manuellen Test.
  • Empfohlen für beständige und langfristige Projekte, aufgrund der zu tätigenden technischen Investition.

Der Einsatz von automatisierten Tests wird in den verschiedenen Bereichen der Software immer häufiger, aufgrund der vielen, sich bietenden Vorteile. Denn trotz der möglichen Nachteile, mit denen wir konfrontiert werden, ist das Ergebnis einer guten Anwendung immer positiv.

Basierend auf all diesen Details, die wir analysiert haben, ist es jedoch notwendig, dass zwei sehr wichtige Aspekte vom automatischen Tester berücksichtigt werden: die Auswahl eines guten Testautomatisierungswerkzeugs und das passende Design der Testskripts. In zukünftigen Beiträgen werden wir erörtern, wie wir diesen Herausforderungen begegnen können und wie wir diese Art des Testens in unseren Projekten implementieren können.

The post Automated Testing: Merkmale, Vor- und Nachteile appeared first on WATA Factory.

]]>
Manual Testing: Anwendung manueller Tests auf ein Software-Projekt https://wata.es/de/manual-testing-anwendung-manueller-tests-auf-ein-software-projekt/ Mon, 14 Sep 2020 07:00:00 +0000 https://wata.es/?p=4456 Das Testen von Software beinhaltet die Art von Aufgaben, welche es uns ermöglichen Informationen über die Qualität des zu prüfenden Produkts zu erhalten. Es stellt einen kompletten parallelen Zyklus innerhalb der Softwareentwicklung dar, und dieser Zyklus wird als Software Testing Life Cycle (STLC) bezeichnet. Innerhalb des STLC können wir zwei verschiedene Arten von Testungen finden: […]

The post Manual Testing: Anwendung manueller Tests auf ein Software-Projekt appeared first on WATA Factory.

]]>
Das Testen von Software beinhaltet die Art von Aufgaben, welche es uns ermöglichen Informationen über die Qualität des zu prüfenden Produkts zu erhalten.

Es stellt einen kompletten parallelen Zyklus innerhalb der Softwareentwicklung dar, und dieser Zyklus wird als Software Testing Life Cycle (STLC) bezeichnet.

Innerhalb des STLC können wir zwei verschiedene Arten von Testungen finden: manuelle Tests und automatische Tests. Im Falle von manuellen Tests wird die Tätigkeit zu 100% vom Tester ausgeführt. Und im Falle des automatischen Testens wird nur ein gewisser Anteil dieser Tätigkeiten von einem Tester ausgeführt, während der Rest von Automatisierungswerkzeugen erledigt wird.

Merkmale der manuellen Prüfung

Manuelles Testen ist die am weitesten verbreitete Technik in der Geschichte der Software-Entwicklung. Sie ist die Erste, welche die Anwendung von Tests auf verschiedenen Ebenen ermöglichte: Unit Tests, Integrationstests der Komponenten, User Interface… Doch auch wenn jede Art von Prüfungen mit manuellem Testen durchgeführt werden kann, birgt es auch gewisse Nachteile. Schauen wir uns die Merkmale im Detail an:

Vorteile:

  • Das manuelle Testen ermöglicht jede Art von Test. Tatsächlich kann die Qualität auf der Ebene der Benutzerschnittstelle (oder der Benutzerfreundlichkeit) nur durch diese Art von Tests kontrolliert werden.
  • Es ermöglicht die Analyse komplexerer Szenarien dank des Erfindungsreichtums, den der Tester während seiner Tätigkeit entfalten kann.
  • Das Risiko, ein falsches Negativ-Ergebnis zu finden, ist aufgrund der direkten Interaktion mit dem zu testenden System sehr gering.
  • Die Tester müssen keine technischen Kenntnisse haben, um die notwendigen Tests durchzuführen.

Nachteile:

  • Die Ausführung der Aufgaben ist aufgrund der Schwierigkeit einiger Szenarien sehr langsam.
  • Der Tester muss kreativ, geduldig und mit Eigeninitiative ausgestattet sein, um Situationen zu finden, die die Eigenschaften des Produkts auf die Probe stellen.
  • Das Erledigen von Aufgaben nimmt viel Zeit in Anspruch.
  • Sehr mühsam aufgrund der manuellen Ausführung aller Schritte, die bei jedem der Tests anfallen.
  • Es ist schwierig, den Grad der Testabdeckung zu quantifizieren, den wir mit der Durchführung dieser Art von Tests haben.

Umsetzung in die Praxis

Wir bei WATA Factory können auf eine lange Reihe von Projekten zurückblicken, in denen wir manuelle Prüftechniken implementiert haben, um das Qualitätsniveau unserer Produkte sicherzustellen und zu garantieren.

Jedes Projekt hat unterschiedliche Charakteristiken und die Umsetzung dessen erfordert eine Analyse der Ressourcen sowie Anforderungen, die überprüft werden müssen.. Daher werden beim Start von manuellem Testen folgende Schritte empfohlen:

  1. Systemanalyse: Definition der zu testenden funktionalen und nicht-funktionalen Anforderungen.
  2. Analyse der verfügbaren Ressourcen: Personal, Ausrüstung, Zeit usw.
  3. Planung der zu entwickelnden manuellen Tests: Arten und Ausführungszeiten.
  4. Durchführung der Tests.
  5. Dokumentation der erzielten Ergebnisse: Fehlerberichte, Ergebnisberichte und analysierte Anforderungen.

Viele dieser Schritte sind im STLC-Prozess üblich, aber im Falle manueller Tests ist ihre Anwendung und Ausführung recht sequentiell.

Deshalb beginnen wir im Rahmen unserer Projekte mit der Anwendung automatisierter Prüftechniken, mit denen es uns gelingt, die Defizite manueller Tests zu verringern und so die Qualität unserer Produkte zu erhöhen.

The post Manual Testing: Anwendung manueller Tests auf ein Software-Projekt appeared first on WATA Factory.

]]>