Testing mit Visual Studio 2012: Testing mit Visual Studio 2012
()
About this ebook
Related to Testing mit Visual Studio 2012
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Zend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsTFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation Rating: 0 out of 5 stars0 ratings
Related ebooks
Aufsetzen, Testen und Betrieb einer Android-App Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsTFS 2012 Jumpstart: Per Express zum Application Lifecycle Management Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsLogging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsSoftwarestabilität in der Industrie Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsTroubleshooting und Monitoring von Exchange und Office 365 Rating: 0 out of 5 stars0 ratingsPerformante Webanwendungen: Client- und serverseitige Techniken zur Performance-Optimierung Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsGrundlagen der Softwareentwicklung Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratingsREST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web Rating: 5 out of 5 stars5/5Architekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Rating: 0 out of 5 stars0 ratingsLanglebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen Rating: 0 out of 5 stars0 ratingsApplication Insights Rating: 0 out of 5 stars0 ratingsAgile Softwareentwicklung mit C# (Microsoft Press): Best Practices und Patterns für flexiblen und adaptiven C#-Code Rating: 0 out of 5 stars0 ratingsTFS 2012 Überblick und Installation: Der Weg zum TFS Rating: 0 out of 5 stars0 ratingsBasiswissen Testautomatisierung: Aus- und Weiterbildung zum ISTQB® Advanced Level Specialist – Certified Test Automation Engineer Rating: 0 out of 5 stars0 ratingsAPI-Design: Praxishandbuch für Java- und Webservice-Entwickler Rating: 0 out of 5 stars0 ratingsPowerShell: Grundlagen und Fortgeschrittene Techniken: Die IT-Sammlung Rating: 0 out of 5 stars0 ratingsJavaFX Rendering & 3D Rating: 0 out of 5 stars0 ratingsiOS Essentials: Frameworks, Tools und Twitter API Rating: 0 out of 5 stars0 ratingsTesten von Data-Warehouse- und Business-Intelligence-Systemen: Vorgehen, Methoden und Konzepte Rating: 0 out of 5 stars0 ratingsEinführung in LabVIEW: Kompendium Simulation und Regelung technischer Prozesse, Teil 1 Rating: 0 out of 5 stars0 ratings
Internet & Web For You
Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsWas kommt. Was geht. Was bleibt.: Kluge Texte über die wichtigsten Fragen unserer Zeit Rating: 0 out of 5 stars0 ratingsHTML5 & CSS3 (Prags) Rating: 0 out of 5 stars0 ratingsEinstieg in WordPress Rating: 0 out of 5 stars0 ratingsWir machen dieses Social Media Rating: 0 out of 5 stars0 ratingsJoomla 4.0 logisch!: Einfache Webseitenerstellung ohne Programmierkenntnisse Rating: 0 out of 5 stars0 ratingsDas Facebook-Marketing-Buch Rating: 4 out of 5 stars4/5Shopware 6 Handbuch Rating: 0 out of 5 stars0 ratingsAndroid Security: Von Fake-Apps, Trojanern und Spy Phones Rating: 0 out of 5 stars0 ratingsDer Content Faktor: Schreiben Sie Texte, die gefunden und gelesen werden Rating: 0 out of 5 stars0 ratings30 Minuten Metaverse Rating: 0 out of 5 stars0 ratingsEinführung ins Darknet: Darknet ABC Rating: 0 out of 5 stars0 ratingsUX-Missverständnisse: Was sich User wirklich wünschen Rating: 0 out of 5 stars0 ratingsSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsGoogle Platz 1: Lernen Sie von einem der führenden Suchmaschinenoptimierer Deutschlands Rating: 0 out of 5 stars0 ratingsPHP für WordPress: Themes und Templates selbst entwickeln Rating: 0 out of 5 stars0 ratingsSEO Crashkurs - 10 Schritte zum Erfolg auf Google Rating: 0 out of 5 stars0 ratingsSchnelleinstieg WordPress SEO: Einstellungen, Keywords, Plug-ins und Strategien für optimales SEO Rating: 0 out of 5 stars0 ratingsStarke Webtexte. So texten Sie Ihre Website selbst Rating: 0 out of 5 stars0 ratingsDas kleine Hypnose Einmaleins - Alles was Sie schon immer über die Hypnose wissen wollten von Ewald Pipper vom Hypnoseinstitut Rating: 0 out of 5 stars0 ratingsopenHAB: Automatisiertes Heim - Teil 1 Rating: 4 out of 5 stars4/5PR im Social Web: Das Handbuch für Kommunikationsprofis Rating: 0 out of 5 stars0 ratingsDas Buch zu Google Ads: Strategien für kleine und mittlere Unternehmen Rating: 0 out of 5 stars0 ratingsWordPress-Themes entwickeln: HTML5, CSS3, JavaScript und PHP: Praxiswissen und Quellcodes zum Entwurf von WordPress-Themes Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsIch Hacker – Du Script-Kiddy: Hacking und Cracking Rating: 0 out of 5 stars0 ratingsBug Bounty Hunting mit Kali-Linux oder Parrot Security OS: Hacking als Hautberuf oder Nebenjob Rating: 3 out of 5 stars3/5Einfach Verschlüsseln Rating: 0 out of 5 stars0 ratingsOnline-Marketing: 10 Schritte zur finanziellen Freiheit Rating: 0 out of 5 stars0 ratings
Reviews for Testing mit Visual Studio 2012
0 ratings0 reviews
Book preview
Testing mit Visual Studio 2012 - Hendrik Lösch
Hendrik Lösch
Testing mit
Visual Studio 2012
ISBN: 978-3-86802-461-6
© 2013 entwickler.press
Ein Imprint der Software & Support Media GmbH
Einführung
Software zu entwickeln ist mehr als nur Programmierung. Es ist der Prozess des Findens von Benutzeranforderungen, des Realisierens der entsprechenden Funktionalität und des Sicherstellens eines korrekt und stabil arbeitenden Produkts.
Wie jeder Entwickler weiß, klingt dies wesentlich einfacher als es tatsächlich ist. Häufig arbeiten wir an einem System, das sich beständig ändert und mit jeder geschriebenen Zeile Code wächst und komplexer wird. Die Software, die wir erstellen, verändert ihre Struktur täglich und deshalb müssen wir sicherstellen, dass die Arbeit eines Tages nicht die eines anderen beschädigt oder sogar unbrauchbar macht.
Testautomatisierung ist der beste Weg, um dieses Ziel zu erreichen. Während manuelle Tests zunächst praktikabler wirken, sind sie es dauerhaft jedoch nicht. Automatisierte Tests können schnell und so oft wiederholt werden, wie es notwendig ist. Die Art, wie sie ausgeführt werden, ist dabei immer gleich und nachvollziehbar. Deshalb können automatisierte Tests wesentlich kostengünstiger sein als ihre manuellen Pendants. Zusätzlich können durch sie Ressourcen für weit wichtigere Aufgaben frei werden, als das immer wiederkehrende Ausführen von Tests.
Über dieses Buch
Dieses Buch ist ein Leitfaden, der dabei helfen soll, die Möglichkeiten zu verstehen, die Visual Studio in Bezug auf das automatisierte Testen bietet. Dazu werden zunächst die grundlegenden Theorien erläutert, bevor anschließend gezeigt wird, wie Visual Studio 2012 genutzt werden kann, um entsprechende Tests zu erstellen. Dabei werden die Bestandteile der IDE erläutert und jeweils auf kurze Weise erklärt, wann und warum sie genutzt werden sollten.
Was dieses Buch (nicht) abdeckt
Microsoft unterscheidet zwischen Softwaretestern und -entwicklern sehr deutlich, indem beiden Gruppen jeweils individuelle Softwareprodukte zur Verfügung gestellt werden. Während Tester die Test Professional Edition nutzen sollten, richten sich alle anderen Editionen von Visual Studio vornehmlich an Entwickler. Die gleiche Unterscheidung trifft auch dieses Buch, was nicht zuletzt am Untertitel zu erkennen ist, weshalb Features wie das manuelle und explorative Testen ebenso wenig zum Umfang gehören, wie das Lab Management. Weiterhin wurde auf tiefergreifende Erklärungen der jeweiligen Theorien verzichtet und sich dafür auf die Funktionalität der Entwicklungsumgebung konzentriert. Sollte jedoch weitergehendes Interesse daran bestehen, empfiehlt sich ein Blick in die Bibliografie, die gerne als Literaturempfehlung verstanden werden darf.
Dieses Buch ist vorrangig für Personen geschrieben, die Code auf Basis von .NET oder WinRT schreiben, und dafür C# als Programmiersprache verwenden. Dies bedeutet nicht, dass Visual Basic oder unmanaged C++ komplett außen vorgelassen sind, sind doch die meisten beschriebenen Features für jene Sprachen bzw. die darunter liegenden Technologien ebenfalls verfügbar.
Weiterhin wird nicht gezielt zwischen Windows-8-Store-Apps und .NET-Applikationen unterschieden, da sich der Aufbau der Tests in vielen Fällen stark ähnelt und sich somit kein Unterschied in den Beispielen ergibt.
Das Beispielszenario
Wie bereits eingangs erwähnt, ist das eigentliche Ziel der Softwareentwicklung, einen Mehrwert für den Kunden zu schaffen. Um dies zu unterstreichen und möglichst nahe an der Praxis zu sein, liegt allen folgenden Beispielen die Annahme zugrunde, dass es sich bei der zu testenden Anwendung um ein reales Produkt handelt; einem Client für den bekannten Microblogging-Dienst Twitter.
Der Twitter-Client
Abbildung 0.1: Der Twitter-Client
Twitter erlaubt es seinen Nutzern, Kurznachrichten, so genannte Tweets, mit einer maximalen Gesamtlänge von 140 Zeichen zu schreiben. Diese können von anderen Nutzern abonniert und wiederum auch an deren Abonnenten weitergeleitet werden. Darüber hinaus können diese Nachrichten nicht nur Text, sondern auch Bilder enthalten, wodurch sich dank Twitter Informationen sehr schnell in der gesamten Welt verbreiten.
Wie später noch deutlicher werden sollte, ist es unerheblich, wie und ob die vorgestellte Software in ihrer Gänze implementiert wird. Die beschriebenen Schwierigkeiten und Fallstricke sind häufig die gleichen, ganz gleich ob eine Webseite, eine Desktop- oder eine mobile Applikation getestet werden soll. Aus diesem Grund ist die eigentliche Umsetzung des Clients, bis auf eine kurze Beschreibung der Architektur, auch nicht Teil dieses Buches und alle folgenden Codeausschnitte zeigen lediglich den Testcode.
Grundsätzliche Funktionalität
Den größten Teil der Applikation nimmt die so genannte Timeline ein. Diese enthält die Tweets, welche von Personen versandt wurden, denen der aktuell eingeloggte Benutzer folgt. Ein Eintrag in dieser Liste zeigt den Namen der Person, die die entsprechende Nachricht verfasste, dessen Avatar, das Veröffentlichungsdatum und den eigentlichen Nachrichtentext.
Im unteren Bereich können Tweets verfasst werden. In der Beispielanwendung soll es zunächst nur möglich sein, reine Textnachrichten zu verfassen. Es ist demnach nicht notwendig, auf Hyperlinks und Ähnliches Rücksicht zu nehmen, weshalb die Eingabe in einer einfachen Textbox geschieht. Wie bereits erwähnt, erlaubt Twitter nur Nachrichten mit einer Maximallänge von 140 Zeichen. Aus diesem Grund befindet sich neben der Textbox eine Anzeige, in der die noch verbliebenen Zeichen dargestellt werden. Demnach wird 140 angezeigt, wenn kein Text eingegeben wurde. 139 hingegen ist der Wert bei einem Zeichen und -1, wenn 141 Zeichen in der Textbox stehen.
Der Button zum Senden des Textes löst zwei Aktionen aus. Zum einen wird der Tweet zu Twitter geschickt und zum anderen wird Twitter kurze Zeit später die Nachricht wieder zurückschicken. Dies geschieht, weil jeder Nutzer zeitgleich auch sich selbst folgt und somit in seiner Timeline auch die eigenen Tweets lesen kann. Aus diesem Grund sollten eigene Nachrichten ebenso behandelt und damit auch angezeigt werden.
Architektur
Die Architektur der Anwendung ist sehr simpel. So gibt es vorrangig drei Klassen, die geprüft werden müssen, und die die drei Schichten des Programms widerspiegeln. Für eine bessere Testbarkeit wird dabei auf das MVVM-Pattern zurückgegriffen, welches es erlaubt, die Geschäftslogik und Benutzerschnittstelle lose zu koppeln. Ein genaues Wissen zu diesem Entwurfsmuster ist nachfolgend nicht notwendig.
Abbildung 0.2: Abhängigkeiten der Beispielklassen
MainWindow – Stellt die Benutzerschnittstelle mit allen visuellen Elementen wie Buttons, Listboxen und Textboxen dar.
ViewModel – Repräsentiert die Geschäftslogik, an die die Benutzerschnittstelle gebunden wird und die eine Liste bereitstellt, in der sich die Tweets befinden, die in der Timeline angezeigt werden sollen. Weiterhin enthält sie einen Counter, der die bereits eingegebenen Zeichen zählt sowie Methoden, mit denen der Nutzer eingeloggt oder eine Nachricht verschickt werden kann.
TwitterConnector – Hierbei handelt es sich um einen Adapter des Twitter-API, das das Model darstellt. Dieses wird durch das View Model genutzt, um auf die Dienste von Twitter zuzugreifen, um Informationen zu erhalten, zu verschicken oder den Benutzer zu authentifizieren.
Zusätzlich liegt die Klasse Tweet vor. Bei ihr handelt es sich um ein Datentransferobjekt, das alle notwendigen Informationen einer Nachricht kapselt. Dies wären zum Beispiel der Name des Nutzers, der sie verschickte, sein Avatar und der eigentliche Text.
Die Authentifizierung des Benutzers ist sehr komplex und es ist nicht zielführend, sie genauer zu beschreiben, da diese Informationen wenig Bedeutung für den Inhalt dieses Buches haben. Einzig die Tatsache, dass zur Authentifizierung ein geheimer Token von der Applikation gespeichert werden muss, ist wichtig. Jegliche Kommunikation mit dem Server muss zunächst über diesen Token initiiert werden. Dies wird nachfolgend getan, indem der Token in der app.config-Datei hinterlegt wird. Zugegebenermaßen ist dieses Vorgehen durchaus sicherheitskritisch, erlaubt aber einfachere Beispiele mit geringem Hintergrundwissen, die sich mehr auf das Thema des Buches konzentrieren: den Softwaretest.
1 Einleitung
Das folgende Kapitel beschreibt in aller Kürze die Konzepte, die sich hinter den Erläuterungen der kommenden Kapitel verbergen. Es klärt dabei vor allem die wichtigsten Definitionen und erläutert einige der Theorien des Testens sowie die unterschiedlichen Vorgehensmethoden bei der Entwicklung von Software, die zu einem