<?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>Testfall Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/testfall/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/testfall/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Fri, 21 Feb 2025 07:28:17 +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>Testfall Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/testfall/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Regressionstest &#8211; Qualität zählt, Sicherheit garantiert</title>
		<link>https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/</link>
					<comments>https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 03:55:00 +0000</pubDate>
				<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Agile Testing]]></category>
		<category><![CDATA[Anwendungsprüfung]]></category>
		<category><![CDATA[Benutzerzufriedenheit]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Blackbox-Test]]></category>
		<category><![CDATA[Code-Qualität]]></category>
		<category><![CDATA[End-to-End-Test]]></category>
		<category><![CDATA[Entwicklungszyklus]]></category>
		<category><![CDATA[Fehlerbehebung]]></category>
		<category><![CDATA[Fehlererkennung]]></category>
		<category><![CDATA[Fehlerprotokoll]]></category>
		<category><![CDATA[Fehlervermeidung]]></category>
		<category><![CDATA[Funktionalität]]></category>
		<category><![CDATA[Grenzfall]]></category>
		<category><![CDATA[Integrationstest]]></category>
		<category><![CDATA[Integrität]]></category>
		<category><![CDATA[Kontinuierliche Verbesserung]]></category>
		<category><![CDATA[Kritischer Pfad]]></category>
		<category><![CDATA[Lasttest]]></category>
		<category><![CDATA[Nutzererfahrung]]></category>
		<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[QA-Tools]]></category>
		<category><![CDATA[Qualitätsgewährleistung]]></category>
		<category><![CDATA[Qualitätskontrolle]]></category>
		<category><![CDATA[Qualitätsmetrik]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Qualitätssicherungsprozess]]></category>
		<category><![CDATA[Qualitätssicherungsteam]]></category>
		<category><![CDATA[Qualitätstest]]></category>
		<category><![CDATA[Regressionstest]]></category>
		<category><![CDATA[Rückverfolgbarkeit]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Sicherheitstest]]></category>
		<category><![CDATA[Skripterstellung]]></category>
		<category><![CDATA[Software-Integrität]]></category>
		<category><![CDATA[Software-Optimierung]]></category>
		<category><![CDATA[Software-Standards]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwaretest]]></category>
		<category><![CDATA[Softwarewartung]]></category>
		<category><![CDATA[Stabilität]]></category>
		<category><![CDATA[Systemtest]]></category>
		<category><![CDATA[Testabdeckung]]></category>
		<category><![CDATA[Testautomatisierungsframework]]></category>
		<category><![CDATA[Testbericht]]></category>
		<category><![CDATA[Testdaten]]></category>
		<category><![CDATA[Testergebnis]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testlauf]]></category>
		<category><![CDATA[Testplan]]></category>
		<category><![CDATA[Testprozess]]></category>
		<category><![CDATA[Teststrategie]]></category>
		<category><![CDATA[Teststrategie-Dokumentation]]></category>
		<category><![CDATA[Testtools]]></category>
		<category><![CDATA[Testumgebung]]></category>
		<category><![CDATA[Testwerkzeuge]]></category>
		<category><![CDATA[Unit Test]]></category>
		<category><![CDATA[Usability Testing]]></category>
		<category><![CDATA[Whitebox-Test]]></category>
		<category><![CDATA[Zuverlässigkeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2831</guid>

					<description><![CDATA[<p>Wenn sich Softwareentwicklung und Qualitätssicherung treffen, rückt ein Schlüsselbegriff in den Vordergrund: der Regressionstest. Aber was steckt genau dahinter? Welchen Wert bietet er und wie setzt man ihn am effektivsten ein? In diesem Beitrag beleuchte &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/">Regressionstest &#8211; Qualität zählt, Sicherheit garantiert</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn sich Softwareentwicklung und Qualitätssicherung treffen, rückt ein Schlüsselbegriff in den Vordergrund: der Regressionstest. Aber was steckt genau dahinter? Welchen Wert bietet er und wie setzt man ihn am effektivsten ein? In diesem Beitrag beleuchte ich einige Facetten des Regressionstests und liefere praktische Anwendungsbeispiele.</p>



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



<p>Ein Regressionstest prüft eine Software darauf, ob durch Änderungen, wie z.B. Bugfixes oder neue Features, unbeabsichtigte Nebenwirkungen entstanden sind. Das Ziel besteht darin, sicherzustellen, dass die vorgenommenen Änderungen keine bestehenden Funktionen beeinträchtigen.</p>



<h3 class="wp-block-heading">Entstehung des Regressionstests</h3>



<p>Die Notwendigkeit für Regressionstests ergab sich mit der wachsenden Komplexität von Software. Als Programme noch einfach und linear waren, reichte es oft, nur die geänderten Teile zu testen. Doch mit der Zeit und der Zunahme von Abhängigkeiten zwischen Modulen stieg das Risiko, dass Änderungen in einem Modul Auswirkungen auf andere Teile der Software hatten. Hier schaffte der Regressionstest Abhilfe.</p>



<h3 class="wp-block-heading">Best Practices für den Regressionstest</h3>



<ul class="wp-block-list">
<li><strong>Automatisierung</strong>: Automatisierte Tests bieten eine konsistente und schnelle Möglichkeit, Regressionstests durchzuführen. Tools wie <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium</a>, <a href="https://ceosbay.com/2023/03/18/erklaerung-junit/">JUnit</a> oder <a href="https://ceosbay.com/2023/04/24/testng-testautomatisierung/">TestNG</a> erweisen sich hier als besonders wertvoll.</li>



<li><strong>Priorisierung</strong>: Es gilt nicht immer, alles erneut zu testen. Ein fokussierter Ansatz, bei dem kritische Bereiche der Anwendung höhere Priorität erhalten, optimiert den Testprozess.</li>



<li><strong>Regelmäßige Aktualisierung</strong>: Mit jeder neuen Version der Software sollten Testfälle aktualisiert werden, um ihre Relevanz zu gewährleisten.</li>



<li><strong>Feedbackschleifen</strong>: Kurze und regelmäßige Feedbackzyklen stellen sicher, dass Entwickler schnell auf gefundene Probleme reagieren können.</li>
</ul>



<h3 class="wp-block-heading">Anwendungsbeispiele für Regressionstests</h3>



<ul class="wp-block-list">
<li><strong>E-Commerce-Websites</strong>: Bei der Einführung neuer Produkte oder Angebote prüfen Regressionstests, ob die Checkout-Prozesse oder die Produktsuchfunktionen immer noch wie erwartet funktionieren.</li>



<li><strong>Mobile Apps</strong>: Bei Aktualisierungen von mobilen Anwendungen sorgen Regressionstests dafür, dass ältere Funktionen, wie z.B. das Login oder die Navigation, weiterhin fehlerfrei laufen.</li>



<li><strong>Banking-Software</strong>: Bei Sicherheitsupdates oder neuen Features garantieren Regressionstests, dass Kernfunktionen, wie Überweisungen oder Kontoabfragen, unbeeinflusst bleiben.</li>
</ul>



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



<p>Der Regressionstest bleibt ein unverzichtbares Instrument in der Softwarequalitätssicherung. Mit seiner Hilfe garantieren Entwickler, dass auch nach Änderungen die Software stabil und zuverlässig läuft. Durch eine kluge Strategie und den Einsatz passender Tools optimieren Teams den Prozess und liefern letztlich ein besseres Produkt.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/">Regressionstest &#8211; Qualität zählt, Sicherheit garantiert</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2831</post-id>	</item>
		<item>
		<title>Testabdeckung &#8211; Überlasse nichts dem Zufall</title>
		<link>https://ceosbay.com/2023/10/09/testabdeckung-ueberlasse-nichts-dem-zufall/</link>
					<comments>https://ceosbay.com/2023/10/09/testabdeckung-ueberlasse-nichts-dem-zufall/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 09 Oct 2023 14:22:53 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Anweisungsabdeckung]]></category>
		<category><![CDATA[Bedingungsabdeckung]]></category>
		<category><![CDATA[Code-Coverage]]></category>
		<category><![CDATA[Codeanalyse]]></category>
		<category><![CDATA[Codeintegrität]]></category>
		<category><![CDATA[Codequalität]]></category>
		<category><![CDATA[Codeüberprüfung]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Continuous Testing]]></category>
		<category><![CDATA[coverage.py]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Fehlererkennung]]></category>
		<category><![CDATA[Fehlerrate]]></category>
		<category><![CDATA[Funktionstests]]></category>
		<category><![CDATA[Integrationstests]]></category>
		<category><![CDATA[Jacoco]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Regressionstests]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwaretests]]></category>
		<category><![CDATA[Systemtests]]></category>
		<category><![CDATA[Testabdeckung]]></category>
		<category><![CDATA[Testberichte]]></category>
		<category><![CDATA[Testdaten]]></category>
		<category><![CDATA[Testdurchführung]]></category>
		<category><![CDATA[Testergebnisse]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testframeworks]]></category>
		<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Testmetriken]]></category>
		<category><![CDATA[Testoptimierung]]></category>
		<category><![CDATA[Testplanung]]></category>
		<category><![CDATA[Testreports]]></category>
		<category><![CDATA[Teststrategien]]></category>
		<category><![CDATA[Testtools]]></category>
		<category><![CDATA[Testumgebung]]></category>
		<category><![CDATA[Testzyklus]]></category>
		<category><![CDATA[Unit-Tests]]></category>
		<category><![CDATA[Zweigabdeckung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2539</guid>

					<description><![CDATA[<p>Die Testabdeckung spielt in der Softwareentwicklung eine zentrale Rolle und beeinflusst die Qualität sowie die Zuverlässigkeit des Codes maßgeblich. Doch was genau verbirgt sich hinter diesem Begriff, und wie nutzen Entwickler ihn effizient? In diesem &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/09/testabdeckung-ueberlasse-nichts-dem-zufall/">Testabdeckung &#8211; Überlasse nichts dem Zufall</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die Testabdeckung spielt in der Softwareentwicklung eine zentrale Rolle und beeinflusst die Qualität sowie die Zuverlässigkeit des Codes maßgeblich. Doch was genau verbirgt sich hinter diesem Begriff, und wie nutzen Entwickler ihn effizient? In diesem Beitrag beleuchte ich die Hintergründe, die Bedeutung und die Anwendung der Testabdeckung.</p>



<h2 class="wp-block-heading">Definition von Testabdeckung</h2>



<p>Die Testabdeckung, oft auch Codeabdeckung oder Code-Coverage genannt, quantifiziert den Anteil des Softwarecodes, den Tests während ihrer Ausführung tatsächlich &#8222;abdecken&#8220;. In anderen Worten: Es misst, welcher Prozentsatz des Codes durch Tests geprüft wird.</p>



<h2 class="wp-block-heading">Historischer Kontext</h2>



<p>Obwohl der genaue Ursprung der Testabdeckung schwer zu bestimmen ist, begann die Idee in den 1960er und 1970er Jahren an Bedeutung zu gewinnen. Mit der wachsenden Komplexität der Software erkannten Entwickler die Notwendigkeit, zu verstehen, welchen Teil ihres Codes sie tatsächlich testeten.</p>



<h2 class="wp-block-heading">Warum Testabdeckung wichtig ist</h2>



<p>Die Testabdeckung dient mehreren Zwecken:</p>



<ul class="wp-block-list">
<li><strong>Qualitätssicherung</strong>: Sie zeigt, welche Teile des Codes noch nicht durch Tests abgedeckt sind.</li>



<li><strong>Fehlererkennung</strong>: Nicht abgedeckter Code birgt das Risiko verborgener Fehler.</li>



<li><strong>Optimierung</strong>: Entwickler können ihre Teststrategien anhand der Testabdeckungsdaten anpassen.</li>
</ul>



<h2 class="wp-block-heading">Messung der Testabdeckung</h2>



<p>Es gibt verschiedene Methoden, um die Testabdeckung zu messen:</p>



<ul class="wp-block-list">
<li><strong>Anweisungsabdeckung</strong>: Misst, die tatsächlich ausgeführten Anweisungen im Code.</li>



<li><strong>Zweigabdeckung</strong>: Berücksichtigt die verschiedenen Pfade, die durch eine Anweisung (z. B. eine if-Anweisung) entstehen können.</li>



<li><strong>Bedingungsabdeckung</strong>: Fokussiert sich darauf, wie man unterschiedliche Bedingungen (true/false) innerhalb einer Anweisung testet.</li>
</ul>



<h4 class="wp-block-heading"><strong>Beispiel</strong>: Ein einfacher Code-Ausschnitt in <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">JAVA</a> könnte folgendermaßen aussehen:</h4>



<pre class="wp-block-code"><code>public class Calculator {
    public String checkNumber(int num) {
        if (num &gt; 0 &amp;&amp; num &lt; 10) {
            return "Einzelne Ziffer und positiv";
        } else {
            return "Nicht erlaubt";
        }
    }

    public static void main(String&#91;] args) {
        Calculator calc = new Calculator();
        System.out.println(calc.checkNumber(5));
    }
}</code></pre>



<p>In dieser <code>checkNumber</code> Methode überprüfen wir, ob eine Zahl sowohl größer als 0 als auch kleiner als 10 ist.</p>



<p>Für eine vollständige <strong>Bedingungsabdeckung</strong> müssten wir folgende Testszenarien betrachten:</p>



<ol class="wp-block-list">
<li>Ein Szenario, in dem <code>num</code> größer als 0 ist, aber nicht kleiner als 10. Zum Beispiel: <code>checkNumber(15)</code></li>



<li>Ein Szenario, in dem <code>num</code> nicht größer als 0 ist, aber kleiner als 10. Zum Beispiel: <code>checkNumber(-5)</code></li>



<li>Ein Szenario, in dem <code>num</code> sowohl größer als 0 als auch kleiner als 10 ist. Zum Beispiel: <code>checkNumber(5)</code></li>



<li>Ein Szenario, in dem <code>num</code> weder größer als 0 noch kleiner als 10 ist. Zum Beispiel: <code>checkNumber(-15)</code></li>
</ol>



<p>Durch diese Testszenarien stellen wir sicher, dass beide Bedingungen (<code>num &gt; 0</code> und <code>num &lt; 10</code>) sowohl wahr als auch falsch getestet werden, wodurch die Bedingungsabdeckung erreicht wird.</p>



<h4 class="wp-block-heading"><strong>Beispiel</strong>: Ein einfacher Code-Ausschnitt in <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a> könnte so aussehen:</h4>



<pre class="wp-block-code"><code>function evaluateNumber(num) {
    if (num &gt; 0 &amp;&amp; num &lt; 10) {
        return "Single digit and positive";
    } else {
        return "Not allowed";
    }
}

console.log(evaluateNumber(5));</code></pre>



<p>In der Funktion <code>evaluateNumber</code> überprüfen wir, ob eine Zahl sowohl größer als 0 als auch kleiner als 10 ist.</p>



<p>Für eine vollständige <strong>Bedingungsabdeckung</strong> müssten wir folgende Testszenarien betrachten:</p>



<ol class="wp-block-list">
<li>Ein Szenario, in dem <code>num</code> größer als 0 ist, aber nicht kleiner als 10. Zum Beispiel: <code>evaluateNumber(15)</code></li>



<li>Ein Szenario, in dem <code>num</code> nicht größer als 0 ist, aber kleiner als 10. Zum Beispiel: <code>evaluateNumber(-5)</code></li>



<li>Ein Szenario, in dem <code>num</code> sowohl größer als 0 als auch kleiner als 10 ist. Zum Beispiel: <code>evaluateNumber(5)</code></li>



<li>Ein Szenario, in dem <code>num</code> weder größer als 0 noch kleiner als 10 ist. Zum Beispiel: <code>evaluateNumber(-15)</code></li>
</ol>



<p>Durch diese Testszenarien stellen wir sicher, dass beide Bedingungen (<code>num &gt; 0</code> und <code>num &lt; 10</code>) sowohl wahr als auch falsch getestet werden, wodurch die Bedingungsabdeckung erreicht wird.</p>



<p>Es sei angemerkt, dass man in der Praxis spezielle Test-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks</a> wie <a href="https://ceosbay.com/2023/03/07/erklaerung-jest/">Jest</a> oder Mocha zum Schreiben und Ausführen von Tests in <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a> verwendet. Diese Frameworks bieten oft integrierte Funktionen zur Messung der Testabdeckung.</p>



<h4 class="wp-block-heading"><strong>Beispiel</strong>: Ein einfacher Code-Ausschnitt in <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a> könnte so aussehen:</h4>



<pre class="wp-block-code"><code><code>def&nbsp;add(a, b):&nbsp;if&nbsp;a &gt;&nbsp;0&nbsp;and&nbsp;b &gt;&nbsp;0:&nbsp;return&nbsp;a + b&nbsp;else:&nbsp;return&nbsp;"Negative Zahlen sind nicht erlaubt."</code></code></pre>



<p>Bei der Anweisungsabdeckung würde man prüfen, ob beide Anweisungen (<code>return a + b</code> und <code>return "Negative Zahlen sind nicht erlaubt."</code>) in den Tests vorkommen. Bei Zweigabdeckung würde man sicherstellen, dass sowohl der wahre als auch der falsche Zweig der <code>if</code>-Anweisung getestet werden. Bei Bedingungsabdeckung würde man jeden der Bedingungen (<code>a &gt; 0</code> und <code>b &gt; 0</code>) einzeln testen.</p>



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



<p>Zum Messen der Testabdeckung nutzen Entwickler spezielle Tools, beispielsweise &#8222;<a href="https://ceosbay.com/2023/03/25/erklaerung-jacoco/">JaCoCo</a>&#8220; für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> oder &#8222;coverage.py&#8220; für <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>. Diese Werkzeuge analysieren den Code, führen die Tests aus und berichten, welche Teile des Codes durch Tests abgedeckt sind und welche nicht.</p>



<p>Hier sind noch ein paar weitere Testabdeckungswerkzeuge, die man in verschiedenen Programmiersprachen und Umgebungen häufig verwendet:</p>



<p><strong>LCov</strong> &#8211; besonders beliebt in C/<a href="https://ceosbay.com/2023/02/25/erklaerung-c/">C++</a> Umgebungen.</p>



<p><strong>Istanbul (nyc)</strong> &#8211; für <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a>, besonders beliebt bei <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.js</a>-Projekten.</p>



<p><strong>DotCover</strong> &#8211; für .NET Anwendungen.</p>



<p><strong>Clover</strong> &#8211; ursprünglich von Atlassian entwickelt, für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> und Groovy.</p>



<p><strong>Cobertura</strong> &#8211; ein weiteres Tool für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a>-Projekte.</p>



<p><strong>Emma</strong> &#8211; für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a>, wird allerdings nicht mehr aktiv weiterentwickelt.</p>



<p><strong>gcov</strong> &#8211; ein Tool, das mit dem GNU Compiler Collection (GCC) kommt und C/<a href="https://ceosbay.com/2023/02/25/erklaerung-c/">C++</a> unterstützt.</p>



<p><strong>Slather</strong> &#8211; für Projekte, die in Objective-C geschrieben sind.</p>



<p><strong>SimpleCov</strong> &#8211; für <a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/">Ruby</a>, häufig in Rails-Projekten verwendet.</p>



<p><strong>PHP_CodeCoverage</strong> &#8211; verwendet in Tools wie PHPUnit für <a href="https://ceosbay.com/2023/02/26/erklaerung-php/">PHP</a>-Projekte.</p>



<p><strong>SonarQube</strong> &#8211; ist kein Testabdeckungswerkzeug im klassischen Sinn. Es bietet in der Tat Funktionalitäten zur Messung und Darstellung von Testabdeckungsdaten. Jedoch ist es wichtig zu beachten, dass <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">SonarQube</a> nicht selbst die Tests ausführt oder die Abdeckungsdaten generiert. Stattdessen integriert es sich mit bestehenden Testabdeckungswerkzeugen und &#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">frameworks</a>, sammelt deren Ergebnisse und präsentiert sie dann in seinem Dashboard. Doch darüber habe ich bereits einen <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">Artikel</a> geschrieben.</p>



<h2 class="wp-block-heading">Einrichtung und Nutzung</h2>



<p>Die genauen Schritte zur Einrichtung und Nutzung von Testabdeckungswerkzeugen variieren je nach Tool und Programmiersprache. Allgemein folgt man jedoch diesen Schritten:</p>



<ol class="wp-block-list">
<li>Installieren des entsprechenden Testabdeckungswerkzeugs.</li>



<li>Konfigurieren der Einstellungen, um den Code und die Tests zu berücksichtigen.</li>



<li>Ausführen der Tests mithilfe des Werkzeugs.</li>



<li>Analyse der Berichte, um die Testabdeckung zu bestimmen und Verbesserungsbereiche zu identifizieren.</li>
</ol>



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



<p>Die Testabdeckung bietet einen unschätzbaren Einblick in die Qualität und Zuverlässigkeit von Softwareprojekten. Durch die konsequente Anwendung und Analyse der Testabdeckung schaffen Entwickler eine solide Grundlage für hochwertige und fehlerfreie Software.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/09/testabdeckung-ueberlasse-nichts-dem-zufall/">Testabdeckung &#8211; Überlasse nichts dem Zufall</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/10/09/testabdeckung-ueberlasse-nichts-dem-zufall/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2539</post-id>	</item>
		<item>
		<title>Funktionale Tests in der Softwareentwicklung &#8211; Ein Leitfaden</title>
		<link>https://ceosbay.com/2023/07/20/funktionale-tests-in-der-softwareentwicklung-ein-leitfaden/</link>
					<comments>https://ceosbay.com/2023/07/20/funktionale-tests-in-der-softwareentwicklung-ein-leitfaden/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Thu, 20 Jul 2023 21:47:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Akzeptanztests]]></category>
		<category><![CDATA[Anforderungsmanagement]]></category>
		<category><![CDATA[Automatisierte Tests]]></category>
		<category><![CDATA[Benutzererfahrung]]></category>
		<category><![CDATA[Black-Box-Tests]]></category>
		<category><![CDATA[Einheitentests]]></category>
		<category><![CDATA[Fehlerbehebung]]></category>
		<category><![CDATA[Funktionale Tests]]></category>
		<category><![CDATA[Geschäftslogik]]></category>
		<category><![CDATA[Integrationstests]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Qualitätsstandards]]></category>
		<category><![CDATA[Regressionstests]]></category>
		<category><![CDATA[Softwareanforderungen]]></category>
		<category><![CDATA[Softwarearchitektur]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwareentwicklungsmethoden]]></category>
		<category><![CDATA[Softwarefehler]]></category>
		<category><![CDATA[Softwarekomponenten]]></category>
		<category><![CDATA[Softwarelebenszyklus]]></category>
		<category><![CDATA[Softwaremarkteinführung]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Softwarespezifikationen]]></category>
		<category><![CDATA[Softwaretesttools]]></category>
		<category><![CDATA[Systemtests]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Testprozesse]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1918</guid>

					<description><![CDATA[<p>Funktionale Tests spielen eine entscheidende Rolle in der Softwareentwicklung. Diese Art von Softwaretests sind darauf ausgerichtet, die Funktionen eines Systems oder einer Komponente zu überprüfen. Im Mittelpunkt stehen die konkreten Anforderungen und Funktionen, die in &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/20/funktionale-tests-in-der-softwareentwicklung-ein-leitfaden/">Funktionale Tests in der Softwareentwicklung &#8211; Ein Leitfaden</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Funktionale Tests spielen eine entscheidende Rolle in der Softwareentwicklung. Diese Art von Softwaretests sind darauf ausgerichtet, die Funktionen eines Systems oder einer Komponente zu überprüfen. Im Mittelpunkt stehen die konkreten Anforderungen und Funktionen, die in den Geschäftsregeln und in den Systemspezifikationen definiert sind.</p>



<h3 class="wp-block-heading">Was sind Funktionale Tests?</h3>



<p>Funktionale Tests sind ein Qualitätskontrollmechanismus, der dazu dient, die funktionalen Anforderungen eines Softwaresystems zu überprüfen. Sie konzentrieren sich auf die Geschäftslogik eines Systems und testen das Verhalten von Funktionen. Dabei kann man sowohl das User Interface, <a href="https://ceosbay.com/2023/04/20/api-nahtlose-verbindungen-fuer-innovationen/">APIs</a>, Datenbanken, Client-/Server-Anwendungen und andere Arten von Softwarekomponenten testen.</p>



<p>Diese Tests sollen sicherstellen, dass die Software oder die Komponente wie beabsichtigt funktioniert und die spezifizierten Anforderungen erfüllt. Es handelt sich hierbei um Black-Box-Tests, da der Tester sich nur mit den Eingabe- und Ausgabewerten einer Funktion auseinandersetzt und nicht mit der internen Logik oder Struktur des Codes.</p>



<h3 class="wp-block-heading">Warum sind Funktionale Tests wichtig?</h3>



<p>Funktionale Tests sind für die Qualitätssicherung in der Softwareentwicklung unabdingbar. Sie stellen sicher, dass die entwickelte Software ihre spezifizierten Funktionen erfüllt und dass die Endbenutzer sie ohne Probleme nutzen können. Zudem dienen diese Tests dazu, eventuelle Fehler, Probleme oder Abweichungen frühzeitig zu entdecken und zu beheben.</p>



<h3 class="wp-block-heading">Methoden und Techniken der Funktionalen Tests</h3>



<p>Es gibt eine Vielzahl von Methoden und Techniken, um sie durchzuführen. Dazu gehören unter anderem:</p>



<ul class="wp-block-list">
<li><strong>Unit-Tests</strong>: Testen einzelner Komponenten oder Einheiten eines Systems.</li>



<li><strong>Integrationstests</strong>: Prüfen, ob verschiedene Komponenten eines Systems korrekt miteinander interagieren.</li>



<li><strong>Systemtests</strong>: Überprüfen das vollständige System auf Abweichungen von den spezifizierten Anforderungen.</li>



<li><strong>Regressionstests</strong>: Sicherstellen, dass Änderungen am Code nicht zu neuen Fehlern in bereits getesteten Teilen der Software führen. <a href="https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/">(Siehe auch meinen Beitrag über den Regressionstest)</a></li>



<li><strong>Akzeptanztests</strong>: Prüfen, ob das System die Bedürfnisse und Erwartungen des Anwenders erfüllt.</li>
</ul>



<h3 class="wp-block-heading">Automatisierung von Funktionalen Tests</h3>



<p>In der modernen Softwareentwicklung ist die Automatisierung von Tests ein wichtiger Aspekt. Mit automatisierten Tests kann man Testfälle effizient und wiederholt ausführen, was Zeit spart und die Konsistenz der Tests erhöht. Automatisierte funktionale Tests können dabei helfen, die Softwarequalität sicherzustellen und die Zeit bis zur Markteinführung zu verkürzen.</p>



<h2 class="wp-block-heading">Welche Software kommt für die Automatisierung dieser Tests in Frage?</h2>



<ol class="wp-block-list">
<li><strong>Selenium:</strong> <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium</a> ist eine weit verbreitete und sehr flexible <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Lösung für die Automatisierung von Webanwendungen. Es unterstützt viele verschiedene Browser und Programmiersprachen.</li>



<li><strong>JUnit:</strong> <a href="https://ceosbay.com/2023/03/18/erklaerung-junit/">JUnit</a> ist ein Framework für das Schreiben und Ausführen von automatisierten Tests in der Programmiersprache <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a>. Man verwendet es häufig für Unit-Tests. Man kann es aber auch für funktionale Tests nutzen.</li>



<li><strong>TestNG:</strong> TestNG ist ein weiteres Test-Framework für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a>. Speziell entwickelt für hohe Flexibilität und breite Konfigurierbarkeit. Es ist sowohl für Einheitentests als auch für komplexere Testtypen geeignet.</li>



<li><strong>Cucumber:</strong> <a href="https://ceosbay.com/2023/03/11/erklaerung-cucumber/">Cucumber</a> ist ein Tool für <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">Behavior-Driven Development</a> (<a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">BDD</a>), das dazu dient, Anforderungen und Testszenarien in einer für alle Stakeholder verständlichen natürlichen Sprache zu formulieren.</li>



<li><strong>Appium:</strong> Appium ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Werkzeug für die Automatisierung von nativen, mobilen Web- und Hybridanwendungen auf iOS und Android.</li>



<li><strong>Postman:</strong> Postman ist ein beliebtes Tool für <a href="https://ceosbay.com/2023/04/20/api-nahtlose-verbindungen-fuer-innovationen/">API</a>-Tests, das sowohl manuelle als auch automatisierte Tests unterstützt.</li>



<li><strong>Robot Framework:</strong> Das Robot Framework ist ein generisches Testautomatisierungswerkzeug für Akzeptanztests und Akzeptanztest-getriebene Entwicklung (ATDD). Es hat eine einfach zu lesende Syntax und ist sehr anpassungsfähig.</li>
</ol>



<p>Es gibt selbstverständlich noch viele mehr. Einige davon habe ich und werde ich noch in diesem Blog thematisieren.</p>



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



<p>Funktionale Tests sind ein entscheidender Bestandteil der Qualitätskontrolle in der Softwareentwicklung. Sie helfen dabei, sicherzustellen, dass die Software oder die Komponente wie beabsichtigt funktioniert und die spezifizierten Anforderungen erfüllt. Durch eine Kombination von verschiedenen Testmethoden und die Automatisierung von Tests kann man die Softwarequalität effektiv sicherstellen und die Markteinführungszeit verkürzen. Funktionale Tests tragen dazu bei, dass die Endbenutzer eine funktionierende, effiziente und fehlerfreie Software nutzen können.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/20/funktionale-tests-in-der-softwareentwicklung-ein-leitfaden/">Funktionale Tests in der Softwareentwicklung &#8211; Ein Leitfaden</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/07/20/funktionale-tests-in-der-softwareentwicklung-ein-leitfaden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1918</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>IntelliJ IDEA &#8211; Die intelligente und leistungsstarke Entwicklungsumgebung</title>
		<link>https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/</link>
					<comments>https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 10 Mar 2023 18:34:56 +0000</pubDate>
				<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Cython]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Haml]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IDEA]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[Intelli]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[J]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Less]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[Markdown]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python and Jython]]></category>
		<category><![CDATA[Ruby and JRuby]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Sass]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[SCSS]]></category>
		<category><![CDATA[Slim]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testfall]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Ultimate]]></category>
		<category><![CDATA[Umfeld]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[XPath]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[YAML]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1084</guid>

					<description><![CDATA[<p>IntelliJ IDEA ist eine integrierte Entwicklungsumgebung (IDE) des Softwareunternehmens JetBrains. Es existieren derzeit zwei verschiedene Editionen. Zum einen die kostenpflichtige Ultimate Edition und die kostenfreie Community Edition. Features Im Wesentlichen unterscheiden sich die beiden Versionen &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/">IntelliJ IDEA &#8211; Die intelligente und leistungsstarke Entwicklungsumgebung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>IntelliJ IDEA ist eine integrierte Entwicklungsumgebung (IDE) des Softwareunternehmens JetBrains. Es existieren derzeit zwei verschiedene Editionen. Zum einen die kostenpflichtige Ultimate Edition und die kostenfreie Community Edition.</p>



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



<p>Im Wesentlichen unterscheiden sich die beiden Versionen im Funktionsumfang. Hierzu von der Ultimate Version unterstützte Sprachen: Java, Groovy, Kotlin, Scala, Python and Jython, Cython, <a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/" target="_blank" rel="noreferrer noopener">Ruby</a> and JRuby, Rust, PHP, Go, Dart, SQL, HTML, XML, JSON, YAML, XSL, XPath, Markdown, <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>, TypeScript, CSS, Sass, SCSS, Less, Haml, Slim, Liquid</p>



<p>Wobei zu beachten ist, dass die Ultimate Edition von IntelliJ IDEA neben den nativ unterstützten Sprachen, einige der Sprachen lediglich durch den Einsatz von PlugIns unterstützt. In der Community Edition sind auch einige Sprachen gar nicht berücksichtigt. Eine explizite bzw. genaue Differenzierung möchte ich in diesem Beitrag nicht vornehmen. Also sind die Angaben bzgl. der Features mit Vorsicht zu genießen.</p>



<p>Auch ist zu beachten, dass lediglich die Ultimate Edition von IntelliJ IDEA die umfangreiche <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> Unterstützung mitbringt. Im Enterprise Umfeld sind diese in der Regel unabdingbar.</p>



<p>Auch bei den Build Tools gibt es Unterschiede. Besonders auffällig ist dabei die Tatsache, dass <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/" target="_blank" rel="noreferrer noopener">npm</a> zwar in der Ultimate Edition läuft, jedoch nicht in der Community Edition. Ich habe es auch in der Community Version zum Laufen gebracht. Dennoch ist dies mit Vorsicht zu genießen, da ich aufgrund von Fehlern dennoch auf die Ultimate Edition geswitched bin.</p>



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



<p>Auf die Funktionsfähigkeit bei der Versionskontrolle bzw. bei <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/" target="_blank" rel="noreferrer noopener">Cloud</a>-basierten Diensten wie <a href="https://ceosbay.com/2022/11/18/erklaerung-git/" target="_blank" rel="noreferrer noopener">Git</a>, <a href="https://ceosbay.com/2022/11/19/erklaerung-github/" target="_blank" rel="noreferrer noopener">GitHub</a>, Subversion, Mercurial und Team Foundation Server kann man sich verlassen. Bei Perforce ist man zumindest in der Community Edition verlassen.</p>



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



<p>Während die Community Edition lediglich <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a> für das Deployment unterstützt sind es mit der Ultimate Edition <a href="https://ceosbay.com/2022/12/24/erklaerung-kubernetes/" target="_blank" rel="noreferrer noopener">Kubernetes</a>, Java Applications Servers als auch <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a>.</p>



<h3 class="wp-block-heading">Codevervollständigung</h3>



<p>Die Codevervollständigung ist eine Funktion, die vor allem Programmieranfängern sehr entgegenkommt. Nur wenige werden als Coder geboren, oder!? Da vergisst man schon mal schnell eine import-Anweisung, IDEA aber nicht. Meistens weist IntelliJ einen auf den Fehler hin und schlägt Korrekuren vor. Dies gilt auch für nicht verwendete Importe, die IntelliJ entsprechend einer manuellen Zustimmung entsorgt.</p>



<p>Es nimmt einem den Grossteil der Tipparbeit ab, damit man sich dem Programmdesign widmen kann und nicht über korrekt formulierte JAVA-Anweisungen nachdenken muss. Ich muss gestehen, dass ich mich bisher noch nicht wirklich mit JAVA auseinandergesetzt habe. Doch dies hole ich derzeit nach und auch darüber gibt es in der nahen Zukunft einen Beitrag.</p>



<h3 class="wp-block-heading">Code Layout Manager</h3>



<p>Den Code Layout Manager weiß man spätestens dann zu schätzen, wenn man im eigenen Quelltext nicht mehr durchblickt oder fremden Quelltext bearbeiten muss. Dann kann man Text markieren und von IDEA neu formatieren lassen. Dies geht relativ intelligent von statten.</p>



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



<p>Auch die Refactoringfähigkeiten von IntelliJ sind nicht zu unterschätzen. Wer die Funktionen einmal in Aktion erlebt hat, der möchte sie nicht mehr missen. Dazu gehören u.A. das Renaming, Move, Introduce Explaining Variable, Extract Method usw.</p>



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



<p>Ich arbeite noch nicht lange mit dem Programm. Doch IntelliJ hat scheinbar in enger Kooperation mit den Anwendern ein relativ gutes Produkt entwickelt, mit dem man gut im Enterprise Umfeld arbeiten kann. Besonders die große PlugIn Bibliothek als auch die individuelle Erweiterbarkeit durch eine offen gelegte API haben mir persönlich sehr gefallen. Dadurch ist es auch möglich eigene PlugIns für IntelliJ zu schreiben und diese zu selbst zu implementieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/">IntelliJ IDEA &#8211; Die intelligente und leistungsstarke Entwicklungsumgebung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1084</post-id>	</item>
	</channel>
</rss>
