Testing mit Visual Studio 2012: Testing mit Visual Studio 2012
Von Hendrik Lösch
()
Über dieses E-Book
Ähnlich wie Testing mit Visual Studio 2012
Titel in dieser Serie (100)
JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5Erfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Management Bewertung: 0 von 5 Sternen0 BewertungenBPM: Strategien und Anwendungsfälle Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Technologiegrundlagen Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Aufsetzen, Testen und Betrieb einer Android-App Bewertung: 0 von 5 Sternen0 BewertungenSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 16 Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Jumpstart: Per Express zum Application Lifecycle Management Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenLogging: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenSoftwarestabilität in der Industrie Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile: Unit Testing Bewertung: 0 von 5 Sternen0 BewertungenTroubleshooting und Monitoring von Exchange und Office 365 Bewertung: 0 von 5 Sternen0 BewertungenSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Bewertung: 0 von 5 Sternen0 BewertungenGrundlagen der Softwareentwicklung Bewertung: 0 von 5 Sternen0 BewertungenSQL Server: Performanceprobleme analysieren und beheben Bewertung: 0 von 5 Sternen0 BewertungenREST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web Bewertung: 5 von 5 Sternen5/5Architekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Bewertung: 0 von 5 Sternen0 BewertungenApplication Insights Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Überblick und Installation: Der Weg zum TFS Bewertung: 0 von 5 Sternen0 BewertungenBasiswissen Testautomatisierung: Aus- und Weiterbildung zum ISTQB® Advanced Level Specialist – Certified Test Automation Engineer Bewertung: 0 von 5 Sternen0 BewertungenAPI-Design: Praxishandbuch für Java- und Webservice-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenPowerShell: Grundlagen und Fortgeschrittene Techniken: Die IT-Sammlung Bewertung: 0 von 5 Sternen0 BewertungenJavaFX Rendering & 3D Bewertung: 0 von 5 Sternen0 BewertungeniOS Essentials: Frameworks, Tools und Twitter API Bewertung: 0 von 5 Sternen0 BewertungenEinführung in LabVIEW: Kompendium Simulation und Regelung technischer Prozesse, Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenContinuous Delivery: Der pragmatische Einstieg Bewertung: 0 von 5 Sternen0 BewertungenLean Testing für C++-Programmierer: Angemessen statt aufwendig testen Bewertung: 0 von 5 Sternen0 BewertungenVisual Studio Release Management Bewertung: 0 von 5 Sternen0 BewertungenKompakteinstieg: Continuous Integration mit Jenkins Bewertung: 0 von 5 Sternen0 BewertungenExtensions für TYPO3: So entwickeln Sie maßgeschneiderte TYPO3-Erweiterungen Bewertung: 0 von 5 Sternen0 Bewertungen
Internet & Web für Sie
Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenSuchmaschinenoptimierung - Die Grundlagen (seo) Bewertung: 0 von 5 Sternen0 BewertungenWas ist Social Selling und wie funktioniert es: Überblick und Einsatzmöglichkeiten Bewertung: 0 von 5 Sternen0 BewertungenEinführung ins Darknet: Darknet ABC Bewertung: 0 von 5 Sternen0 BewertungenEinfach Verschlüsseln Bewertung: 0 von 5 Sternen0 BewertungenChatGPT Plus: Durchstarten in eine neue Welt: Entdecken Sie Künstliche Intelligenz mit ChatGPT Plus und GPT-4 Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Bewertung: 0 von 5 Sternen0 BewertungenWas kommt. Was geht. Was bleibt.: Kluge Texte über die wichtigsten Fragen unserer Zeit Bewertung: 0 von 5 Sternen0 BewertungenStarke Webtexte. So texten Sie Ihre Website selbst Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in WordPress Bewertung: 0 von 5 Sternen0 BewertungenSEO Crashkurs - 10 Schritte zum Erfolg auf Google Bewertung: 0 von 5 Sternen0 BewertungenCSS Secrets: Typische Webdesign-Probleme klug gelöst Bewertung: 0 von 5 Sternen0 BewertungenIch Hacker – Du Script-Kiddy: Hacking und Cracking Bewertung: 0 von 5 Sternen0 BewertungenSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Bewertung: 0 von 5 Sternen0 BewertungenÜberwachungswahn: ...wie umgehen ?? Bewertung: 0 von 5 Sternen0 BewertungenSeo Guru: Suchmaschinenoptimierung für Anfänger, Fortgeschrittene und Profis Bewertung: 0 von 5 Sternen0 BewertungenDas Buch zu Google Ads: Strategien für kleine und mittlere Unternehmen Bewertung: 0 von 5 Sternen0 BewertungenBug Bounty Hunting mit Kali-Linux oder Parrot Security OS: Hacking als Hautberuf oder Nebenjob Bewertung: 3 von 5 Sternen3/530 Minuten Suchmaschinenoptimierung Bewertung: 0 von 5 Sternen0 BewertungenDas Facebook-Marketing-Buch Bewertung: 4 von 5 Sternen4/5PHP 7 und MySQL: Ihr praktischer Einstieg in die Programmierung dynamischer Websites Bewertung: 0 von 5 Sternen0 BewertungenOnline-Marketing: 10 Schritte zur finanziellen Freiheit Bewertung: 0 von 5 Sternen0 BewertungenUX Design - Definition und Grundlagen: Definition und Grundlagen Bewertung: 4 von 5 Sternen4/5Website Performance Bewertung: 0 von 5 Sternen0 BewertungenopenHAB: Automatisiertes Heim - Teil 1 Bewertung: 4 von 5 Sternen4/5CSS – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSEO und Online-Marketing - So wird Ihre Website erfolgreich! Bewertung: 0 von 5 Sternen0 BewertungenWuzzUp - Tipps und Tricks für deinen Channel: Humorvolle YouTube-Anleitung Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Testing mit Visual Studio 2012
0 Bewertungen0 Rezensionen
Buchvorschau
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