<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Analyse Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/analyse/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/analyse/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Fri, 21 Feb 2025 07:25:57 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Analyse Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/analyse/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Inkrementelles Entwicklungsmodell &#8211; Kleine Schritte, große Fortschritte</title>
		<link>https://ceosbay.com/2023/10/24/inkrementelles-entwicklungsmodell-kleine-schritte-grosse-fortschritte/</link>
					<comments>https://ceosbay.com/2023/10/24/inkrementelles-entwicklungsmodell-kleine-schritte-grosse-fortschritte/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 24 Oct 2023 04:00:00 +0000</pubDate>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Anforderungen]]></category>
		<category><![CDATA[Anwendungsdesign]]></category>
		<category><![CDATA[Benutzerakzeptanz]]></category>
		<category><![CDATA[Code-Implementierung]]></category>
		<category><![CDATA[Code-Review]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[End-to-End-Testing]]></category>
		<category><![CDATA[Entwicklungsframeworks]]></category>
		<category><![CDATA[Entwicklungsmodell]]></category>
		<category><![CDATA[Entwicklungspraxis]]></category>
		<category><![CDATA[Entwicklungsstrategie]]></category>
		<category><![CDATA[Evaluation]]></category>
		<category><![CDATA[Funktionalitätstests]]></category>
		<category><![CDATA[Implementierung]]></category>
		<category><![CDATA[Inkrementell]]></category>
		<category><![CDATA[Integrationstesting]]></category>
		<category><![CDATA[Iterativ]]></category>
		<category><![CDATA[Modellierung]]></category>
		<category><![CDATA[Moduldesign]]></category>
		<category><![CDATA[Planung]]></category>
		<category><![CDATA[Projektmanagement]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Prozess]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Release-Management]]></category>
		<category><![CDATA[Software-Design]]></category>
		<category><![CDATA[Software-Lebenszyklus]]></category>
		<category><![CDATA[Software-Maintenance]]></category>
		<category><![CDATA[Software-Projektplanung]]></category>
		<category><![CDATA[Softwarearchitektur]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwaremethodik]]></category>
		<category><![CDATA[Softwareoptimierung]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Softwarezyklus]]></category>
		<category><![CDATA[Systemanalyse]]></category>
		<category><![CDATA[Systemdesign]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2894</guid>

					<description><![CDATA[<p>Inkrementelles Entwicklungsmodell &#8211; In der dynamischen Welt der Softwareentwicklung spielt die Wahl des richtigen Entwicklungsmodells eine entscheidende Rolle für den Erfolg eines Projekts. Das inkrementelle Entwicklungsmodell zählt zu den bewährten Ansätzen, die Flexibilität und Effizienz &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/24/inkrementelles-entwicklungsmodell-kleine-schritte-grosse-fortschritte/">Inkrementelles Entwicklungsmodell &#8211; Kleine Schritte, große Fortschritte</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Inkrementelles Entwicklungsmodell &#8211; In der dynamischen Welt der Softwareentwicklung spielt die Wahl des richtigen Entwicklungsmodells eine entscheidende Rolle für den Erfolg eines Projekts. Das inkrementelle Entwicklungsmodell zählt zu den bewährten Ansätzen, die Flexibilität und Effizienz in den Entwicklungsprozess integrieren. In diesem Beitrag beleuchte ich die Grundlagen des inkrementellen Entwicklungsmodells. Ein besonderes Augenmerk gilt dem Ursprung, den optimalen Anwendungsmethoden und illustriere dies anhand von Beispielen aus der Praxis.</p>



<h3 class="wp-block-heading">Grundlagen Inkrementelles Entwicklungsmodell </h3>



<p>Das inkrementelle Entwicklungsmodell basiert auf der Idee, ein umfangreiches Softwareprojekt in kleinere, handhabbare Teile zu zerlegen. Entwickler implementieren diese Teile in aufeinanderfolgenden Phasen, wobei jedes Inkrement auf dem vorherigen aufbaut und es erweitert. Diese Vorgehensweise ermöglicht eine frühzeitige Auslieferung von Teilfunktionalitäten, was wiederum eine schnelle Rückmeldung von den Endnutzern erlaubt. Die konsequente Einbindung von Nutzerfeedback in den Entwicklungsprozess führt zu einer höheren Benutzerzufriedenheit und ermöglicht eine effektivere Fehlerbehebung.</p>



<h3 class="wp-block-heading">Ursprung und Entwicklung</h3>



<p>Die Ursprünge des inkrementellen Entwicklungsmodells liegen in den 1960er und 1970er Jahren. Als Softwareingenieure nach flexibleren Alternativen zu den bis dahin vorherrschenden, starren Entwicklungsmodellen suchten. Das inkrementelle Modell bildete eine Antwort auf die wachsenden Anforderungen an Softwarelösungen. Besonders, die Notwendigkeit, sich schnell an veränderte Benutzeranforderungen und Marktbedingungen anzupassen.</p>



<h3 class="wp-block-heading">Optimale Anwendungsmethoden </h3>



<h4 class="wp-block-heading">Für eine erfolgreiche Anwendung des inkrementellen Entwicklungsmodells gilt es, einige Schlüsselelemente zu berücksichtigen:</h4>



<ol class="wp-block-list">
<li><strong>Klare Definition der Inkremente</strong>: Teams sollten jedes Inkrement klar definieren und festlegen, welche Funktionen es umfasst.</li>



<li><strong>Kontinuierliche Integration und Testing</strong>: Die kontinuierliche Integration neuer Inkremente und deren umfassendes Testing sind unerlässlich. Dadurch lassen sich Fehler frühzeitig identifizieren und somit die Softwarequalität sichern. (Siehe meinen Beitrag über <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/">CI/CD – Continuous Integration und Continuous Deployment</a>.)</li>



<li><strong>Nutzerfeedback einbeziehen</strong>: Entwicklerteams müssen Nutzerfeedback aktiv einfordern und in den Entwicklungsprozess integrieren, um die Software stetig zu verbessern.</li>
</ol>



<h3 class="wp-block-heading">Inkrementelles Entwicklungsmodell Beispiele aus der Praxis</h3>



<ol class="wp-block-list">
<li>Mobile Applikationen: Bei der Entwicklung mobiler Apps hat sich das inkrementelle Modell als besonders effektiv erwiesen. Entwicklerteams können einzelne Funktionen wie Benutzeranmeldung, Profilerstellung und Nachrichtenfunktion in separaten Inkrementen implementieren und ausliefern.</li>



<li>Web-Plattformen: Auch im Bereich der Web-Entwicklung findet das inkrementelle Modell breite Anwendung. Beispielsweise kann ein E-Commerce-Unternehmen seinen Online-Shop schrittweise um Funktionen wie Produktsuche, Warenkorb und Zahlungsabwicklung erweitern.</li>
</ol>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ein inkrementelles Entwicklungsmodell stellt einen flexiblen und effizienten Ansatz in der Softwareentwicklung dar. Durch die Zerlegung des Gesamtprojekts in kleinere Teile, die man schrittweise implementiert und testet, ermöglicht eine schnelle Reaktion auf Benutzerfeedback und sich verändernde Anforderungen. Zahlreiche Erfolgsbeispiele aus der Praxis belegen die Effektivität dieses Modells. Dies macht es zu einer attraktiven Wahl für Softwareentwicklungsprojekte unterschiedlichster Art.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/24/inkrementelles-entwicklungsmodell-kleine-schritte-grosse-fortschritte/">Inkrementelles Entwicklungsmodell &#8211; Kleine Schritte, große Fortschritte</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/10/24/inkrementelles-entwicklungsmodell-kleine-schritte-grosse-fortschritte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2894</post-id>	</item>
		<item>
		<title>Impact Analyse &#8211; Risiken minimieren und Effizienz steigern</title>
		<link>https://ceosbay.com/2023/07/19/impact-analyse-risiken-minimieren-und-effizienz-steigern/</link>
					<comments>https://ceosbay.com/2023/07/19/impact-analyse-risiken-minimieren-und-effizienz-steigern/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 19 Jul 2023 21:24:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Code-Analyse]]></category>
		<category><![CDATA[Datenflussanalyse]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Effizienz]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Impact]]></category>
		<category><![CDATA[Impact Analyse]]></category>
		<category><![CDATA[Kritisch]]></category>
		<category><![CDATA[Kundenzufriedenheit]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Risiko]]></category>
		<category><![CDATA[Risikominimierung]]></category>
		<category><![CDATA[Software-Testing]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testeffizienz]]></category>
		<category><![CDATA[Testpriorisierung]]></category>
		<category><![CDATA[Teststrategien]]></category>
		<category><![CDATA[Verbesserung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1957</guid>

					<description><![CDATA[<p>Impact Analyse, oft als Veränderungs- oder Auswirkungsanalyse bezeichnet, ist ein entscheidender Schritt in der Softwareentwicklung und -prüfung, der dazu beiträgt, die Auswirkungen von geplanten Softwareänderungen zu verstehen. Dieser Prozess ist nicht nur wichtig für die &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/19/impact-analyse-risiken-minimieren-und-effizienz-steigern/">Impact Analyse &#8211; Risiken minimieren und Effizienz steigern</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Impact Analyse, oft als Veränderungs- oder Auswirkungsanalyse bezeichnet, ist ein entscheidender Schritt in der Softwareentwicklung und -prüfung, der dazu beiträgt, die Auswirkungen von geplanten Softwareänderungen zu verstehen. Dieser Prozess ist nicht nur wichtig für die Verbesserung der Softwarequalität, sondern auch für das effektive Management von Ressourcen und Zeit. In diesem Beitrag versuche ich die Grundlagen der Impact Analyse zu erläutern, ihre Vorteile aufzuzeigen und wie man sie im Kontext des Software-Tests am besten einsetzt.</p>



<h2 class="wp-block-heading">Grundlagen der Impact Analyse</h2>



<p>Es ist eine Methode zur Identifizierung und Bewertung der Auswirkungen, die eine Änderung oder Aktualisierung in einem Softwareprodukt verursachen kann. Sie beinhaltet die Beurteilung von Änderungen an Anforderungen, Systemkomponenten oder Implementierungsdetails und die Analyse der potenziellen Folgen dieser Änderungen auf verschiedene Bereiche wie Leistung, Sicherheit und Benutzererfahrung.</p>



<h2 class="wp-block-heading">Vorteile der Impact Analyse im Software-Testing</h2>



<p>Die Impact Analyse bietet mehrere Vorteile im Bereich des Software-Testings. Sie unterstützt Teams dabei:</p>



<ol class="wp-block-list">
<li><strong>Priorisierung von Testfällen:</strong> Mit der Impact Analyse können Tester die Testfälle identifizieren und priorisieren, die am stärksten von den geplanten Änderungen betroffen sind. Das spart Zeit und Ressourcen und ermöglicht den Teams, sich auf die kritischsten Testfälle zu konzentrieren.</li>



<li><strong>Minimierung von Risiken:</strong> Sie hilft dabei, Risiken im Zusammenhang mit Änderungen frühzeitig zu identifizieren und zu minimieren. Durch die frühzeitige Erkennung von potenziellen Problemen können Teams geeignete Maßnahmen ergreifen, um sicherzustellen, dass die Qualität der Software nicht beeinträchtigt wird.</li>



<li><strong>Verbesserung der Effizienz:</strong> Durch die Kenntnis der Auswirkungen einer Änderung können die Teams ihre Teststrategien effizienter gestalten und die Testabdeckung verbessern.</li>
</ol>



<h2 class="wp-block-heading">Durchführung der Impact Analyse im Software-Testing</h2>



<p>Die Impact Analyse im Software-Testing beinhaltet typischerweise die folgenden Schritte:</p>



<ol class="wp-block-list">
<li><strong>Identifikation der Änderungen:</strong> Das Testteam muss zunächst die geplanten Änderungen in der Software identifizieren. Diese können sich auf die Anforderungen, die Architektur, das Design oder den Code beziehen.</li>



<li><strong>Analyse der Auswirkungen:</strong> Anschließend analysiert man, welche Bereiche der Software von diesen Änderungen betroffen sein könnten. Dazu kann man Tools zur statischen Code-Analyse oder Techniken wie die Datenflussanalyse verwenden.</li>



<li><strong>Bewertung der Auswirkungen:</strong> Nach der Identifizierung der betroffenen Bereiche bewertet man die potenziellen Auswirkungen der Änderungen. Dabei kann man verschiedene Faktoren berücksichtigen, wie die Wahrscheinlichkeit eines Fehlers, die Schwere eines möglichen Fehlers und die Auswirkungen auf die Benutzer.</li>



<li><strong>Planung und Durchführung von Tests:</strong> Basierend auf der Bewertung der Auswirkungen erstellt man neue Testfälle oder passt bestehende Tests gegebenenfalls an und führt diese aus.</li>
</ol>



<h2 class="wp-block-heading">Fazit:</h2>



<p>Zusammenfassend ist die Impact Analyse ein wesentliches Werkzeug im Software-Testing. Durch die Identifikation und Bewertung der Auswirkungen von Änderungen auf die Softwarequalität unterstützt sie Teams dabei, Risiken zu minimieren, Testfälle effektiv zu priorisieren und die Softwarequalität zu verbessern. Ein effektiver Einsatz der kann dazu beitragen, die Effizienz des Testprozesses erheblich zu steigern und letztendlich eine höhere Kundenzufriedenheit zu erzielen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/19/impact-analyse-risiken-minimieren-und-effizienz-steigern/">Impact Analyse &#8211; Risiken minimieren und Effizienz steigern</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/07/19/impact-analyse-risiken-minimieren-und-effizienz-steigern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1957</post-id>	</item>
		<item>
		<title>Test-Harnisch &#8211; Qualität und Zuverlässigkeit von Anfang an durch effektive Teststrategien</title>
		<link>https://ceosbay.com/2023/04/15/erklaerung-test-harnisch/</link>
					<comments>https://ceosbay.com/2023/04/15/erklaerung-test-harnisch/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 15 Apr 2023 13:47:35 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Automatisieren]]></category>
		<category><![CDATA[CD/CI]]></category>
		<category><![CDATA[Continious]]></category>
		<category><![CDATA[Continous Delivery]]></category>
		<category><![CDATA[Continous Integration]]></category>
		<category><![CDATA[Continuous]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Effizienz]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Ergebnisse]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Frame]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Harness]]></category>
		<category><![CDATA[Harnische]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Jasmine]]></category>
		<category><![CDATA[Kontinuierlich]]></category>
		<category><![CDATA[Kontinuierliches]]></category>
		<category><![CDATA[Manuell]]></category>
		<category><![CDATA[NG]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Pytest]]></category>
		<category><![CDATA[Sammlung]]></category>
		<category><![CDATA[Sec]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Skripte]]></category>
		<category><![CDATA[Softwareanwendungen]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testdaten]]></category>
		<category><![CDATA[Testergebnisse]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Testtreiber]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Vereinfachung]]></category>
		<category><![CDATA[Wiederverwendbarkeit]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1476</guid>

					<description><![CDATA[<p>In der Welt der Softwareentwicklung ist Qualitätssicherung ein zentrales Thema. Um die Stabilität, Leistung und Effizienz von Softwareanwendungen zu gewährleisten, müssen Entwickler und Tester den Code durch eine Vielzahl von Tests validieren. Eine effiziente Methode &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/15/erklaerung-test-harnisch/">Test-Harnisch &#8211; Qualität und Zuverlässigkeit von Anfang an durch effektive Teststrategien</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der Welt der Softwareentwicklung ist Qualitätssicherung ein zentrales Thema. Um die Stabilität, Leistung und Effizienz von Softwareanwendungen zu gewährleisten, müssen Entwickler und Tester den Code durch eine Vielzahl von Tests validieren. Eine effiziente Methode zur Automatisierung und Verwaltung dieser Tests ist der Einsatz von Test-Harnischen.</p>



<h3 class="wp-block-heading">Was ist ein Test-Harnisch?</h3>



<p>Ein Test-Harnisch (engl. test harness) ist ein <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> oder eine Sammlung von Tools, die dazu beitragen, das Testen von Softwareanwendungen zu automatisieren, zu koordinieren und zu überwachen. Im Wesentlichen stellt ein Test-Harnisch eine Umgebung bereit, in der Entwickler und Tester den Code einer Anwendung testen und sicherstellen können, dass er korrekt funktioniert und die Anforderungen erfüllt. Man kann Test-Harnische sowohl für manuelles als auch für automatisiertes Testen verwenden.</p>



<h3 class="wp-block-heading">Funktionsweise eines Test-Harnisch</h3>



<h4 class="wp-block-heading">Ein Test-Harnisch besteht aus vier Hauptkomponenten:</h4>



<ol class="wp-block-list" type="1">
<li><strong>Testtreiber</strong>: Der Testtreiber ist für die Ausführung der Tests verantwortlich. Er stellt die Schnittstelle zur Verfügung, über die die Tester die Testfälle ausführen und die Ergebnisse erfassen können.</li>



<li><strong>Testdaten</strong>: Testdaten sind die Eingaben, die man während des Testprozesses verwendet. Sie bestehen in der Regel aus verschiedenen Datentypen, die man verwendet, um die verschiedenen Funktionen und Komponenten der Anwendung zu testen.</li>



<li><strong>Testskripte</strong>: Testskripte sind Skripte, die den Testprozess automatisieren. Sie enthalten Anweisungen, wie die Tests ausgeführt und die Analyse der Ergebnisse stattfinden soll.</li>



<li><strong>Testergebnisse</strong>: Testergebnisse sind die gesammelten Informationen, die aus dem Testprozess resultieren. Sie enthalten Daten über die Leistung der Anwendung, Fehler, die während des Testprozesses aufgetreten sind, und Informationen über die Korrektheit der Funktionen.</li>
</ol>



<h3 class="wp-block-heading">Vorteile von Test-Harnischen</h3>



<ul class="wp-block-list">
<li><strong>Automatisierung</strong>: Test-Harnische automatisieren den Testprozess und reduzieren so den Zeitaufwand und die Mühe, die mit manuellem Testen verbunden sind. Dies ermöglicht es Entwicklern und Testern, sich auf die Analyse der Testergebnisse und die Verbesserung der Softwarequalität zu konzentrieren.</li>



<li><strong>Wiederverwendbarkeit</strong>: Test-Harnische ermöglichen es, Testfälle und Testdaten wiederverwendbar zu gestalten, sodass man sie in verschiedenen Projekten und Anwendungen einsetzen kann.</li>



<li><strong>Vereinfachung</strong>: Test-Harnische vereinfachen den Testprozess, indem sie alle Testaktivitäten zentralisieren und eine einheitliche Testumgebung bereitstellen.</li>



<li><strong>Effizienz</strong>: Test-Harnische steigern die Effizienz des Testprozesses, indem sie die Testabdeckung erhöhen, den Testaufwand reduzieren und eine schnellere Fehlerbehebung ermöglichen.</li>



<li><strong>Kontinuierliche Integration</strong>: Test-Harnische unterstützen kontinuierliche Integration (CI) und kontinuierliche Bereitstellung (CD) in der Softwareentwicklung, indem sie die automatisierte Ausführung von Tests bei jedem Commit oder Build sicherstellen. Siehe hierzu den <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Beitrag</a> über <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">CI/CD</a>.</li>



<li><strong>Berichterstattung und Analyse</strong>: Test-Harnische bieten umfangreiche Berichtsfunktionen, die es Entwicklern und Testern ermöglichen, den Fortschritt und den Status der Tests zu überwachen, Fehler und Schwachstellen schnell zu identifizieren und fundierte Entscheidungen über die Softwarequalität zu treffen.</li>
</ul>



<h3 class="wp-block-heading">Gängige Test-Harnisch-Tools in der Softwarebranche</h3>



<p>Es gibt viele Test-Harnisch-Tools und <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> auf dem Markt, die verschiedene Programmiersprachen und Anforderungen unterstützen. Einige der bekanntesten sind:</p>



<p><strong>JUnit</strong>: <a href="https://ceosbay.com/2023/03/18/erklaerung-junit/" target="_blank" rel="noreferrer noopener">JUnit</a> ist ein weit verbreitetes Testframework für Java-Anwendungen, das Test-Harnisch-Funktionalitäten wie Testausführung, Testdatenverwaltung und Ergebnisberichterstattung bietet.</p>



<p><strong>TestNG</strong>: TestNG ist ein Testframework für Java-Programme, das auf <a href="https://ceosbay.com/2023/03/18/erklaerung-junit/" target="_blank" rel="noreferrer noopener">JUnit</a> basiert und erweiterte Funktionen wie Paralleltestausführung, Testkonfiguration und flexible Testskripterstellung bietet.</p>



<p><strong>NUnit</strong>: NUnit ist ein Testframework für .NET-Anwendungen, das Test-Harnisch-Funktionen wie Testausführung, Testdatenverwaltung und Berichterstattung bietet.</p>



<p><strong>Pytest</strong>: Pytest ist ein Testframework für Python-Anwendungen, das Test-Harnisch-Funktionalitäten wie Testausführung, Testdatenverwaltung und Ergebnisberichterstattung bietet.</p>



<p><strong>Jasmine</strong>: Jasmine ist ein Testframework für JavaScript-Anwendungen, das Test-Harnisch-Funktionalitäten wie Testausführung, Testdatenverwaltung und Ergebnisberichterstattung bietet.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p>Test-Harnische spielen eine entscheidende Rolle in der Softwareentwicklung, indem sie den Testprozess automatisieren, vereinfachen und effizienter gestalten. Durch den Einsatz von Test-Harnischen können Entwickler und Tester sicherstellen, dass ihre Anwendungen die gewünschte Qualität erfüllen und potenzielle Fehler frühzeitig identifiziert und behoben sind, bevor der Release stattfindet. Mit der wachsenden Anzahl von Test-Harnisch-Tools und <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> auf dem Markt können Entwickler und Tester leicht eine Lösung finden, die ihren spezifischen Anforderungen und Projektzielen entspricht.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/15/erklaerung-test-harnisch/">Test-Harnisch &#8211; Qualität und Zuverlässigkeit von Anfang an durch effektive Teststrategien</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/15/erklaerung-test-harnisch/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1476</post-id>	</item>
		<item>
		<title>SCTM &#8211; Sicherheitsbewusstes Testmanagement für vertrauenswürdige und robuste Softwarelösungen</title>
		<link>https://ceosbay.com/2023/04/05/erklaerung-sctm/</link>
					<comments>https://ceosbay.com/2023/04/05/erklaerung-sctm/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 05 Apr 2023 16:50:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Analytisch]]></category>
		<category><![CDATA[Central]]></category>
		<category><![CDATA[Effizienz]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[Micro]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Prozessoptimierung]]></category>
		<category><![CDATA[SC]]></category>
		<category><![CDATA[SCTM]]></category>
		<category><![CDATA[Silk]]></category>
		<category><![CDATA[SilkCentral]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testablauf]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testfälle]]></category>
		<category><![CDATA[Testlauf]]></category>
		<category><![CDATA[Testplan]]></category>
		<category><![CDATA[TestTeams]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[VersionOne]]></category>
		<category><![CDATA[Vorteile]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1323</guid>

					<description><![CDATA[<p>Der SilkCentral Test Manager (SCTM) ist ein Testmanagement-Tool, von Micro Focus, um die Effizienz und Effektivität von Softwaretestprozessen zu verbessern. Mit einer umfassenden Palette von Funktionen ermöglicht SCTM-Testteams, Testpläne und -fälle zu erstellen, auszuführen und &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/05/erklaerung-sctm/">SCTM &#8211; Sicherheitsbewusstes Testmanagement für vertrauenswürdige und robuste Softwarelösungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Der SilkCentral Test Manager (SCTM) ist ein Testmanagement-Tool, von Micro Focus, um die Effizienz und Effektivität von Softwaretestprozessen zu verbessern. Mit einer umfassenden Palette von Funktionen ermöglicht SCTM-Testteams, Testpläne und -fälle zu erstellen, auszuführen und zu verwalten sowie Testdaten und -ergebnisse zentral zu speichern und zu analysieren.&nbsp;</p>



<p>Hauptmerkmale des SilkCentral Test Managers</p>



<ul class="wp-block-list">
<li>Der SCTM unterstützt Testteams bei der Erstellung, Organisation und Verwaltung von Testplänen. Wobei es sowohl manuelle als auch automatisierte Testfälle berücksichtigt. Mit dem hierarchischen Ansatz kann man Testpläne in einer strukturierten Weise erstellen, sodass Testteams leicht Prioritäten setzen und Testfälle nach Modulen oder Funktionen gruppieren können.</li>
</ul>



<ul class="wp-block-list">
<li>Man kann damit Testfälle erstellen und die Schritte, die zur Durchführung des Tests erforderlich sind und die erwarteten Ergebnisse dokumentieren. Auch die Verknüpfung der Testfälle mit Anforderungen sowie Defekten sind möglich. Dies schafft die Möglichkeit einer lückenlosen Nachverfolg- und Rückverfolgbarkeit.</li>
</ul>



<ul class="wp-block-list">
<li>Bei der Testausführung selbst ermöglicht der SCTM den Testteams, sowohl manuelle als auch automatisierte Testfälle auszuführen. Dadurch kann man Fortschritte und Ergebnisse besser verfolgen. Testmanager können Testläufe planen und steuern während man die Testausführung nach Bedarf anpassen kann. Integrationsmöglichkeiten mit anderen Testautomatisierungstools wie Silk Test und Selenium erweitern die Automatisierungsfähigkeiten des SCTM.</li>
</ul>



<ul class="wp-block-list">
<li>Der SCTM verwaltet Testdaten zentral und stellt sicher, dass alle Testergebnisse und -daten an einem Ort gespeichert und zugänglich sind. Testmanager können auf Testdaten und -ergebnisse zugreifen, um schnell Probleme zu erkennen und entsprechende Maßnahmen zu ergreifen.</li>
</ul>



<ul class="wp-block-list">
<li>Umfangreiche Berichts- und Analysefunktionen, helfen dabei, Erkenntnisse aus Testaktivitäten zu gewinnen und die Qualität der Softwareprodukte kontinuierlich zu verbessern. Vorgefertigte Berichte und Dashboards ermöglichen es Testmanagern, den Fortschritt und die Ergebnisse von Testaktivitäten leicht zu visualisieren und zu kommunizieren.</li>
</ul>



<ul class="wp-block-list">
<li>Man kann den SCTM mit einer Vielzahl von Tools und Plattformen integrieren, um Testteams bei der Einrichtung eines nahtlosen Testprozesses zu unterstützen. Integrationen mit Anforderungsmanagement-, Fehlerverfolgungs-, Versionskontroll- und Testautomatisierungstools ermöglichen eine lückenlose Zusammenarbeit und verbessern die Transparenz und Effizienz des gesamten Testprozesses.&nbsp;</li>
</ul>



<h3 class="wp-block-heading">Einige der wichtigsten Integrationen sind:</h3>



<p>a. Anforderungsmanagement-Tools: Durch die Integration mit Anforderungsmanagement-Tools wie Jira, TFS oder VersionOne können Testteams Anforderungen erfassen, verwalten und verfolgen und diese direkt mit Testfällen verknüpfen. Diese Verknüpfung verbessert die Rückverfolgbarkeit und erleichtert die Identifizierung von Abhängigkeiten zwischen Anforderungen und Testfällen.</p>



<p>b. Fehlerverfolgungs-Tools: Die Integration mit Fehlerverfolgungssystemen wie Bugzilla, Mantis oder Jira ermöglicht es Testteams, Defekte direkt aus dem SCTM heraus zu melden und zu verwalten. Dadurch kann man gegebenenfalls die Kommunikation zwischen Testern, Entwicklern und Stakeholdern verbessern und die Zeit zur Behebung von Fehlern verkürzen.</p>



<p>c. Versionskontrollsysteme: Durch die Integration mit Versionskontrollsystemen wie Git, Subversion oder Mercurial können Testteams ihre Testartefakte verwalten, versionieren und nachverfolgen. Diese Integration unterstützt die Zusammenarbeit und Kontrolle über die Testdokumentation, was zu einer verbesserten Qualitätssicherung führen kann.</p>



<p>d. Testautomatisierungstools: SCTM bietet Integrationen mit einer Vielzahl von Testautomatisierungstools wie Silk Test, <a href="https://ceosbay.com/2022/11/25/selenium/" target="_blank" rel="noreferrer noopener">Selenium</a>, <a href="https://ceosbay.com/2023/03/18/erklaerung-junit/" target="_blank" rel="noreferrer noopener">JUnit</a>, NUnit und anderen. Durch die Integration dieser Tools können Testteams ihre Testfälle automatisieren, Testläufe planen und die Testabdeckung erhöhen, um die Softwarequalität weiter zu verbessern.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Der SilkCentral Test Manager ist ein leistungsstarkes Testmanagement-Tool, das Testteams bei der Planung, Durchführung und Verwaltung von Testaktivitäten unterstützt. Mit der umfassenden Palette von Funktionen und Integrationen hilft der SCTM-Testteams, ihre Testprozesse zu optimieren, die Softwarequalität zu verbessern und die Kommunikation und Zusammenarbeit zwischen den verschiedenen Mitgliedern eines Softwareentwicklungsteams zu stärken. Insgesamt ist der SCTM ein wertvolles Werkzeug für Testteams. </p>



<p>Doch wie bei jedem Testmanagement-Tool gibt es auch beim SilkCentral Test Manager (SCTM) einige Makel oder Nachteile, die potenzielle Anwender berücksichtigen sollten. Da SCTM eine Vielzahl von Funktionen und Einstellungsoptionen bietet, kann es für neue Benutzer schwierig sein, sich zurechtzufinden. Die Lernkurve kann steil sein und es kann einige Zeit dauern, bis sich Benutzer mit der Benutzeroberfläche und den verschiedenen Funktionen vertraut gemacht haben. Darüber hinaus ist SCTM nicht das günstigste Testmanagement-Tool auf dem Markt. Je nach Bedarf und Größe des Testteams kann die Investition in eine SCTM-Lizenz eine erhebliche finanzielle Verpflichtung darstellen, insbesondere für kleinere Unternehmen oder Start-ups. </p>



<p>Die umfangreiche Funktionspalette von SCTM kann für manche Benutzer überwältigend sein, insbesondere wenn man nicht alle Funktionen benötigt. Die Komplexität des Tools kann dazu führen, dass einige Benutzer Schwierigkeiten haben, effektive Testprozesse einzurichten und zu verwalten. Obwohl SCTM in vielen Bereichen anpassbar ist, sind die Anpassungsmöglichkeiten möglicherweise nicht so umfassend wie bei einigen anderen Testmanagement-Tools. Dadurch kann es schwierig sein, das Tool an bestimmte Arbeitsabläufe oder Anforderungen eines Testteams anzupassen. </p>



<p>Aus Onlineforen geht hervor, dass Benutzer manchmal von unzureichendem oder langsamem Kundensupport seitens des Herstellers berichten. Dies kann frustrierend sein, wenn Testteams auf Probleme stoßen, die sie ohne Unterstützung nicht lösen können. Trotz dieser Makel bleibt SCTM ein leistungsstarkes Testmanagement-Tool mit einer Vielzahl von Funktionen und Integrationen, die für viele Testteams von großem Nutzen sein können. Bei der Auswahl eines Testmanagement-Tools sollten potenzielle Benutzer jedoch die spezifischen Anforderungen ihres Testteams sowie ihr Budget und ihre Ressourcen berücksichtigen. Es kann auch hilfreich sein, mehrere Tools zu evaluieren, um herauszufinden, welches am besten zu den Bedürfnissen des Teams passt.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/05/erklaerung-sctm/">SCTM &#8211; Sicherheitsbewusstes Testmanagement für vertrauenswürdige und robuste Softwarelösungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/05/erklaerung-sctm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1323</post-id>	</item>
		<item>
		<title>JaCoCo &#8211; Messen und Optimieren von Testabdeckung für robuste Java-Anwendungen</title>
		<link>https://ceosbay.com/2023/03/25/erklaerung-jacoco/</link>
					<comments>https://ceosbay.com/2023/03/25/erklaerung-jacoco/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 25 Mar 2023 20:22:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Abdeckung]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[City]]></category>
		<category><![CDATA[Co]]></category>
		<category><![CDATA[Codeabdeckungsanalyse]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[Ecl]]></category>
		<category><![CDATA[EclEmma]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[EMMA]]></category>
		<category><![CDATA[Fälle]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Gradle]]></category>
		<category><![CDATA[Grün]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IDEA]]></category>
		<category><![CDATA[Intelli]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[J]]></category>
		<category><![CDATA[Ja]]></category>
		<category><![CDATA[Jacoco]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Modular]]></category>
		<category><![CDATA[Modulare]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[Qube]]></category>
		<category><![CDATA[Rot]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Sonar]]></category>
		<category><![CDATA[SonarQube]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testfälle]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Visual]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1238</guid>

					<description><![CDATA[<p>JaCoCo ist ein Open-Source-Toolkit zur Analyse und Anzeige der Java-Codeabdeckung. Es wird unter der Eclipse Public License vertrieben. Man hat es als Ersatz für EMMA entwickelt, unter dem Dach des EclEmma Plugins für Eclipse. Im &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/25/erklaerung-jacoco/">JaCoCo &#8211; Messen und Optimieren von Testabdeckung für robuste Java-Anwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>JaCoCo ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-Toolkit zur Analyse und Anzeige der <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Codeabdeckung. Es wird unter der <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/" target="_blank" rel="noreferrer noopener">Eclipse</a> Public License vertrieben. Man hat es als Ersatz für EMMA entwickelt, unter dem Dach des EclEmma Plugins für <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/" target="_blank" rel="noreferrer noopener">Eclipse</a>.</p>



<p>Im Grunde genommen handelt es sich dabei um zwei Arten von Tools, die zum einen Anweisungen dem <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Quellcode hinzufügen und dessen Neukompilierung einfordern und zum anderen Tools, die den Bytecode entweder vor oder während der Ausführung instrumentieren. Das Ziel von JaCoCo ist es, herauszufinden, welche Teile des Codes getestet werden, indem es die Codezeilen registriert, die man bei der Ausführung eines Tests ausführt. <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">TDD</a> bzw. <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">Test Driven Development</a> ist diesbezüglich ebenfalls ein gutes Stichwort.</p>



<h3 class="wp-block-heading">Features von JaCoCo</h3>



<ul class="wp-block-list">
<li>Abdeckungsanalyse von Anweisungen (C0), Verzweigungen (C1), Zeilen, Methoden, Typen und zyklomatischer Komplexität (McCabe-Metrik).</li>



<li>Basiert auf <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Bytecode und funktioniert daher auch ohne Quelldateien.</li>



<li>Einfache Integration durch <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Agent-basierte On-the-fly-Instrumentierung. Andere Integrationsszenarien wie benutzerdefinierte class loader sind über die API möglich.</li>



<li><a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>-unabhängig: Reibungslose Integration in <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/" target="_blank" rel="noreferrer noopener">VM</a>-basierte Anwendungen wie einfache <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Programme, OSGi-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a>, Web-Container oder EJB-Server.</li>



<li>Kompatibel mit allen freigegebenen <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Klassendateiversionen.</li>



<li>Unterstützung für verschiedene JVM-Sprachen.</li>



<li>Verschiedene Berichtsformate (<a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>, <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>, CSV).</li>



<li>Remote-Protokoll und JMX-Steuerung zur Anforderung von Ausführungsdaten-Dumps vom Coverage Agent zu jedem beliebigen Zeitpunkt.</li>



<li>Ant-Tasks zum Sammeln und Verwalten von Ausführungsdaten und zum Erstellen strukturierter Abdeckungsberichte.</li>



<li><a href="https://ceosbay.com/2022/12/22/erklaerung-maven/" target="_blank" rel="noreferrer noopener">Maven</a>-Plug-in zum Sammeln von Abdeckungsinformationen und Erstellen von Berichten in <a href="https://ceosbay.com/2022/12/22/erklaerung-maven/" target="_blank" rel="noreferrer noopener">Maven</a>-Builds.</li>
</ul>



<p>JaCoCo bietet die Instructions, Line- und Branchabdeckung. Im Gegensatz zu beispielsweise Atlassian Clover und OpenClover, die eine Instrumentierung des Quellcodes erfordern, kann JaCoCo <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Bytecode mit zwei verschiedenen Ansätzen instrumentieren:</p>



<ol class="wp-block-list" type="1">
<li>JCov on the fly, während der Code mit einem <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Agenten ausgeführt wird beispielsweise wie Cobertura und JCov vor der Ausführung (offline)</li>



<li>Man kann es aber auch so konfigurieren, dass man die gesammelten Daten in einer Datei speichert oder via TCP versendet. Im Gegensatz zu Cobertura und EMMA ist die Unterstützung von so ziemlich allen <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Versionen ab der <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Version 7 gewährleistet.</li>
</ol>



<h3 class="wp-block-heading">Tools, die JaCoCo verwenden oder enthalten</h3>



<p>Einige davon habe ich bereits in diversen Beiträgen thematisiert. Mit einem Klick auf das jeweilige Tool kommt man auf den jeweiligen Beitrag.</p>



<ul class="wp-block-list">
<li><a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/" target="_blank" rel="noreferrer noopener">SonarQube</a> JaCoCo Plugin &#8211; Standardmäßig für Code Abdeckungsanalysen innerhalb der Code-Qualitätsmanagement-Plattform</li>



<li>EclEmma <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/" target="_blank" rel="noreferrer noopener">Eclipse</a> (Software) Code Coverage Plugin</li>



<li><a href="https://ceosbay.com/2022/12/18/erklaerung-jenkins/" target="_blank" rel="noreferrer noopener">Jenkins</a> JaCoCo Plugin</li>



<li>Netbeans JaCoCo support</li>



<li><a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/" target="_blank" rel="noreferrer noopener">IntelliJ IDEA</a> (Seit Version 11)</li>



<li>Gradle JaCoCo Plugin</li>



<li>Visual Studio Team Services</li>



<li>TeamCity</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>JaCoCo bietet sich für die Codeabdeckungsanalyse bei der modularen Softwareentwicklung bzw. bei den Unit Tests an. Die Abdeckungsgrade geben an, wie viele Anweisungen, Zweige usw. die Tests durchlaufen. Auf Basis der so gewonnenen Erkenntnisse kann man weitere sinnvolle Testfälle ermitteln oder aber nicht beanspruchten bzw. toten Code entfernen. Es gibt kein allgemeingültiges Mindestmaß an Codeabdeckung. Man definiert die jeweils erforderliche Testabdeckung in Anbetracht des Anwendungsfalls nach einer Risikoeinschätzung sowie der eigenen Entwickler-Fähigkeiten.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/25/erklaerung-jacoco/">JaCoCo &#8211; Messen und Optimieren von Testabdeckung für robuste Java-Anwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/25/erklaerung-jacoco/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1238</post-id>	</item>
		<item>
		<title>SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</title>
		<link>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/</link>
					<comments>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 17 Mar 2023 16:12:48 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[1061]]></category>
		<category><![CDATA[1998]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Anwendung]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Checkstyle]]></category>
		<category><![CDATA[Cobol]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Codebasis]]></category>
		<category><![CDATA[Entwicklungsprozess]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[FindBugs]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[IEEE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Komplexität]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[PMD]]></category>
		<category><![CDATA[Prüfung]]></category>
		<category><![CDATA[Qube]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Quelltext]]></category>
		<category><![CDATA[Rechner]]></category>
		<category><![CDATA[Richtlinien]]></category>
		<category><![CDATA[Schnittstellen]]></category>
		<category><![CDATA[Schulden]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sonar]]></category>
		<category><![CDATA[SonarQube]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[Sting]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Überprüfen]]></category>
		<category><![CDATA[Zyklomatisch]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1176</guid>

					<description><![CDATA[<p>SonarQube früher Sonar, ist eine Plattform für die statische Analyse und Bewertung der technischen Qualität von Quelltext bzw. Code. SonarQube analysiert den Quelltext hinsichtlich verschiedener Qualitätsmerkmale und stellt die Ergebnisse über eine Website dar. SonarQube &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SonarQube früher Sonar, ist eine Plattform für die statische Analyse und Bewertung der technischen Qualität von Quelltext bzw. Code. SonarQube analysiert den Quelltext hinsichtlich verschiedener Qualitätsmerkmale und stellt die Ergebnisse über eine Website dar. SonarQube ist in <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> programmiert, unterstützt aber neben der Analyse von <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Anwendungen mit entsprechenden Plugins unter anderem die Programmiersprachen <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>, Groovy, Flex, PHP, PL/SQL, C#, Cobol und die des .Net-Frameworks.</p>



<h3 class="wp-block-heading">Wie funktioniert SonarQube?</h3>



<p><strong>SonarQube besteht aus drei Komponenten</strong></p>



<ol class="wp-block-list" type="1">
<li>Einem Modul für Build-Management-Tools wie <a href="https://ceosbay.com/2022/12/22/erklaerung-maven/" target="_blank" rel="noreferrer noopener">Apache Maven</a> oder Apache Ant. (Hauptsächlich für die Analyse des Quelltextes hinsichtlich verschiedener Qualitätsmerkmale.)</li>



<li>Einer Datenbank, für Speicherung der Ergebnisse der Qualitätsanalyse.</li>



<li>Einer Website für die visuelle Darstellung, Auswertung und das Management der Qualitätsanalyse-Ergebnisse.</li>
</ol>



<p>Durch diese Architektur kann man sowohl eine Prüfung des Quelltextes auf dem Entwicklungsrechner ermöglichen als auch eine Einbindung von SonarQube in den Entwicklungsprozess gewährleisten. Dies unterstützt die Ermittlung der Qualitätsmetriken auf einem Build-Server für die kontinuierliche Integration.</p>



<p>SonarQube analysiert den Quelltext hinsichtlich der Abdeckung durch Modultests, checkt den Quellcode nach doppeltem Code und in Bezug auf die Komplexität. Auch werden unter anderem potenzielle Fehler im Code, Kodier-Richtlinien als auch Kommentare überprüft.</p>



<h3 class="wp-block-heading">Modularer Aufbau und Erweiterungen</h3>



<p>SonarQube ist modular aufgebaut und integriert selbst einige bekannte Entwicklungswerkzeuge zur Analyse der Codequalität, darunter PMD und Checkstyle für die Erkennung von doppeltem Code für die Prüfung von Kodier-Richtlinien. Damit wird unter anderem auch nach ineffizientem Code gesuche. FindBugs dient beispielsweise zum Aufdecken potenzieller Fehler sowie Surefire und Cobertura zur Messung der Qualität der Modultests.</p>



<p>Diese Werkzeuge nutzen entsprechend ihrer Natur und Einsatzgebiete Metriken, um die jeweiligen Auswertungen bzw. Statistiken zu erzeugen. Der Name „Metrik“ trägt jedoch wenig Bedeutung von dem in sich, was eine Metrik ausmacht. Schlägt man nämlich nach woher der Name kommt, landet man im Lateinischen: „ars metrica„, die Lehre von den Maßen. Fragt man jedoch das Institute of Electrical and Electronics Engineers, was eine Softwaremetrik ist, erhält man folgende Antwort:</p>



<p>„software quality metric: A function whose inputs are software data and whose output is a single numerical value that can be interpreted as the degree to which software possesses a given attribute that affects its quality.“ „Eine Softwarequalitätsmetrik ist eine Funktion, die eine Software-Einheit in einen Zahlenwert abbildet, der als Erfüllungsgrad einer Qualitätseigenschaft der Software-Einheit interpretierbar ist.“ – IEEE Standard 1061, 1998</p>



<p>Folglich bedeutet dies, dass es sich bei einer Metrik am Ende des Tages um eine Funktion handelt, die für beliebige Eingaben Zahlen erzeugt. Die Beschaffenheit ist so, dass sie, nur so&nbsp;</p>



<p>lange sie von derselben Funktion erzeugt wurden, vergleichbar sind. Dadurch kann man Rückschlüsse auf die Eingabe mit Hinblick auf die Funktion erzielen.</p>



<p>Ein Beispiel dafür ist die McCabe-Metrik, auch zyklomatische Komplexität genannt. Diese sehr grundlegende Metrik berechnet die Anzahl der unterschiedlichen Pfade durch ein Stück Code. Die Formel ist relativ einfach: Es wird die Anzahl an Kontrollstrukturen wie if, while, case und boolescher Operatoren wie &amp;&amp; und || summiert und nochmals mit 1 addiert. Möchte man diese Information nochmals anhand eines Beispiels betrachten, sieht es folgendermaßen aus:</p>



<pre class="wp-block-code"><code>String nameDesWochenTags(int nr) {
  switch(nr) {
    case 1: return "Montag";
    case 2: return "Dienstag";
    case 3: return "Mittwoch";
    case 4: return "Donnerstag";
    case 5: return "Freitag";
    case 6: return "Samstag";
    case 7: return "Sonntag";
  }
  return "";
}</code></pre>



<p>Diese relativ einfache Methode gibt den Namen eines Wochentages entsprechend seiner 1-indizierten Position innerhalb der Woche zurück. Ihre zyklomatische Komplexität beträgt 8. Zumal 1 + 7 x case. Dies ist ein verhältnismäßig hoher Wert. Ein Maximalwert von 10 gilt als allgemein akzeptiert und ausreichend erprobt. Um also die Komplexität dieser Methode zu verringern, findet eine Refaktorisierung statt, die folgendermaßen aussehen kann:</p>



<pre class="wp-block-code"><code>String nameDesWochenTags(int nr) {
  String&#91;] names = new String&#91;] {
    "Montag", "Dienstag", "Mittwoch",
    "Donnerstag", "Freitag", "Samstag",
    "Sonntag"
  };
  if(nr) &gt; 0 &amp;&amp; &lt;= names.length) {
    return names&#91;nr - 1];
  }
  return "";
}</code></pre>



<p>Die zyklomatische Komplexität dieser Methode beträgt 3. Zumal 1 + 1 x if + 1 x &amp;&amp;. Durch den unterschiedlichen Ansatz kann man die Komplexität verringern. Dennoch ist es relativ unstrittig, dass die erste Version leichter zu verstehen ist.</p>



<p>Will man nun also alle Tools gemeinsam benutzen, muss man alle konfigurieren und ihre Ergebnisse zusammenführen, damit sich ein Gesamtbild darstellen lässt. Außerdem kommt es dabei zwangsweise zu Dopplungen in ausgewerteten Metriken oder anderen Kennzahlen. PMD beispielsweise besitzt durch seinen relativ vagen Aufgabenbereich Überschneidungen im Hinblick auf Codestil mit checkstyle, während es aber auch genauso wie FindBugs auf toten Code achtet. An solchen und weiteren Stellen kann SonarQube Verbesserungen herbeiführen.</p>



<p>Neben der visuellen Anzeige der Ergebnisse der einzelnen Bereiche, ermöglicht SonarQube das Drill-Down der Ergebnisse bis auf die einzelne Metrik und Codezeile sowie die Verknüpfung der einzelnen Metriken sowie die Darstellung ihrer historischen Entwicklung in einer recht übersichtlichen grafischen Oberfläche.</p>



<p>Über einen ausgeklügelten Plugin-Mechanismus ist eine relativ einfache Integration von Erweiterungen möglich. Neben den Erweiterungen für die Analyse zusätzlicher Programmiersprachen gibt es Plugins für ergänzende Metriken, Governance, Schnittstellen zu Entwicklungsumgebungen, Visualisierungen, Integration sowie zur Berechnung der technischen Schuld(en).</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ich arbeite noch nicht so lange mit SonarQube. Um genau zu sein, habe ich es mir erst heute das erste Mal angeschaut. Zusammenfassend kann ich folgendes sagen:</p>



<p>Statistiken sind zwar interessant und es kann Spaß machen, sich diese anzuschauen, doch ist eine statische Codeanalyse erst dann wirklich vollständig, wenn ein Mindestmaß an Interpretation hineingeflossen ist.</p>



<p>Die Codeanalyse liefert ein gutes Gefühl für die Codebasis. Erst so kann man fundierte Aussagen darüber treffen, welche Bereiche des Projekts besonders gefährdet, instabil oder verbesserungsfähig sind.</p>



<p>Regelmäßige Analysen können die Teammotivation erhöhen. Eine positive Issuebilanz am Ende eines Sprints und aufwärtszeigende Historiengraphen sollten gute Treiber für eine Gruppe Entwickler und ein Beweis für die eigene Leistung sein.</p>



<p>Alles in allem sind Analyseergebnisse immer gut als Argumentationsgrundlage. Mit Hilfe der Projekthistorie, die eine Auswahl gut darstellbarer Kennzahlen beinhaltet, kann man vor Kunden oder Entscheidern besser über ein eventuell nötiges technisches Release diskutieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1176</post-id>	</item>
		<item>
		<title>Parser &#8211; Die Macht der Datenverarbeitung</title>
		<link>https://ceosbay.com/2023/03/15/erklaerung-parser/</link>
					<comments>https://ceosbay.com/2023/03/15/erklaerung-parser/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 15 Mar 2023 15:30:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Dos]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Adventure]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Baumstruktur]]></category>
		<category><![CDATA[Computerlinguistik]]></category>
		<category><![CDATA[Dateien]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Down]]></category>
		<category><![CDATA[Grammatik]]></category>
		<category><![CDATA[Grammatikart]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Kontextsensitive]]></category>
		<category><![CDATA[Mathematisch]]></category>
		<category><![CDATA[Pars]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[Quellen]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Schumaschine]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Verfahren]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[Zerteiler]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1094</guid>

					<description><![CDATA[<p>Ein Parser, von „analysieren“, bzw. lateinisch pars, „Teil“; im Deutschen gelegentlich auch Zerteiler genannt, ist ein Computerprogramm, dass in der Informatik für die Zerlegung und Umwandlung einer Eingabe in ein für die Weiterverarbeitung geeigneteres Format &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/15/erklaerung-parser/">Parser &#8211; Die Macht der Datenverarbeitung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ein Parser, von „analysieren“, bzw. lateinisch pars, „Teil“; im Deutschen gelegentlich auch Zerteiler genannt, ist ein Computerprogramm, dass in der Informatik für die Zerlegung und Umwandlung einer Eingabe in ein für die Weiterverarbeitung geeigneteres Format zuständig ist. Häufig werden Parser eingesetzt, um im Anschluss an den Analysevorgang die Semantik der Eingabe zu erschließen, um im Anschluss Aktionen auszuführen.</p>



<p>Im Vergleich zu einem Recognizer, der die Eingabe analysiert und ausgibt, ob diese im Sinne der Vorgaben richtig oder falsch ist, gibt der Parser die Analyse einer Eingabe in einer gewünschten Form aus und erzeugt zusätzlich Strukturbeschreibungen.</p>



<h3 class="wp-block-heading">Wie funktioniert ein Parser?</h3>



<p>Zur Analyse des Texts verwenden Parser in der Regel einen separaten Lexer. Dieser zerlegt die als Zeichenkette vorliegenden Eingabedaten in Token (Eingabesymbole bzw. „Wörter“, die es versteht). Weil die Zerlegung in Token einer regulären Grammatik folgt, ist der Scanner meist ein endlicher Automat. Token dienen als atomare Eingabezeichen des Parsers. Parser, die keinen separaten Scanner verwenden, nennt man Scannerless Parser.</p>



<p>Der eigentliche Parser als Implementierung eines abstrakten Automaten, meist realisiert als Kellerautomat, kümmert sich dagegen um die Grammatik der Eingabe, führt eine syntaktische Überprüfung der Eingangsdaten durch und erstellt in der Regel aus den Daten einen Ableitungsbaum, den man im Anschluss zur Weiterverarbeitung der Daten verwendet. Typische Anwendungen sind die semantische Analyse, Codegenerierung in einem Compiler oder die Ausführung durch einen Interpreter.</p>



<p>Bei <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a> zerlegt ein lexikalischer Scanner beispielsweise die <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Datei in <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tags und Fließtext. Diese Bestandteile reicht es dann an den Parser weiter. Der Scanner ist also ausschließlich auf das Aussehen der Syntaxelemente aus. Spitze Klammern = <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tag 😉&nbsp;<a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">Siehe auch meinen Beitrag über HTML</a>.</p>



<p>Der Parser übernimmt die übernimmt die Verarbeitung der syntaktischen Zusammenhänge, untersucht, welche Paare von Tags zusammengehören bzw. wie die Tags ineinander verschachtelt sind. Die inhaltliche Bedeutung der Tags interessiert den Parser dagegen nicht. Die Berücksichtigung findet erst in der darauffolgenden Weiterverarbeitung statt.</p>



<p>Veranschaulicht, ist ein Parser die Software, welche die Anweisungen im Quelltext des Users überprüft, weiterverarbeitet und weiterleitet.</p>



<h3 class="wp-block-heading">Welche Typen von Parsern gibt es?</h3>



<p>Man unterscheidet bei der allgemeinen Vorgehensweise verschiedene Parse-Verfahren. Folglich erfolgt die Unterscheidung nach der Reihenfolge, in der die Knoten des Ableitungsbaums erstellt sind. Beispiele hierfür sind: Top-Down, auch theoriegetriebenes Parsing; Bottom-Up, auch eingabegetriebenes Parsing; Left Corner, spezifischer Vorgehensweise (LL, LR, SLR, LALR, LC, …) und Implementierungstechnik (rekursiv absteigend, rekursiv aufsteigend oder tabellengesteuert) unterschieden. Weiter erfolgt die Unterscheidung auch, wie bereits erwähnt, nach der Grammatikart.</p>



<h3 class="wp-block-heading">Parser für kontextsensitive Grammatiken</h3>



<p>Das Parsen wohldefinierter künstlicher Sprachen, hierbei ist natürlich die Rede von Programmiersprachen, ist weniger komplex als das Parsen frei gewachsener natürlicher Sprachen wie Englisch, Deutsch oder einer anderen Sprache, die durch eine Vielzahl von Mehrdeutigkeiten, Irregularitäten und Inkonsistenzen geprägt sind. Wobei man hierüber mehr in der Computerlinguistik erfährt, über die ich in einem zukünftigen Beitrag schreiben werde.</p>



<h3 class="wp-block-heading">Fallbeispiel</h3>



<p>Man setzt Parser häufig ein, um eine Aneinanderreihung von Symbolen zu einer Baumstruktur zu adaptieren. Dies kann bei einem mathematischen Ausdruck folgenderweise aussehen:</p>



<pre class="wp-block-code"><code>7+(7+7)-sin(π) </code></pre>



<figure class="wp-block-table"><table><tbody><tr><td>Symbol</td><td>Kategorie</td><td>Erläuterung</td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>+</td><td>Rechenzeichen</td><td></td></tr><tr><td>(</td><td>Klammer auf</td><td></td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>+</td><td>Rechenzeichen</td><td></td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>)</td><td>Klammer zu</td><td></td></tr><tr><td>&#8211;</td><td>Rechenzeichen</td><td></td></tr><tr><td>sin</td><td>Symbolname</td><td>(hier: die Sinus-Funktion)</td></tr><tr><td>(</td><td>Klammer auf</td><td></td></tr><tr><td>π</td><td>Symbolname</td><td>(hier: die Kreiszahl π)</td></tr><tr><td>)</td><td>Klammer zu</td><td></td></tr></tbody></table></figure>



<p>Die weitere Aufgabe des Parsers ist nun, die zugrundeliegende Struktur dieser Symbolfolge zu erkennen. Häufig geschieht dies in Form eines Parsebaums (abstrakter Syntaxbaum), der in diesem Fall folgendermaßen aussehen kann:</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="871" height="442" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=871%2C442&#038;ssl=1" alt="" class="wp-image-1161" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=1024%2C520&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=300%2C152&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=768%2C390&amp;ssl=1 768w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=1070%2C543&amp;ssl=1 1070w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?w=1434&amp;ssl=1 1434w" sizes="(max-width: 871px) 100vw, 871px" /><figcaption class="wp-element-caption">So kann die Ausgabe eines einfachen Parsers aussehen und die Analyse erfolgt ausschließlich durch weitere Programme.</figcaption></figure>



<h3 class="wp-block-heading">Wo finden Parser Anwendung</h3>



<ul class="wp-block-list">
<li><a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Code besteht aus reinem Text. Der in einem Webbrowser standardmäßig enthaltene Parser erstellt daraus den logischen Aufbau als Datenstruktur. Das Aussehen dieser Elemente wird getrennt via CSS definiert.</li>



<li><a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Parser analysieren <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Dokumente und stellen die darin enthaltenen Informationen für die weitere Verarbeitung zur Verfügung.</li>



<li><a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a>-Parser wandeln <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a>-Feeds in ein passendes Datenformat um. Beispielsweise für eine <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Seite.</li>



<li>URI-Parser lösen Schemata wie URLs in ihren hierarchischen Aufbau auf.</li>



<li>Logdatei-Parser dienen zum Extrahieren von relevanten Informationen aus Webserver-Protokolldateien, Ereignisprotokollen und anderer in Logdateien gespeicherter Informationen zur automatisierten Analyse.</li>



<li>Suchmaschinen parsen Webseiten und crawlen relevante Textpassagen.</li>



<li>Auslesen einer Programmiersprache. Aus der erhaltenen Datenstruktur kann ein Compiler dann Maschinencode bzw. Bytecode erzeugen.</li>



<li>Ein Kommandozeileninterpreter parst Befehle mitsamt deren Parameter für die korrekte Ausführung der Anweisungen des Benutzers. Das ältere Publikum, die mit DOS vertraut sind, kennen dies vielleicht noch aus der command.com Datei 😉</li>



<li>In Textadventures wie erfolgt die Steuerung der Spielfigur über die Eingabe von Befehlen in natürlicher Sprache, z. B. „Gehe in den Raum“, „Öffne Tür“ usw. Der Parser greift auf eine Datenbank aller manipulierbarer Objekte im Spiel zu und analysiert, welche Interaktion mit welchen Objekten der Spielwelt der Spieler mit seiner Befehlseingabe meinte.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Es gibt verschiedene Parser. Je nach der zu analysierenden Grammatik sucht man sich den passenden Parser aus. Durch die richtige Wahl resultieren bessere und akkuratere Ergebnisse. Durch den Einsatz von diversen Parsern ist es auch möglich, sich relevante Informationen aus den verschiedensten Quellen heranzuziehen. Angefangen von Börsen Daten, über Wetterinformationen und bis hin zu allem, was das Herz begehrt. Sowohl die Anwendungsentwicklung, als auch das Web ist heute ohne einen Parser kaum mehr vorstellbar.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/15/erklaerung-parser/">Parser &#8211; Die Macht der Datenverarbeitung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/15/erklaerung-parser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1094</post-id>	</item>
		<item>
		<title>Wireshark &#8211; Netzwerkanalyse und Sicherheit mit dem ultimativen Open-Source-Tool</title>
		<link>https://ceosbay.com/2022/11/24/erklaerung-wireshark/</link>
					<comments>https://ceosbay.com/2022/11/24/erklaerung-wireshark/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Thu, 24 Nov 2022 16:26:42 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[AVM]]></category>
		<category><![CDATA[Blutooth]]></category>
		<category><![CDATA[Datenausspähung]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Datenschutzbeauftragter]]></category>
		<category><![CDATA[Filter]]></category>
		<category><![CDATA[Fritz]]></category>
		<category><![CDATA[Hacker]]></category>
		<category><![CDATA[Hub]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[InfoSec]]></category>
		<category><![CDATA[IPX]]></category>
		<category><![CDATA[Jitter]]></category>
		<category><![CDATA[Juristen]]></category>
		<category><![CDATA[LAN]]></category>
		<category><![CDATA[Netzwerkverkehr]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shark]]></category>
		<category><![CDATA[SIP]]></category>
		<category><![CDATA[Sniffer]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Traffic]]></category>
		<category><![CDATA[UDP]]></category>
		<category><![CDATA[Verbot]]></category>
		<category><![CDATA[Verkehr]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<category><![CDATA[Wire]]></category>
		<category><![CDATA[Wireless]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=597</guid>

					<description><![CDATA[<p>Wireshark ist eine Open Source Software unter der GNU General Public License, mit der sich der Datenverkehr auf unterschiedlichen Kommunikationsschnittstellen beobachten, aufzeichnen und analysieren lässt. Die Software ist für die gängigen Betriebssysteme wie Windows, Linux &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/24/erklaerung-wireshark/">Wireshark &#8211; Netzwerkanalyse und Sicherheit mit dem ultimativen Open-Source-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wireshark ist eine <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software unter der GNU General Public License, mit der sich der Datenverkehr auf unterschiedlichen Kommunikationsschnittstellen beobachten, aufzeichnen und analysieren lässt. Die Software ist für die gängigen Betriebssysteme wie Windows, Linux oder MacOS verfügbar.</p>



<h3 class="wp-block-heading">Welche Kommunikationsschnittstellen lassen sich analysieren?</h3>



<p>Wireshark kann den Datenverkehr auf Ethernet-, USB- oder WLAN-Schnittstellen mitlesen. Die primären Einsatzgebiete sind das Netzwerk-Monitoring, die Fehlersuche sowie Fehleranalyse und die IT-Sicherheitsüberwachung. Und ja, auch für Hacker ist es ein beliebtes Tool.</p>



<h3 class="wp-block-heading">Eine kurze Zeitreise zu den Anfängen von Wireshark</h3>



<p>In den 90er Jahren arbeitete Gerald Combs, ein Informatik-Absolvent der University of Missouri-Kansas City, für einen kleinen Internet-Dienstanbieter. Die kommerziellen Produkte zur Protokollanalyse waren damals relativ teuer und liefen nicht auf den Hauptplattformen Solaris und Linux, welches das Unternehmen im Einsatz hatte. Also beschloss der junge Gerald, selbst eine Anwendung dafür zu schreiben und fing mit der Entwicklung von Ethereal an. Seine erste Version wurde gegen 1998 veröffentlicht.</p>



<p>Im Mai 2006 nahm Combs eine Stelle bei CACE-Technologies an. Er war der Urheber für den größeren Teil des Ethereal-Quellcodes und der Rest des Codes war ohnehin unter GNU GPL bereits <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>, so dass er den Inhalt des Ethereal-Subversion-Repository als Grundlage für seine neue Repository verwenden konnte. Nachdem er zeitgleich auch Markeninhaber von Ethereal war, änderte er den Namen kurzerhand in Wireshark. Im Jahr 2010 kaufte Riverbed Technology CACE auf und übernahm die Rolle des Hauptsponsors von Wireshark. Die Entwicklung von Ethereal wurde kurze Zeit später eingestellt und in einem Sicherheitshinweis von Ethereal wurde der Wechsel zu Wireshark empfohlen. Wireshark hat im Laufe der Jahre mehrere Branchenauszeichnungen abgeräumt. Meiner Meinung nach ist es immer noch eines der besseren Paket Sniffer überhaupt. Vor einigen Tagen wurde ich auch auf eine „neue“ Repo auf GitHub aufmerksam gemacht, die seit einem Jahr entwickelt wird und in den letzten Tagen eine GUI (Graphical User Interface bzw. Grafische Benutzeroberfläche) erhalten hat. Ich werde es mir anschauen und gegebenenfalls einen Beitrag dazu schreiben.</p>



<p>Combs pflegt weiterhin die Repo von Wireshark und veröffentlicht immer wieder neue Updates der Software. Auf der Produktwebsite sind fast 2000 weitere Autoren aufgelistet, die ihren Beitrag leisten und geleistet haben.</p>



<h3 class="wp-block-heading">Was macht Wireshark eigentlich?</h3>



<p>Wireshark erkennt als paketorientierter Sniffer viele verschiedene Protokolle und visualisiert die wichtigsten Informationen der Protokollheader übersichtlich und leicht lesbar. Für das Mitlesen der Daten nutzt Wireshark Zusatzprogramme wie WinPcap, usbpcap oder pcap. Zur veranschaulichten Darstellung der aufgezeichneten Daten sind Verbindungsübersichten, statistische Informationen zum Datenfluss und Ablaufdiagramme von Kommunikationsverbindungen erstellbar. Darüber hinaus sind binäre Daten aus dem aufgezeichneten Datenstrom extrahierbar, sie sich im Anschluss konvertieren lassen.</p>



<h3 class="wp-block-heading">Was ist WinPcap</h3>



<p>WinPcap ist eine als Freeware vertriebene Programmbibliothek, bestehend aus einem Treiber, der Hardware-nahen Zugriff auf die Netzwerkkarte ermöglicht und einer Sammlung von Werkzeugen, die den bequemen Zugriff auf die einzelnen für Netzwerke relevanten Schichten des OSI-Modells bieten. Das OSI-Modell hilft im Grunde genommen Herstellern von Netzwerkgeräten und Netzwerksoftware: Geräte und Software zu entwickeln, die mit Produkten anderer Hersteller kommunizieren können, was eine offene Interoperabilität ermöglicht. Im Laufe der letzten Jahre hat sich Wireshark als Standard-Werkzeug für Netzwerkanalysen etabliert. Auf den <a href="https://www.wireshark.org" target="_blank" rel="noreferrer noopener">Download-Seiten von Wireshark</a> sind Quellpakete und Installationsprogramme für Unix-, Windows- und MacOS-Systeme zu finden. Installationsassistenten für Windows erleichtern die Installation.</p>



<h3 class="wp-block-heading">Was ist USBPcap?</h3>



<p>USBPcap ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-USB-Sniffer für Windows.</p>



<h3 class="wp-block-heading">Was ist pcap?</h3>



<p>Im Bereich der Computernetzwerkverwaltung ist pcap eine Anwendungsprogrammierschnittstelle (API) zur Erfassung des Netzverkehrs.</p>



<h3 class="wp-block-heading">Anwendungsbereiche von Wireshark</h3>



<p>Die technischen Möglichkeiten der Software sind sehr bereitgefächert. Die aufgezeichneten Daten lassen sich in Echtzeit oder auch in Form von einzelnen Paketen mit leicht lesbaren Headerinformationen darstellen. Über verschiedene Protokollfilter werden die Daten aufbereitet. Auch der tatsächliche Inhalt der Datenpakete ist auswertbar. Am häufigsten wird der Sniffer für die Protokoll-Analyse auf den Schnittstellen Ethernet und im WLAN für Netzwerkprotokolle der TCP/IP-Familie eingesetzt.</p>



<p>Darüber hinaus ist das Tool wie bereits erwähnt in der Lage, Datenverkehr auf anderen Schnittstellen wie Bluetooth oder USB aufzuzeichnen und auszuwerten. Voraussetzung für das Mitlesen auf der jeweiligen Schnittstelle ist die Installation eines entsprechenden Capture-Programmpakets wie WinPcap sowie die Zugriffsberechtigung des Benutzers auf die jeweiligen Schnittstellen.</p>



<p>Um sich die Informationen anzeigen zu lassen wird von Wireshark eine Extraktion initiiert, der aus diversen Protokollen Meta-Informationen aus dem Kontext des Datenflusses zieht. Man kann auch eigene Module und Filter für bestimmte Netzwerkprotokolle erstellen.</p>



<p>Wird kein Filter verwendet, zeichnet Wireshark den gesamten Datenverkehr der Schnittstelle auf. Um die Datenmenge zu reduzieren und sich auf das zu analysierende Netzwerkprotokoll zu konzentrieren, können Capture-Filter eingesetzt werden. Mit einem Capture-Filter lassen sich IP-Adressen (auch Bereiche), Protokolle, Protokollnachrichten und viele weitere Parameter einstellen. Ein Filter mit einer vorgegebenen IP-Adresse beschränkt den aufgezeichneten Verkehr auf die Pakete von und zu einzelnen Netzwerkkomponenten.</p>



<p>Über die Stream-Verfolgung ist es möglich, gezielt einzelne TCP-Streams aufzuzeichnen und zu analysieren. Weitere wichtige Features von Wireshark sind die Statistik-Funktionen. Sie erlauben das Erstellen von Statistiken zum Datenverkehr hinsichtlich Parameter wie Paketlängen, Typen von Netzwerkprotokollen, Verbindungsendpunkten, Antwortzeiten, Kommunikationsbeziehungen oder IP-Adressen. Funktionen zu UDP Multicast-Streams, Signal-Traffic (SIP) und Voice-Traffic (RTP) analysieren den VoIP-Verkehr auf einer Netzwerkschnittstelle relativ präzise und tiefgehend. Mit wenigen Klicks sind die verschiedenen RTP-Streams herausgefiltert und grafisch dargestellt. Per Statistikfunktionen sind die für die Qualität der VoIP-Kommunikation wesentliche Merkmale wie Jitter oder Delay extrahierbar und zu visualisieren.</p>



<h3 class="wp-block-heading">Einsatz von Wireshark in geswitchten Netzwerken</h3>



<p>Wireshark kann nur den Datenverkehr einer bestimmten Schnittstelle des Rechners, auf dem die Software installiert ist, mitlesen. In einer geswitchten Umgebung, sind können lediglich die vom Rechner gesendeten oder empfangenen Pakete sowie die an alle adressierten Broadcast-Pakete protokolliert werden. Nur in einem unverschlüsselten WLAN oder am Port eines Hubs ist der gesamte Netzwerkverkehr analysierbar.</p>



<p>Soll in einer geswitchten Umgebung der Verkehr eines bestimmten Rechners mitgeschnitten und analysiert werden, empfiehlt sich die Verwendung der so genannten Mirror-Funktion eines Switches. Damit kann man den Netzwerkverkehr eines definierten Switchports auf einen anderen Port spiegeln. An diesen kann dann ein weiterer Rechner mit installiertem Netzwerk-Sniffer angeschlossen werden, mit dem sich der Datenverkehr des gespiegelten Ports aufzeichnen und auswerten lässt.</p>



<h3 class="wp-block-heading">Wireshark als Analysetool</h3>



<p>Man kann mit Wireshark nicht nur den eigens ermittelten Datenverkehr analysieren. Es ist auch möglich, Capture-Daten verschiedener Formate anderer LAN-Analyse-Tools oder oder Netzkomponenten einzulesen und auszuwerten. Zahlreiche Geräte wie Router oder Switches verschiedener Hersteller bieten die Möglichkeit an, den Datenverkehr in einem für Wireshark lesbaren Format aufzuzeichnen. Dazu zählen beispielsweise die in Deutschland sehr beliebten Fritzbox-Router des Herstellers AVM.</p>



<h3 class="wp-block-heading">Wireshark, um Schwachstellen der IT-Sicherheit zu ermitteln</h3>



<p>Ein wichtiges Einsatzgebiet von Wireshark ist auch das Umfeld der Netzwerk-Sicherheit. Man kann damit im Grunde genommen die IT-Sicherheit überprüfen. Schwachstellen lassen sich aufspüren und verdächtiger Datenverkehr identifizieren. So sind sämtliche Kommunikationspartner einer bestimmten Netzwerk-Node anhand der IP-Adressen identifizierbar. Verdächtige Pakete zu oder von unbekannten IP-Adressen sind schnell bestimmt. Kommt die Software an zentrale Schnittstellen eines Netzwerks wie beispielsweise auf dem Interface zum Internetanschluss oder an der WAN-Schnittstelle eines Routers zum Einsatz, erfasst die Software sämtliche Ein- und Ausgänge des Datenverkehrs. So ziemlich alles ist auswertbar und identifizierbar.</p>



<h3 class="wp-block-heading">Gesetzliche und datenschutzrechtliche Aspekte zum Einsatz von Wireshark</h3>



<p>Beim Einsatz von Wireshark sind einige gesetzliche Aspekte zu beachten. In Deutschland ist es verboten, fremde Netzwerkverbindungen mitzulesen und aufzuzeichnen. Während die Verwendung des Netzwerkanalysators im eigenen Netz in der Regel unproblematisch ist, muss für den Einsatz des Tools in fremden Netzwerkumgebungen eine Erlaubnis eingeholt werden. Auch die datenschutzrechtlichen Bestimmungen sind bei der Aufzeichnung, Speicherung und Weitergabe von Mitschnitten unbedingt einzuhalten. Hierzu macht es meistens Sinn, einen Datenschutzbeauftragten bzw. Juristen einzuschalten.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Sniffing macht im Interesse der Sicherheit immer Sinn und ist auch notwendig. Einerseits um Fehler im Netzwerk aufzuspüren und andererseits, um Hacker oder Schadsoftware aufzuspüren. Man muss also keine Unsummen bezahlen, um sich, das Eigene- oder das Firmennetzwerk zu schützen. Manchmal reicht auch das richtige Werkzeug mit dem richtigen Anwender.</p>



<p>Und nicht vergessen! Sniffing zum Zwecke der Datenausspähung ist strafbar!</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/24/erklaerung-wireshark/">Wireshark &#8211; Netzwerkanalyse und Sicherheit mit dem ultimativen Open-Source-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/24/erklaerung-wireshark/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">597</post-id>	</item>
	</channel>
</rss>
