<?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>Methode Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/methode/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/methode/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Fri, 20 Oct 2023 10:06:58 +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>Methode Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/methode/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Design Thinking &#8211; Kreativität und Innovation fördern</title>
		<link>https://ceosbay.com/2023/07/11/design-thinking-kreativitaet-und-innovation-foerdern/</link>
					<comments>https://ceosbay.com/2023/07/11/design-thinking-kreativitaet-und-innovation-foerdern/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 11 Jul 2023 20:43:33 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Dezentralisierung]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Akzeptanz]]></category>
		<category><![CDATA[Brainstorming]]></category>
		<category><![CDATA[Definition]]></category>
		<category><![CDATA[Denken]]></category>
		<category><![CDATA[Design-Thinking]]></category>
		<category><![CDATA[Einbeziehen]]></category>
		<category><![CDATA[Erfolg]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Förderung]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Kern]]></category>
		<category><![CDATA[Kreativität]]></category>
		<category><![CDATA[Lösungsorientiert]]></category>
		<category><![CDATA[Methode]]></category>
		<category><![CDATA[Methoden]]></category>
		<category><![CDATA[Nutzer]]></category>
		<category><![CDATA[Offenheit]]></category>
		<category><![CDATA[Op]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Prinzipien]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Protoyp]]></category>
		<category><![CDATA[Stanford]]></category>
		<category><![CDATA[Techniken]]></category>
		<category><![CDATA[Thinking]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[User]]></category>
		<category><![CDATA[Zeitreise]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1859</guid>

					<description><![CDATA[<p>In der heutigen dynamischen Geschäftswelt ist der Begriff &#8222;Design Thinking&#8220; immer häufiger zu hören. Was genau bedeutet er und warum ist er so wichtig? In diesem Blogbeitrag geht es um die Konzepte und Prinzipien. Unter &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/11/design-thinking-kreativitaet-und-innovation-foerdern/">Design Thinking &#8211; Kreativität und Innovation fördern</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der heutigen dynamischen Geschäftswelt ist der Begriff &#8222;Design Thinking&#8220; immer häufiger zu hören. Was genau bedeutet er und warum ist er so wichtig? In diesem Blogbeitrag geht es um die Konzepte und Prinzipien. Unter anderem auch darum, wie man es nutzen kann, um Innovationen zu fördern und Probleme zu lösen.</p>



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



<p>Es ist im Grunde genommen eine problemlösende Methode, die darauf abzielt, innovative Lösungen zu entwickeln, indem sie sich auf die menschliche Erfahrung, Experimente, Zusammenarbeit und kreatives Denken konzentriert. Es ist nicht nur auf Produktdesign beschränkt. Man kann es auf alle Bereiche des Lebens anwenden, in denen innovative Lösungen erforderlich sind.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Der Ursprung des Konzepts lässt sich auf das letzte Jahrhundert zurückverfolgen und ist eng mit mehreren führenden Denkern und Institutionen verknüpft.</p>



<p>Die frühe Verbindung kann man auf den britischen Designer und Theoretiker John Christopher Jones zurückführen, der in den 1960er Jahren die Idee vorstellte, dass Design ein Denkprozess ist, der nicht auf die Gestaltung von Produkten beschränkt ist.</p>



<p>In den 1970er Jahren prägte der amerikanische Architekt und Städteplaner Horst Rittel den Begriff &#8222;wicked problems&#8220; für komplexe Probleme, die nicht man nicht durch herkömmliche lineare oder logische Ansätze lösen konnte. Diesen Begriff hat man später in den Prozess des Design Thinking integriert.</p>



<p>Die Popularisierung und Weiterentwicklung des Konzepts kann man der <a href="https://www.stanford.edu" target="_blank" rel="noreferrer noopener">Stanford University</a> und dem Hasso-Plattner-Institut für Design (besser bekannt als die &#8222;d.school&#8220;) zuschreiben. Den Begriff selbst haben jedoch erstmals David M. Kelley, dem Gründer von IDEO und Professor an der <a href="https://www.stanford.edu">Stanford Universit</a><a href="https://www.stanford.edu" target="_blank" rel="noreferrer noopener">y</a> sowie Tim Brown, dem CEO von IDEO, in die Geschäftswelt eingeführt. Sozusagen, die Ersten, die Design Thinking als Methode für Innovation und für die Problemlösung definierten und systematisierten.</p>



<p>Es ist demnach nicht nur auf die historischen Persönlichkeiten und Institutionen beschränkt. Es ist ein dynamisches und sich ständig weiterentwickelndes Feld, das Beiträge von Designern, Forschern, Pädagogen und Praktikern aus der ganzen Welt beinhaltet.</p>



<p>Seit der Entstehung hat sich Design Thinking von einer Nischenmethode zu einer weit verbreiteten Praxis entwickelt, die in einer Vielzahl von Kontexten Anwendung findet. Von Produkt- und Servicedesign über soziale Innovation, bis hin zu strategischer Planung und Bildung.</p>



<h3 class="wp-block-heading">Die Prinzipien des Design Thinking</h3>



<h4 class="wp-block-heading">Es basiert auf fünf Kernprinzipien:</h4>



<ol class="wp-block-list">
<li>Empathie für den Nutzer: Hier geht es darum, die Bedürfnisse und Erwartungen der Nutzer zu verstehen, um Lösungen zu finden, die wirklich relevant und effektiv sind.<br></li>



<li>Definieren des Problems: Hier wird das Problem klar und präzise definiert, um den Fokus auf die tatsächlichen Herausforderungen zu legen.<br></li>



<li>Ideenfindung: In diesem Schritt generiert man möglichst viele Lösungsansätze, ohne sie zu bewerten. Der Zweck besteht darin, kreatives Denken und die Innovation zu fördern.<br></li>



<li>Prototyping: Hierbei setzt man ausgewählte Ideen in konkrete Modelle um, um zu sehen, wie sie in der Praxis funktionieren.<br></li>



<li>Testen: In dieser Phase testet man die Prototypen auf ihre Effektivität und gegebenenfalls nimmt man noch Anpassungen vor.</li>
</ol>



<h3 class="wp-block-heading">Warum ist Design Thinking wichtig?</h3>



<p>In einer sich schnell verändernden Welt sind traditionelle Methoden oft nicht mehr ausreichend, um neue Herausforderungen zu bewältigen. Es bietet einen flexiblen und kreativen Ansatz, der es Unternehmen und Individuen ermöglicht, Probleme zu lösen und Innovationen zu entwickeln, die den Bedürfnissen der Nutzer entsprechen.</p>



<p>Durch die Einbeziehung des Nutzers in den Designprozess und die Förderung des kreativen Denkens kann Design Thinking dazu beitragen, Produkte und Dienstleistungen zu schaffen, die wirklich auf die Bedürfnisse der Nutzer abgestimmt sind. Dies kann zu einer höheren Kundenzufriedenheit und zu einem nachhaltigen Geschäftserfolg führen.</p>



<h3 class="wp-block-heading">Wie man Design Thinking in der Praxis anwendet</h3>



<p>Die Anwendung von Design Thinking erfordert ein offenes Denken, Experimentierfreude und die Bereitschaft, aus Fehlern zu lernen. Im Folgenden sind einige Schritte, die man befolgen kann, um es in einer Organisation zu implementieren:</p>



<p>Man beginnt mit Schulungen und Workshops, um das Bewusstsein für Design Thinking zu schaffen und um die notwendigen Fähigkeiten zu entwickeln.</p>



<p>Zielsetzung ist die Förderung einer Kultur der Kreativität und Offenheit, in der neue Ideen willkommen sind und bei der man Fehler als Lernchancen sieht.</p>



<p>Design Thinking-Tools und -Techniken, wie Brainstorming, Storyboarding, Nutzerinterviews und Prototyping helfen dabei, kreative Lösungen zu entwickeln.</p>



<p>Es empfiehlt sich, vielfältige Teams zu bilden, die verschiedene Perspektiven und Fähigkeiten einbringen, um kreative Lösungen zu entwickeln bzw. um die Betrachtung von Herausforderungen aus verschiedenen Blickwinkeln zu ermöglichen.</p>



<p>Schließlich kann man den Erfolg von Design Thinking-Initiativen messen, um zu sehen, ob sie zu den gewünschten Ergebnissen führen und wo man gegebenenfalls ansetzt, um weitere Anpassungen vorzunehmen.</p>



<h3 class="wp-block-heading">Zusammenhang Design Thinking und DevOps</h3>



<p>Der Zusammenhang zwischen Design Thinking und <a href="https://ceosbay.com/2023/03/02/erklaerung-devops/">DevOps</a> liegt in ihrer gemeinsamen Ausrichtung auf kontinuierliche Verbesserung, Benutzerorientierung und Kollaboration. Man kann Design Thinking am Anfang des Produktentwicklungsprozesses anwenden, um Benutzerbedürfnisse zu verstehen, Probleme zu definieren und innovative Lösungen zu entwerfen. Im Anschluss kann man <a href="https://ceosbay.com/2023/03/02/erklaerung-devops/">DevOps</a> nutzen, um diese Lösungen schnell und effizient zu entwickeln, zu testen und zu releasen, wobei man auch eine Kultur der Zusammenarbeit und des kontinuierlichen Verbesserns fördert.</p>



<p>Wenn man Design Thinking und <a href="https://ceosbay.com/2023/03/02/erklaerung-devops/">DevOps</a> zusammen anwendet, kann es dabei helfen, Produkte und Dienstleistungen zu erschaffen, die nicht nur technisch hochwertig und zuverlässig sind, sondern auch die Bedürfnisse und Erwartungen der Benutzer in einem größeren Umfang erfüllen. Diese Synergie kann zu höherer Benutzerzufriedenheit, schnellerer Markteinführungszeit und insgesamt besseren Geschäftsergebnissen führen.</p>



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



<p>Design Thinking ist eine mächtige Methode, um Innovation zu fördern und um Probleme zu lösen. Indem man Empathie für den Nutzer entwickelt, kreatives Denken fördert und durch iterative Prozesse lernt, kann man Produkte und Dienstleistungen entwickeln, die wirklich den Bedürfnissen der Kunden entsprechen.</p>



<p>Ganz unabhängig davon, ob man ein neues Produkt entwickelt, eine Dienstleistung verbessert oder eine geschäftliche Herausforderung bewältigen möchte, Design Thinking kann dabei helfen, effektive und innovative Lösungen zu finden. Es ist eine Reise, die Neugier, Empathie und Mut erfordert, aber die Ergebnisse können es wert sein.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/11/design-thinking-kreativitaet-und-innovation-foerdern/">Design Thinking &#8211; Kreativität und Innovation fördern</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/07/11/design-thinking-kreativitaet-und-innovation-foerdern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1859</post-id>	</item>
		<item>
		<title>Tosca &#8211; Testautomatisierung für agile und fehlerfreie Softwareentwicklung</title>
		<link>https://ceosbay.com/2023/04/04/erklaerung-tosca/</link>
					<comments>https://ceosbay.com/2023/04/04/erklaerung-tosca/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 04 Apr 2023 13:36:21 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Anwendung]]></category>
		<category><![CDATA[Anwendungen]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Methode]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Suite]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Systeme]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1320</guid>

					<description><![CDATA[<p>Tosca Testsuite ist ein umfassendes Testmanagement-Tool, von der Firma Tricentis. Speziell für die Testautomatisierung von Anwendungen und IT-Systemen entwickelt und bietet eine umfassende Suite von Tools und Funktionen, um das Testen von Anwendungen zu vereinfachen &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/04/erklaerung-tosca/">Tosca &#8211; Testautomatisierung für agile und fehlerfreie Softwareentwicklung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Tosca Testsuite ist ein umfassendes Testmanagement-Tool, von der Firma Tricentis. Speziell für die Testautomatisierung von Anwendungen und IT-Systemen entwickelt und bietet eine umfassende Suite von Tools und Funktionen, um das Testen von Anwendungen zu vereinfachen und zu automatisieren.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Die Tosca Testsuite ist eine Entwicklung der österreichischen Firma Tricentis und die Veröffentlichung fand erstmals im Jahr 2007 statt. Gegründet von Wolfgang Platz und Franz Fuchsberger, die beide Erfahrung in der Software-Entwicklung hatten.</p>



<p>Als sie in ihrem Berufsleben immer wieder auf die Probleme von manuellen Tests und fehleranfälliger Testautomatisierung stießen, beschlossen sie, eine Lösung zu entwickeln, die den Testprozess effizienter und präziser machen sollte.</p>



<p>Im Laufe der Jahre hat die Tosca Testsuite eine Reihe von Verbesserungen und Erweiterungen erhalten. Funktionen kamen hinzu, um die Unterstützung verschiedener Plattformen und Technologien zu verbessern und die Testdatenverwaltung und Berichterstattung zu optimieren.</p>



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



<p>Die Tosca Testsuite bietet eine breite Palette von Funktionen, die den Testprozess vereinfachen und beschleunigen. Ein wichtiges Merkmal ist die Möglichkeit, Testszenarien aufzunehmen und automatisch zu generieren. Bewerkstelligt durch die Verwendung von Model-Based Testing (MBT), bei dem man Testszenarien aus Modellen der Anwendung automatisch generiert. Diese Methode bietet eine höhere Effizienz und Präzision als manuelle Tests. An dieser Stelle verweise ich auch gerne auf (<a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">TDD</a>), dem <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">Test Driven Development</a>.</p>



<p>Die Testsuite bietet auch eine integrierte Testdatenverwaltung, die grundsätzlich die Erstellung, Verwaltung und Wiederverwendbarkeit von Testdaten ermöglicht. Dies kann den Testprozess signifikant vereinfachen und reduziert die Fehlerquote.</p>



<p>Ein weiteres wichtiges Merkmal der Tosca Testsuite ist die Möglichkeit, Tests in einer Vielzahl von Umgebungen durchzuführen. Es unterstützt verschiedene Plattformen und Technologien wie Web-Anwendungen, mobile Anwendungen, SAP-Systeme und Legacy-Systeme.</p>



<p>Die Testsuite bietet auch eine umfassende Berichterstattungsfunktion, die eine genaue Übersicht über den Testprozess und über die Ergebnisse bietet. Man kann die Berichte auch anpassen, um die individuellen Anforderungen zu erfüllen. Unter anderem ermöglicht dies den Benutzern auch, schnell und einfach Einsicht in den Status des Testprozesses zu erhalten.</p>



<p>Die Tosca Testsuite ist relativ einfach zu bedienen und zu erlernen. Es bietet eine intuitive Benutzeroberfläche und eine umfangreiche Dokumentation, um den Einstieg zu erleichtern.</p>



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



<p>Insgesamt bietet die Tosca Testsuite eine umfassende Lösung für das Testmanagement, die Automatisierung und die Überwachung von Anwendungen. Es verbessert die Effizienz des Testprozesses und reduziert die Fehlerquote, was zu einer höheren Qualität der Anwendung und einer besseren Benutzererfahrung führt.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/04/erklaerung-tosca/">Tosca &#8211; Testautomatisierung für agile und fehlerfreie Softwareentwicklung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/04/erklaerung-tosca/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1320</post-id>	</item>
		<item>
		<title>TDD &#8211; Test Driven Development &#8211; Qualitativ hochwertige Software von Anfang an</title>
		<link>https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/</link>
					<comments>https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 13 Mar 2023 20:24:05 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Akzeptanz]]></category>
		<category><![CDATA[ATDD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Green]]></category>
		<category><![CDATA[Methode]]></category>
		<category><![CDATA[Middle-Out]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Outside-In]]></category>
		<category><![CDATA[Red]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testerstellung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1132</guid>

					<description><![CDATA[<p>Test-Driven Development (TDD = Testgetriebene Entwicklung) ist eine Methode, die häufig bei der agilen Entwicklung von Anwendungen eingesetzt wird. Bei der testgetriebenen Entwicklung erstellt der Programmierer Softwaretests vor den zu testenden Komponenten. Übrigens ist BDD &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/">TDD &#8211; Test Driven Development &#8211; Qualitativ hochwertige Software von Anfang an</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Test-Driven Development (TDD = Testgetriebene Entwicklung) ist eine Methode, die häufig bei der agilen Entwicklung von Anwendungen eingesetzt wird. Bei der testgetriebenen Entwicklung erstellt der Programmierer Softwaretests vor den zu testenden Komponenten.</p>



<p>Übrigens ist <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">BDD</a> aus der testgetriebenen Entwicklung hervorgegangen. Über <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">BDD</a> bzw. <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">Behavior Driven Development</a> habe ich bereits gestern geschrieben.</p>



<p>Klassisch und fast schon nostalgisch hat man und praktiziert man die Entwicklung heute noch nach dem Wasserfall- oder dem V-Modell-Prinzip. Man entwickelt die Tests parallel zum und unabhängig vom zu testenden System oder sogar erst nachdem die Anwendung „fertiggestellt“ wurde. Aufgrund dieser Tatsache resultiert meist daraus, dass der Code schwer testbar ist und somit der Aufwand für die Tests verhältnismäßig hoch ausfällt. Darüber hinaus kommt es auch vor, dass die Tests nicht die gewünschten oder erforderlichen Testabdeckungen und Ergebnisse liefern, die man sich erhofft.</p>



<p>Dies kann unter anderem daran liegen, dass die fehlende oder mangelnde Testbarkeit des Systems auf die Nutzung von Fremdkomponenten zurückzuführen ist. Auch die Verweigerung einer Investition in nicht-funktionale Programmteile seitens der Entscheider bzw. Unternehmensführung kann ein Grund dafür sein. So im Sinne von, „Arbeit, von der man später im Programm nichts sieht, seien vergeudete Ressourcen.“ Die Erstellung von Tests unter Zeitdruck, rein um die gewünschte Testabdeckung zu erzielen ist ebenfalls ein Grund dafür. Nicht selten, ist es aber auch die Nachlässigkeit und mangelnde Disziplin der Entwickler bei der Testerstellung. An dieser Stelle sein auch das White-Box-Testing zu erwähnen, den ich aber in einem zukünftigen Beitrag thematisieren werde.</p>



<p>Die Methode der testgetriebenen Entwicklung versucht den Nachteilen entgegenzuwirken und dabei auch ein auf die Aufgabenstellung der Software besser angepasstes und wartbareres Softwaredesign zu liefern.</p>



<p>Alles in allem ist es eine Tatsache, dass man bei der Anwenung von testgetriebener Entwicklung im Schnitt bis zu 45 Prozent aller Fehler erkennen bzw. vermeiden kann. Im Vergleich dazu, werden beim reinen Einsatz von Unittests im Schnitt nur bis zu 30 Prozent der Fehler erkannt.</p>



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



<p>Bei der testgetriebenen Entwicklung ist zwischen dem Testen im Großen (Integrationstests, Systemtests, Akzeptanztests) und dem Kleinen Modultests (Unit Tests) zu unterscheiden.</p>



<p>Testgetriebene Entwicklung mit Unit-Tests (Stichwort Tests First bzw. Middle-Out-TDD)</p>



<p>Man schreibt Unit-Tests in der Regel vor der eigentlichen Entwicklung der Anwendung. Es ist nicht festgelegt, ob der Entwickler, der die Implementierung vornimmt, auch die Unit-Tests erstellt. Es ist erlaubt, dass mehrere fehlschlagende Unit-Tests gleichzeitig existieren. Die Umsetzung des von einem Unit-Test geforderten Verhaltens in der Anwendung kann zeitlich verschoben werden.</p>



<p>Die Methode Tests First kann als Vorstufe der testgetriebenen Entwicklung betrachtet werden.</p>



<h3 class="wp-block-heading">TDD nach Kent Beck</h3>



<p>Man entwickelt Unit-Tests und die mit ihnen getesteten Units stets parallel. Die eigentliche Entwicklung erfolgt in kleinen, wiederholten Mikroiterationen. Eine solche Iteration, die nur wenige Minuten dauern sollte, hat drei Hauptteile, die man im englischen schlicht als Red, Green und Refactor bezeichnet.</p>



<ol class="wp-block-list" type="1">
<li>Red: Schreibe einen Test, der ein neues zu programmierendes Verhalten (die Funktionalität) prüfen soll. Dabei fängt man mit dem einfachsten Beispiel an. Ist die Funktion schon älter, kann dies auch ein bekannter Fehler oder eine neu zu implementierende Funktionalität sein. Dieser Test wird vom vorhandenen Programmcode erst einmal nicht erfüllt und muss folglich fehlschlagen.<br></li>



<li>Green: Ändere den Programmcode mit möglichst wenig Aufwand ab und ergänze ihn, bis er nach dem anschließend angestoßenen Testdurchlauf alle Tests besteht.<br></li>



<li>Räume dann im Code auf (Refactoring): Entferne Wiederholungen (Duplizierten Code), abstrahiere wo nötig, richte ihn nach den verbindlichen Code-Konventionen aus. In dieser Phase darf kein neues Verhalten eingeführt werden. Nach jeder Änderung werden die Tests ausgeführt. Der Fehlschlag der Tests verbietet es, die offenbar fehlerhafte Änderung in den bereits genutzten Code zu übernehmen. Ziel des Aufräumens ist es, den Code schlicht, elegant und verständlich zu machen.</li>
</ol>



<p>Diese drei Schritte wiederholt man so lange und so oft, bis die bekannten Fehler bereinigt sind, der Code die gewünschte Funktionalität liefert und dem Entwickler keine sinnvollen weiteren Tests mehr einfallen, die vielleicht noch scheitern könnten. Die so behandelte programmtechnische Einheit (Unit) wird dann als einstweilen fertig angesehen. Die gemeinsam mit ihr geschaffenen Tests werden beibehalten, damit auch nach künftigen Iterationen und Änderungen getestet werden kann, ob die schon erreichten Aspekte des Verhaltens weiterhin erfüllt werden.</p>



<p>Damit die – auch Transformationen genannten – Änderungen in Schritt 2 zum Ziel führen, muss jede Änderung zu einer allgemeineren Lösung führen. Sie darf also nicht etwa nur den aktuellen Testfall auf Kosten anderer behandeln. Tests, die immer mehr ins Detail gehen, treiben den Code so zu einer immer allgemeineren Lösung. Die Beachtung der Transformationsprioritäten führt dabei regelmäßig zu effizienteren Algorithmen und damit Anwendungen. Die konsequente Befolgung dieser Vorgehensweise ist eine evolutionäre Entwurfsmethode, indem jede der einzelnen Änderungen bzw. Iterationen das System von Natur aus weiterentwickelt.</p>



<h3 class="wp-block-heading">Testgetriebene Entwicklung mit System- oder Akzeptanztests (Stichwort Outside-In-TDD)</h3>



<p>Wie bereits erwähnt, entwickelt man Systemtests bei der testgetriebenen Entwicklung immer vor dem System selbst oder aber man erstellt zumindest das Konzept dafür. Aufgabe der Systementwicklung ist bei testgetriebener Entwicklung nicht mehr, wie klassisch, schriftlich formulierte Anforderungen zu erfüllen, sondern spezifizierte Systemtests zu bestehen.</p>



<h3 class="wp-block-heading">Akzeptanztestgetriebene Entwicklung (ATDD)</h3>



<p>ATDD ist zwar mit testgetriebener Entwicklung verwandt, unterscheidet sich jedoch in der Vorgehensweise von testgetriebener Entwicklung. Akzeptanztestgetriebene Entwicklung ist ein Kommunikationswerkzeug zwischen dem Kunden bzw. den Anwendern, den Entwicklern und den Testern. Es soll sicherstellen, dass die Anforderungen gut beschrieben sind. Akzeptanztestgetriebene Entwicklung verlangt keine Automatisierung der Testfälle, wenngleich diese für das <a href="https://ceosbay.com/2023/10/20/regressionstest-qualitaet-zaehlt-sicherheit-garantiert/">Regressionstesten</a> hilfreich sind. Die Tests bei akzeptanztestgetriebener Entwicklung müssen dafür auch für Nicht-Entwickler lesbar sein. Die Tests der testgetriebenen Entwicklung können in vielen Fällen aus den Tests der akzeptanztestgetriebenen Entwicklung abgeleitet werden.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/">TDD &#8211; Test Driven Development &#8211; Qualitativ hochwertige Software von Anfang an</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1132</post-id>	</item>
	</channel>
</rss>
