<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>qualitycommunications</title><description></description><managingEditor>noreply@blogger.com (Christian Walter)</managingEditor><pubDate>Sat, 26 Mar 2011 13:33:06 +0100</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">10</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://softwarequalitaet.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Themen rund um Qualitätssicherung und - management in der Softwareentwicklung</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>WinRunner Stiefkind von Mercury?</title><link>http://softwarequalitaet.blogspot.com/2005/07/winrunner-stiefkind-von-mercury.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Thu, 14 Jul 2005 19:05:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-112135360539321865</guid><description>&lt;p&gt;Das funktionale Testautomatisierungstool &lt;a href="http://www.mercury.com/de/products/quality-center/functional-testing/winrunner/"&gt;WinRunner&lt;/a&gt; der Firma Mercury ist in einem Ranking der besonderen Art enthalten. Auf der Website &lt;a href="http://www.dreckstool.de"&gt;www.dreckstool.de&lt;/a&gt; können unzufriedene Benutzer von Softwaretools ihren Unmut Luft machen. WinRunner steht derzeit auf Platz 77 von 143 Softwaretools mit 68 Meldungen (im Jahr 2004: 335, 2002: 110, erstmals 2001: 33). Eine relativ hohe Anzahl gemessen am Verbreitungsgrad der Software gegenüber anderen Tools, wie z.B. Microsoft Outlook.&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;p&gt;Woher stammt diese Unzufriedenheit der sonst so zuverlässigen und gut zu bedienenden Tools von Mercury? Handelt es sich hierbei um überzogene Wunsch-Anforderungen, die nicht erfüllt wurden? Liegt es an einem Mißvertändnis, was Tools dieser Art leisten können? Oder liegt es daran, dass Testautomation auf dieser Ebene im Allgemeinen mit Schwierigkeiten verbunden ist und daher unbedingt Spezialisten hinzugezogen werden sollten? Oder ist die Umfrage nicht repräsentativ genug?&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-112135360539321865?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description></item><item><title>Der ideale Tester</title><link>http://softwarequalitaet.blogspot.com/2005/07/der-ideale-tester.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Wed, 13 Jul 2005 22:21:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-112134747715491627</guid><description>Wie im &lt;a href="http://softwarequalitaet.blogspot.com/2005/07/nachfrage-nach-testspezialisten-wchst.html"&gt;vorhergehende Artikel&lt;/a&gt; von mir beschrieben, steigt die Nachfragen nach Testspezialisten. In diesem Artikel erfahren Sie, welche Anforderungen der ideale Tester erfüllt.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;p&gt;Was verbirgt sich hinter dem Begriff Tester? Oft wird dieser Begriff als Verallgemeinerung für eine Vielzahl von Rollen verwendet. Die Aufgaben sind rollenabhängig organisatorischer, fachlicher oder technischer Natur. Die Projektgröße bestimmt, wie die Rollen auf die Projektmitarbeiter verteilt werden. Kleinere Projekte neigen dazu, viele Rollen in einer Person zu vereinen, während bei großen Projekten Spezialisten eingesetzt werden.&lt;/p&gt;&lt;p&gt;Die folgende (unvollständige) Liste stellt eine Sammlung von etablierten Rollen dar: Testmanager, Teilprojektleiter Qualitätssicherung, Testautomatisierer, Testcase-Designer, Testsystem-Administrator, technischer Tester, fachlicher Tester, Testdatenadministrator, Defectsmanager, Performance-Tester, usw.&lt;/p&gt;&lt;p&gt;Jede dieser Rollen beinhaltet spezifische Anforderungen, die sich nicht verallgemeinern lassen. Fachliche Tester benötigen das entsprechende fachliche Wissen, oft werden daher Mitarbeiter der Fachabteilungen dafür eingesetzt. Dies führt leider oft zu einem Konflikt, wenn neben der normalen Arbeit auch noch die Projektmitarbeit gefordert wird. Nicht immer können die Mitarbeiter freigestellt werden.&lt;/p&gt;&lt;p&gt;Technische Tester haben technisches Know-How, z.B. Kenntnisse bestimmter Betriebssysteme, Datenbanksysteme, Anwendungssoftware, Kommunikationsprotokolle, etc. Für Black-Box-Tests sind keine Programmierkenntnisse gefordert, die wiederum für White-Box-Tests (z.B. Modultests mit JUnit) unabdingbar sind. Testmanager und Teilprojektleiter beherrschen Kommunikation und Koordination. Test-Case-Designer benötigen gute analytische Fähigkeiten.&lt;/p&gt;&lt;p&gt;Die Anforderungen sind weit diversifiziert und orientierten sich an einer oder mehreren Rollen, die eine Person ausführen soll. Den idealen Tester gibt es also nicht. Einige Eigenschaften sollten jedoch alle hier genannten Rollen erfüllen: eine gewisse Affinität für die Fehlersuche und genaues Arbeiten sowie eine hohe Frustrationstoleranz sollte jeder Mitarbeiter der Qualitätssicherung mitbringen.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-112134747715491627?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Nachfrage nach Testspezialisten wächst</title><link>http://softwarequalitaet.blogspot.com/2005/07/nachfrage-nach-testspezialisten-wchst.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Sun, 10 Jul 2005 17:29:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-112109587535020896</guid><description>Die Stellenanzeigen der wichtigen Tageszeitungen haben wieder an Umfang zugenommen. Neben den allgemeinen Stellenangeboten ist bei Unternehmen die Nachfrage nach Spezialisten im Bereich Testing gewachsen.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;p&gt;Vor wenigen Jahren war die Qualitätssicherung eher lästiger Bestandteil von Software-Projekten. Einer von vielen Gründen dafür war die Tatsache, dass die Qualitätssicherung erst nach der Entwicklung stattfand und nicht mit konstruktiven Maßnahmen von Beginn im Projekt integriert war.&lt;/p&gt;&lt;p&gt;Mit der Erkenntnis, wie wichtig die Qualitätssicherung bzw. das Thema Qualität ist, ist auch die Nachfrage nach Spezialisten gewachsen, die mit modernen Vorgehensweisen einen echten Mehrwert für jedes Projekt darstellen. Das führt dazu, dass sich ein schärferes Stellenprofil abzeichnet. Gesucht werden keine Programmierer mit Nebenjob Tester, sondern erfahrene Testmanager, die ggf. auf Erfahrungen aus der Softwareentwicklung zurückgreifen können. Neben Vorgehensweisen und Techniken, werden Kenntnisse und Erfahrungen der Projekt-/Testplanung verlangt. Ergänzt werden diese Anforderungen durch gezieltes Know-How von marktüblichen Testwerkzeugen.&lt;/p&gt;&lt;p&gt;Dieser als positiv zu bewertende Trend wird durch weitere Initiativen unterstützt. So versucht das International Software Quality Institute (&lt;a href="http://www.isqi.org"&gt;iSQI&lt;/a&gt;) mit Seminaren und Zertifizierungen einen Standard im Gewirr von unterschiedlichen Terminologien und Ausbildungsständen zu etablieren.&lt;/p&gt;Beide Trends lassen darauf schließen, dass Qualität einen höheren Stellenwert in Software-Entwicklungsprojekten bekommt und gleichzeitig seitens Spezialisten eine höhere Qualität an Leistungen erbracht wird, quasi eine Qualitätssteigerung in der Qualitätssicherung.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-112109587535020896?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Die zehn goldenen Regeln für Softwarequalität</title><link>http://softwarequalitaet.blogspot.com/2005/06/die-zehn-goldenen-regeln-fr.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Thu, 23 Jun 2005 21:46:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-111953833206585886</guid><description>&lt;p&gt;Herr Hubert Keller vom Institut für angewandte Informatik am Forschungszentrum Karlsruhe erhebt die folgenden zehn goldenen Regeln für Softwarequalität (Quelle: Computer Zeitung Nr. 22, 30 Mai 2005, S. 17):&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Saubere Analyse der Kundenanforderungen, Festlegung der Begriffswelt und Sprache des Kunden &lt;/li&gt;&lt;li&gt;Erfassung der Sytem- und Architektur-relevanten Requirements &lt;/li&gt;&lt;li&gt;Projektion der Systemarchitektur und –anforderungen in die Zukunft der Systemweiterentwicklung zur Absicherung der Tragfähigkeit der Architektur &lt;/li&gt;&lt;li&gt;Iterative und inkrementelle Entwicklung eines Systemmodells mit klarer Konzentration auf die logische Sicht und Konsistenzprüfung &lt;/li&gt;&lt;li&gt;Detaillierung des Modells (technische Realisierungsnähe) &lt;/li&gt;&lt;li&gt;Umsetzung in Porgrammcode mit Werkzeugen der Model Driven Architecture &lt;/li&gt;&lt;li&gt;Festlegung von Prozess und Vorgehensmodell mit Rollen und Verantwortlichkeiten &lt;/li&gt;&lt;li&gt;Fachliche Schulung der Mitarbeiter, um in abgesicherten Verfahren technisch fit zu sein &lt;/li&gt;&lt;li&gt;Frühe Beachtung von Usability und von Security Aspekten &lt;/li&gt;&lt;li&gt;Permanente Reviews und Überprüfung in der Gruppe sowie Nachweis der Anforderungserfüllung, Test- und Konfigurationsmanagement&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Vergolden würde ich diese Regeln nicht, da sie deutliche Zeichen vom aktuellen Forschungs-/Wissenstand hinsichtlich der Vorgehensweisen zeigen (z.B. der Hinweis auf Model Driven Architecture). Um das Prädikat „goldene Regel“ zu bekommen, sollten diese Regeln allgemeiner formuliert sein. &lt;/p&gt;&lt;p&gt;Eines machen die Regeln deutlich: Softwarequalität wird sehr stark durch konstruktive Maßnahmen bestimmt und Qualität bezieht sich nicht allein auf die Fehlerfreiheit, sondern auch weitere Kriterien z.B. hinsichtlich der Güte der Architektur, der Sicherheit und Usability. &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-111953833206585886?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Performance-Testing mit JUnit</title><link>http://softwarequalitaet.blogspot.com/2005/03/performance-testing-mit-junit.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Sun, 6 Mar 2005 21:26:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-111018564546354170</guid><description>Mit Performance-Testing kann das Lastverhalten einer Applikation unter Laborbedingungen geprüft werden. Dazu bieten Hersteller von Testtools eigene Werkzeuge, deren Einsatz größere Investitionen zur Folge haben. In diesem Artikel wird der Einsatz von &lt;a href="http://www.junit.org"&gt;JUnit&lt;/a&gt; als Alternative aus dem Open Source Bereich untersucht.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;p&gt;Moderne Software-Architekturen bestehen aus mehreren Applikationsebenen/-schichten. Für den Rahmen dieses Artikels ist es ausreichend, die folgenden drei Schichten zu betrachten:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Präsentationsschicht&lt;/strong&gt; (Präsentationslogik, realisiert durch Thin- oder Fat-Client)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Applikationsschicht&lt;/strong&gt; (zentrale, serverseitige Anwendungslogik)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Datenbank&lt;/strong&gt; oder sontige Anbindung von &lt;strong&gt;Back-End-Systemen&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;Ziel des Performance-Tests ist es, das Lastverhalten der Applikation zu ermitteln, bzw. zu prüfen, ob die Anforderungen an die Applikation erfüllt werden. Das bezieht sich auf alle serverseitigen Komponenten. Eine funktionale Korrektheit muss für diese Tests angenommen werden, sie ist nicht Bestandteil der Tests.&lt;br /&gt;&lt;p&gt;Lasttesttools bestehen mindestens aus den folgenden drei Bausteinen:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;„&lt;strong&gt;Skripte&lt;/strong&gt;“: in Testskripten werden die Business-Cases definiert (durch Programmierung oder Aufzeichnung)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Lastgeneratoren&lt;/strong&gt;: mittels eines Lastgenerators werden die Business-Cases ausgeführt und greifen parallel auf die Applikation zu. Dazu bedienen sie sich dem Konzept der „Concurrent User” oder „Virtual User“. Jedem Skript wird ein virtueller User zugeordnet, der sich den Zustand der Applikation bis zur Beendung eines Skript-Durchlaufs merkt und ggf. mit speziellen Testdaten versorgt.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Monitore&lt;/strong&gt;: an verschiedenen Stellen der Architektur (Messpunkte) werden Daten abgegriffen und ermöglichen eine Auswertung (Anzahl Threads, Prozessor-Auslastung, Laufzeiten, etc.)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Die bekannten Hersteller von Testtools (&lt;a href="http://www.mercury.com/de/products/performance-center/loadrunner/"&gt;Mercury International&lt;/a&gt;, &lt;a href="http://www.ibm.com/software/rational/"&gt;IBM Rational&lt;/a&gt;, &lt;a href="http://www.compuware.com/products/qacenter/qaload.htm"&gt;Compuware&lt;/a&gt;, um nur wenige zu nennen) warten mit einer Reihe von sehr komfortablen Funktionen auf. Die Testskripte werden in der laufenden Anwendung aufgezeichnet und in einer Skript-Sprache zur weiteren Bearbeitung dargestellt. Aufgezeichnet wird das Kommunikationsprotokoll, z.B. die HTTP-Requests bei einer klassischen Web-Applikation. Bereits hier ist es wichtig zu beachten, welches Protokoll verwendet wird, da jedes Tool nur ein begrenztes Angebot an Protokollen unterstützt.&lt;/p&gt;&lt;p&gt;Die Lastgeneratoren werden durch eine Zentrale gesteuert, die die Einbindung weiterer Rechner zur Erzeugung der Last ermöglicht. Dazu gehört auch die automatische Verteilung der Testskripte auf diese Rechner. Bei der Planung von Lasttests ist ein ausreichendes Sizing der Lastgeneratoren sicherzustellen, damit genügend Rechenleistung für die virtuellen User bereitsteht.&lt;/p&gt;&lt;p&gt;Die Monitore gehören nicht zum Lieferumfang und müssen zusätzlich zum Basispaket erworben werden. Wie bei den Protokollen gilt hier: für die Auswahl eines Lasttesttools muss darauf geachtet werden, dass alle Architekturkomponenten durch Monitore abgedeckt sind.&lt;/p&gt;&lt;p&gt;Die Bedienung ist in der Regel sehr komfortabel gestaltet und ermöglicht auch Nicht-Programmieren einen schnellen Einstieg. Nachteilig wirken sich die hohen Kosten aus, die für die Basis-Anwendung, zusätzliche Monitore sowie die virtuellen User (abhängig von der Anzahl) anfallen.&lt;/p&gt;&lt;p&gt;Für die Alternative, dem JUnit-Framework, fallen keine Lizenzkosten an. Dafür wartet dieses Framework nicht mit einer komfortablen Benutzeroberfläche auf. Die Skripte werden in einer Entwicklungsumgebung (z.B. Eclipse) in der Progammiersprache Java implementiert. Sie können nicht aufgezeichnet werden. Allerdings besteht die Möglichkeit, Test-Skripte der Modultests wiederzuverwenden, so dass der Programmieraufwand minimiert werden kann. Ein weiterer großer Unterschied zeigt sich hier: die Skripte sind nicht von einem Kommunikations-Protokoll abhängig, sondern liegen eine Schicht darüber. Dieser Unterschied wird zum Vorteil, wenn die Applikation mithilfe eines Fat-Clients bedient wird, der auf ein weniger verbreitetes Protokoll zurückgreift. Dieses Argument wird jedoch mit der Zeit geschwächt, da die Tool-Hersteller darauf eingehen und die Palette unterstützter Protokolle erweitern.&lt;/p&gt;&lt;p&gt;Als Lastgenerator wird &lt;a href="http://www.clarkware.com/software/JUnitPerf.html"&gt;JUnitPerf&lt;/a&gt; verwendet. Die Testszenarien weren ebenfalls im Java-Quellcode erstellt. Eine Verteilung auf weitere Rechner wird nicht unterstützt und muss mit anderen Mitteln realisiert werden.&lt;/p&gt;&lt;p&gt;Für das Monitoring ist etwas mehr Aufwand zu betreiben. Die Laufzeitmessung sollte mindestens innerhalb der Test-Skripte durch ein standardisiertes Logging erfolgen. Standardisiert insofern, als dass eine spätere automatische Auswertung auf Basis von MS Excel o.ä. erleichtert wird. Zusätzliche Messpunkte sind sinnvoll und sollten mit Unterstützung durch die Entwicklung in der Applikation platziert werden. Für die Messung der Systemauslastung, Speicherverbrauch, etc. kann z.B. der System- oder Application-Server-Monitor verwendet werden (sollte jedes Betriebssystem/ jeder Application-Server mitliefern).&lt;/p&gt;&lt;p&gt;Zusammenfassend betrachtet stehen die hohen Kosten beim Einsatz käuflicher Tools dem geringen Komfort und dem manuellen Aufwand beim Einsatz von Junit gegenüber. Dieser Aufwand ist nicht zu unterschätzen, da er mit zusätzlichen Kosten verbunden ist. Sollten nicht weitere Faktoren, wie z.B. die unterstützten Protokolle die Entscheidung beeinflussen, so kann man von einer Bauchentscheidung sprechen. Man sollte sich auf keinen Fall durch die optisch sehr gut gestalteten käuflichen Tools beeinflussen lassen. Die Qualität des Junit-Ansatzes steht der ersten Alternative nach praktischen Erfahrungen in nichts nach.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-111018564546354170?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Site-Feed</title><link>http://softwarequalitaet.blogspot.com/2005/02/site-feed.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Sun, 13 Feb 2005 21:41:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-110832738386569245</guid><description>Dieses Blog verfügt über ein Site-Feed, dass Sie über die folgende URL bekommen:&lt;br /&gt;&lt;br /&gt;http://softwarequalitaet.blogspot.com/atom.xml&lt;br /&gt;&lt;br /&gt;Einen RSS Feed bekommen Sie hier:&lt;br /&gt;&lt;br /&gt;&lt;a title="Subscribe to my feed" href="http://feeds.feedburner.com/quality"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.feedburner.com/fb/images/pub/flchklt.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-110832738386569245?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Welches Thema interessiert Sie?</title><link>http://softwarequalitaet.blogspot.com/2005/01/welches-thema-interessiert-sie.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Sun, 9 Jan 2005 19:53:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-110536166819858353</guid><description>Helfen Sie mir und schicken Sie mir Kommentare mit Themen aus dem Bereich Qualität in der Softwareentwicklung, die Sie besonders interessieren aber in diesem Blog bisher nicht behandelt wurden. Vielen Dank!
&lt;br /&gt;&lt;!--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-110536166819858353?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Automatische vs. manuelle Tests</title><link>http://softwarequalitaet.blogspot.com/2005/01/automatische-vs-manuelle-tests.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Thu, 6 Jan 2005 21:15:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-110502812671507992</guid><description>&lt;p&gt;Mehrfach sind Kunden mit der Bitte an mich herangetreten, alle Tests zu automatisieren, ohne sich Gedanken über die entstehenden Kosten zu machen. Anhand von zwei Beispielen möchte ich erläutern, wie unterschiedlich die Kosten für Testautomation sind und weswegen die Alternative, nicht oder nur gezielt zu automatisieren, sinnvoll ist.&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;p&gt;Im ersten Beispiel betrachte ich Entwickler- oder Modultests. Gemeint sind damit die Tests, die von einem Entwickler implementiert werden, um den von ihm geschriebenen Code zu testen. Ein weit verbreitetes Framework hierfür ist &lt;a href="http://www.blogger.com/app/www.junit.org"&gt;JUnit&lt;/a&gt;, das im Rahmen von &lt;a href="http://www.blogger.com/app/xprogramming.com"&gt;Extreme Programming (XP)&lt;/a&gt; durch Kent Beck bekannt wurde. Diese Methode zeichnet sich durch folgende Eigenschaften aus:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;kostenloses Framework&lt;/li&gt;&lt;li&gt;Programmiersprache bekannt, da die Tests in der gleichen Sprache implementiert werden, wie das Produkt&lt;/li&gt;&lt;li&gt;geringe Wartungsanfälligkeit&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Beim Test First Ansatz werden die Tests geschrieben, bevor die Funktionalität programmiert wird. In diesem Fall kann man den Zeitaufwand für das erstellen der Tests auf die Problemanalysephase anrechnen.&lt;/p&gt;&lt;p&gt;Das zweite Beispiel behandelt funktionale Tests auf Ebene der Benutzerschnittstelle. Bekannte Werkzeuge hierfür sind z.B. Rational Robot oder Mercury WinRunner. Folgende Charakteristika dieser Werkzeuge habe ich beobachtet:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;hohe Kosten für Software &lt;/li&gt;&lt;li&gt;Spezialist erforderlich &lt;/li&gt;&lt;li&gt;Record &amp; Replay: im Verkaufsgespräch sehr beeindruckend, in der Praxis aber nicht ausreichend, da aufwendige Nacharbeiten notwendig sind &lt;/li&gt;&lt;li&gt;hohe Wartungsanfälligkeit&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Gern wird darauf verwiesen, dass Testskripte aufgezeichnet werden und sich problemlos erneut abspielen lassen (Record &amp;amp; Replay). Leider ist ein so aufgezeichnetes Skript in der Regel selten ohne weitere Eingriffe wieder ausführbar. Es sind aufwendige Nacharbeiten nötig. Zudem entsteht ein großer Pflegeaufwand, wenn sich die Benutzerschnittstelle nur geringfügig ändert. Dem entgegenhalten kann man, dass eine entsprechende Modularisierung der Tests Linderung verschafft. Dies setzt umfangreiche Erfahrungen voraus und ist gleichzeitig mit einem erhöhten Aufwand für das Testdesign verbunden.&lt;/p&gt;&lt;p&gt;Die Gesamtkosten setzen sich aus den Kosten für Softwarelizenzen und den Kosten zur Erstellung und Wartung der Tests (bzw. Testskripte) zusammen. Der Gewinn bei automatischen Tests liegt in der stark verkürzten Ausführungszeit der Tests, wird jedoch erkauft durch einen großen zeitlichen Aufwand bei Erstellung der Tests. Erst eine entsprechend hohe Wiederholungsrate führt zu einem Kostenvorteil.&lt;/p&gt;&lt;p&gt;Bei den Modultests sind die Gesamtkosten recht gering, hier ist eine breite Automation sehr sinnvoll. Im zweiten Beispiel entstehen sehr hohe Kosten, die nur bei gezieltem Einsatz und mit entsprechender Erfahrung kompensiert werden können. Hier rate ich, nur Teile zu automatisieren, die sich besonders leicht automatisieren lassen oder eine hohe Wiederholungsrate haben und gleichzeitig entsprechend einfach in der Funktionalität sind (Bsp.: Anlegen von 400 Testusern, die für jedes Release neu erfasst werden müssen).&lt;/p&gt;&lt;p&gt;Andernfalls ist das Geld in menschliche Tester besser investiert: automatisierte Tests fokussieren ausschließlich auf definierte Prüfpunkte, der Mensch findet auch außerhalb der Testspezifikation Fehler.&lt;/p&gt;&lt;p&gt;Weitergehende Informationen zu diesem Thema:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.stickyminds.com/BetterSoftware/magazine.asp?fn=cifea"&gt;Are You Ready for the Test Automation Game? von Kerry Zallar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-110502812671507992?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Traceability Matrix</title><link>http://softwarequalitaet.blogspot.com/2005/01/traceability-matrix.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Wed, 5 Jan 2005 20:19:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-110493479960259915</guid><description>&lt;p&gt;&lt;span &gt;Im Rahmen der Entwicklung von Tests dient die Traceability Matrix dazu, eine Verbindung zwischen den Testfällen und der zu testenden bzw. geforderten Funktionalität herzustellen und damit zu dokumentieren, dass auf dieser Ebene eine vollständige Testabdeckung besteht.&lt;/span&gt;&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;p&gt;&lt;span &gt;Dazu werden in der Regel die Anforderungen den Testfällen in Tabellenform gegenübergestellt. Nützliche Werkzeuge reichen von einfachen Office-Anwendungen (z.B. MS Excel) bis hin zu umfangreichen Software-Entwicklungswerkzeugen (z.B. Rational TestManager, Mercury TestDirector). Der Einsatz dieser Werkzeuge ist u.a. abhängig vom Anspruch und der Komplexität eines Projektes.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;Die Arbeit von Testteams wird stark erleichtert, wenn die Anforderungen gut gegliedert vorliegen. Im Beispiel Rational lassen sich Anforderungen mit RequisitePro erfassen, strukturieren und anschließend mit den Testfällen im TestManager verbinden. In einer gesonderten Ansicht lässt sich die Traceability Matrix im Tabellenformat darstellen. Der Vorteil bei diesem Vorgehen ist die Redundanzfreiheit gegenüber der separaten Pflege einer Tabelle.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;Für kleinere Projekte eignet sich eine einfachere Methode, mit der die Testabdeckung implizit nachgewiesen wird. Wenn die Anforderungen angemessen gegliedert sind (z.B. als Pflichtenheft), lässt sich daraus leicht ein Namensschema für die Testfälle ableiten. Der Vergleich vom Inhaltsverzeichnis des Pflichtenheftes und der Liste der Testfälle liefert eine angemessene Transparenz hinsichtlich der Testabdeckung.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;Ich möchte darauf hinweisen, dass eine vollständige Traceability Matrix nicht ausreicht, alle Fehler der Software zu finden. Sie kann jedoch sicherstellen, dass alle Bereiche getestet werden.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-110493479960259915?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Buchvorstellung: Lessons Learned in Software Testing</title><link>http://softwarequalitaet.blogspot.com/2004/12/buchvorstellung-lessons-learned-in.html</link><author>noreply@blogger.com (Christian Walter)</author><pubDate>Wed, 29 Dec 2004 14:48:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-9625082.post-110432835299646595</guid><description>Das Buch „Lessons Learned in Software Testing“ von &lt;a href="http://www.kaner.com"&gt;Cem Kaner&lt;/a&gt;, &lt;a href="http://www.satisfice.com"&gt;James Bach&lt;/a&gt; und &lt;a href="http://www.pettichord.com"&gt;Bret Pettichord&lt;/a&gt; enthält 293 Lektionen, die die drei Autoren innerhalb von über 50 Jahren Berufspraxis gelernt haben. Eine strenge Qualitätskontrolle durch die Autoren hat dafür gesorgt, dass die Lektionen nicht jedem durch neunzigminütiges scharfes Nachdenken bewusst werden. Stattdessen enthält das Buch weitergehende praktische Erfahrungen, die auf den ersten Blick widersprüchlich zu den eigenen Erfahrungen stehen können.
&lt;br /&gt;
&lt;br /&gt;&lt;span class="fullpost"&gt;Das ist jedoch kein Widerspruch an sich, handelt es sich hierbei um eine Sammlung persönlicher Erfahrungen, die unter anderen Umständen oder von anderen Personen zu abweichenden Ergebnissen hätten führen können. Und genau hier liegt eines der Hauptanliegen der Autoren: bei dem Buch handelt es sich nicht um Patentrezepte oder ein standardisiertes Vorgehen, sondern vielmehr um einen Baukasten von guten Empfehlungen, die situationsbedingt teils besser geeignet, teils weniger gut geeignet sind. Sie nennen diesen Ansatz „context-driven“. Der Anhang des Buches enthält den Aufruf, sich der Schule des „Context-Driven Approaches“ anzuschließen.
&lt;br /&gt;
&lt;br /&gt;Um den Überblick zu wahren, sind die Lektionen elf Themengebieten zugeordnet. Sie erstrecken sich von den Grundlagen des Testens, z.B. „The Role of the Tester“ und „Testing Techniques“, über Management-Themen, z.B. „Managing the Testing Project/ Group“ bis hin zur Karriereplanung. Das Thema Testautomation wird ebenso behandelt, wie Planung einer Test-Strategie und die Kommunikation mit Programmierern.
&lt;br /&gt;
&lt;br /&gt;Zielgruppe diese Buches sind Tester, Test-Manager und alle, die Kontakt mit Software-Testing haben, möglichst mit einigen Jahren praktischer Erfahrung auf diesem Gebiet. Was man in dem Buch nicht findet, sind technische Anleitungen, wie z. B. das Programmieren von Junit. Bücher dieser Art sind meiner Meinung nach ausreichend in der Literatur vertreten. Bei mir haben die 293 Lektionen einen ständigen Platz als Nachschlagewerk in meinem Bücherregal gefunden. Ich kann es jedem empfehlen, der sich mit Testen und Test-Management beschäftigt. In folgenden Artikeln werde ich auf einzelne inhaltliche Aspekte näher eingehen.
&lt;br /&gt;
&lt;br /&gt;Das Buch „Lessons Learned in Software-Testing“ ist 2002 in englischer Sprache im Verlag Wiley Computer Publishing erschienen.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9625082-110432835299646595?l=softwarequalitaet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>