Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009



Ähnliche Dokumente
Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Internet Explorer Version 6

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

.NET Code schützen. Projekt.NET. Version 1.0

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Installation und Inbetriebnahme von Microsoft Visual C Express

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Serviceanweisung Austausch Globalsign Ausstellerzertifikate

FDAX mit Zertifikaten gehandelt

Anwendungsbeispiele Buchhaltung

Anleitung zur Installation des AP-Manager-II

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Eigenen Farbverlauf erstellen

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

Was meinen die Leute eigentlich mit: Grexit?

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Terminabgleich mit Mobiltelefonen

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Anleitung über den Umgang mit Schildern

Die Online-Meetings bei den Anonymen Alkoholikern. zum Thema. Online - Meetings. Eine neue Form der Selbsthilfe?

Umstieg auf Microsoft Exchange in der Fakultät 02

Informationen zum neuen Studmail häufige Fragen

Updatehinweise für die Version forma 5.5.5

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Wir machen Praxiszahlen transparent 1

Whitebox-Tests: Allgemeines

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Bilder zum Upload verkleinern

Virtual Channel installieren

macs Support Ticket System

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Qt-Projekte mit Visual Studio 2005

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Microsoft Update Windows Update

Professionelle Seminare im Bereich MS-Office

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Anleitungen zum KMG- -Konto

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Webalizer HOWTO. Stand:

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Erfahrungen mit Hartz IV- Empfängern

Datensicherung und Wiederherstellung

Spezifikation für Coaching Funktion in OpenOLAT

SharePoint Demonstration

Anleitung, WebRecherche

Installation OMNIKEY 3121 USB

IT-Unternehmensarchitektur Übung 01: IT-Strategie

Installation der Eicon Diva PCI Karte unter Windows XP

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Adminer: Installationsanleitung

Benutzerhandbuch MedHQ-App

Der große VideoClip- Wettbewerb von Media Markt.

Excel Auswertungen in XAuftrag / XFibu

Jetzt neu: Online Reporting Schritt für Schritt durch das Online Reporting (OLR) Online Liedmeldung

Tutorial -

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Netzwerk-Migration. Netzwerk-Migration IACBOX.COM. Version Deutsch

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Die Post hat eine Umfrage gemacht

Aufgaben zur Flächenberechnung mit der Integralrechung

Hilfedatei der Oden$-Börse Stand Juni 2014

Damit auch Sie den richtigen Weg nehmen können die 8 wichtigsten Punkte, die Sie bei der Beantragung Ihrer Krankenversicherung beachten sollten:

Lizenzierung von System Center 2012

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Java: Vererbung. Teil 3: super()

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

DER SELBST-CHECK FÜR IHR PROJEKT

Änderung der Sicherheitseinstellungen von konten

Studieren- Erklärungen und Tipps

Arbeiten mit UMLed und Delphi

Leichte-Sprache-Bilder

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Technische Analyse der Zukunft

ARCO Software - Anleitung zur Umstellung der MWSt

Installationsanleitung für das KKL bzw. AGV4000 Interface

How-to: Webserver NAT. Securepoint Security System Version 2007nx

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

ICS-Addin. Benutzerhandbuch. Version: 1.0

MetaQuotes Empfehlungen zum Gebrauch von

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Vorgehensweise bei Lastschriftverfahren

Das Freiwillige Soziale Jahr. Der Bundes-Freiwilligen-Dienst

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Transkript:

Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger Thomas Pichler

Inhaltsverzeichnis 1. Einsatz Test-Stub... 3 2. Diskussion Code-Coverage Allgemein... 3 2.1. Projekt... 3 2.2. Model... 4 2.2.1. MineSweeperModel... 4 2.3. MineFieldModel... 8 2.3.1. getadjancies... 8 2.4. Util... 9 2.5. View... 9 3. Diskussion Code-Coverage Testfälle... 9 3.1.1. MineSweeperModelTest... 10 3.1.2. StopWatchTest... 11 Abbildungsverzeichnis Abbildung 1: Projekt... 3 Abbildung 2: Model... 4 Abbildung 3: MineSweeperModel... 4 Abbildung 4: flagsquare... 5 Abbildung 5: gameover... 6 Abbildung 6: revealadjacent... 6 Abbildung 7: revealall... 7 Abbildung 8: MineFieldModel... 8 Abbildung 9: getadjancies... 8 Abbildung 10: Util... 9 Abbildung 11: View... 9 Abbildung 12: jsweeper.test... 9 Abbildung 13: MineSweeperModel.java... 10 Abbildung 14: testrevealsquare... 11 Abbildung 15: StopWatchTest.java... 11 Abbildung 16: testresetwatch... 12 Märzinger, Pichler Seite 2 / 12

1. Einsatz Test-Stub Wir haben uns dazu entschieden bei den Tests keine Test-Stubs zu verwenden. Dies hat einmal den Grund, dass dazu ein umfangreicher Eingriff in den bestehenden Code notwendig gewesen wäre. Um dennoch die volle Funktionalität der Klasse MineSweeperModel.java testen zu können, haben wir uns über eine zusätzliche Getter-Methode Zugriff auf das MineField beschafft. /** * Implemented for the test with JUnit4 * Through that it is possible to test the class MineSweeperModel * @return minefield / public FieldModel getminefield() { return minefield; } 2. Diskussion Code-Coverage Allgemein 2.1. Projekt Überblick über die Abdeckung des gesamten Projekts. Abbildung 1: Projekt Auffallend dabei ist, dass bei dem Package Controller keine Abdeckung vorherrscht. Dies beruht aber darauf, dass der Controller nur die Aufgabe besitzt ein Spiel zu starten. Da wir aber über JUnit nur in den Packages Model und Util testen, wird die Klasse Controller.java nie angesprochen. Märzinger, Pichler Seite 3 / 12

2.2. Model Abbildung 2: Model Hier wird im gesamten Package eine Abdeckung von 94,6% erreicht. Die beiden Klassen FieldModel.java und Model.java stellen dabei ein Interface dar. Und werden auch bei der Abdeckung nicht berücksichtigt. Als nächstes wird die Klasse MineSweeperModel.java genauer betrachtet. 2.2.1. MineSweeperModel Abbildung 3: MineSweeperModel In dieser Klasse erreichen wir eine Abdeckung von 94,0 %. Dabei sind vier Methoden enthalten, die keine Abdeckung von 100,0 % erreichen. Diese müssen genauer betrachtet werden. Märzinger, Pichler Seite 4 / 12

2.2.1.1. flagsquare Abbildung 4: flagsquare Hier sieht man das die Methode von isrevealed(row,col) nicht bei der Abdeckung mit einbezogen wird. Betrachtet man dies genauer, so stellt man fest, dass hierbei eine Methode des Interface FieldModel verwendet wird. Hier dürfte Clover ein Problem mit der Markierung bzw. dem Feststellen der Benützung des Interfaces haben, da durch Debuggen der Testfälle festgestellt wurde, dass die Methode jedoch tatsächlich korrekt aufgerufen wird im Zuge der Ausführung der Testfälle. Märzinger, Pichler Seite 5 / 12

2.2.1.2. gameover Abbildung 5: gameover Auch hier wird wieder eine Methode von Clover nicht als durchlaufen erkannt. Obwohl dies der Fall sein muss, da sonst der Rumpf der If-Verzweigung nicht ausgeführt worden wäre und wiederrum mittels Debuggen der Testfälle der Aufruf verifiziert wurde. Demnach ist auch hier eine Abdeckung von 100,0 % gegeben. 2.2.1.3. revealadjacent Abbildung 6: revealadjacent In dieser Methode erfolgt das Aufdecken aller umliegenden Felder, falls nach dem Spielprinzip darin keine Minen versteckt sind. Wie auch bereits bei flagsquare() wird hier wieder auf eine Methode des Interface zugegriffen. Und das viermal, da das Aufdecken über eine Rekursion gelöst ist. Damit werden alle Felder links, rechts, oben und unten aufgedeckt. Auch hier ist dadurch eine Abdeckung von 100,0 % gegeben. Märzinger, Pichler Seite 6 / 12

2.2.1.4. revealall Abbildung 7: revealall Auch hier ist wieder eine Interface Methode betroffen. Welche von Clover nicht erkannt wird. Aber durch den Verlauf des Code ist eindeutig sichtbar, das die Methode betreten werden muss, da ansonsten der If-Zweig nicht betreten worden wäre. Auch dieser Fall wurde mittels Debuggen verifiziert. Märzinger, Pichler Seite 7 / 12

2.3. MineFieldModel Abbildung 8: MineFieldModel Bei dieser Klasse erreichen wir eine Abdeckung von 95,5 %. Auffallend dabei ist, dass alle Methoden bis auf eine Methode eine Abdeckung von 100 % erreichen. Daher ist die Methode getadjacencies genauer zu betrachten. 2.3.1. getadjancies Abbildung 9: getadjancies Da dies eine öffentliche Methode darstellt, wurde nach geforscht von wo aus sie im normalen Spielverlauf aus aufgerufen wird. Da dies aber nicht Teil einer der Märzinger, Pichler Seite 8 / 12

zu testenden Klasse war, ist kein Testfall vorhanden, mit dem die Methode getestet worden wäre und auch sonst scheint die Methode vom restlichen jsweeper-source-code nie aufgerufen zu werden. 2.4. Util Abbildung 10: Util Hier erreichen wir bei dem Testlauf eine Abdeckung von 100,0 % und daher ist hier keine Verbesserung notwendig. 2.5. View Abbildung 11: View 3. Diskussion Code-Coverage Testfälle Abbildung 12: jsweeper.test Bei den Testfällen erreichen wir eine Abdeckung von 98,1 %. Die Klasse AllTest.java erreicht erhält hierbei 0 % da es sich um die Test-Suite handelt. Interessanter hierbei ist die Abdeckung der geforderten Methoden laut Angabe. Märzinger, Pichler Seite 9 / 12

3.1.1. MineSweeperModelTest Abbildung 13: MineSweeperModel.java Bei den Testfällen wird eine Abdeckung von 99,4 % erreicht. Die Methoden setup and teardown sind von JUnit-Test und werden von Clover nicht berücksichtigt. Es bleiben daher noch die Methoden testrevealsquare. Märzinger, Pichler Seite 10 / 12

3.1.1.1. testrevealsquare Abbildung 14: testrevealsquare Auch hierbei hat Clover wieder das Problem, mit dem Interface und dadurch kommt die Abweichung zu den 100,0 % zu Stande. 3.1.2. StopWatchTest Abbildung 15: StopWatchTest.java Hier wird eine Abdeckung von 98,9 % erreicht. Die Methode testresetwatch bedarf dabei einer genaueren Betrachtung. Märzinger, Pichler Seite 11 / 12

3.1.2.1. testresetwatch Abbildung 16: testresetwatch In dieser Methode muss ein Fehler gefunden werden. Durch das Auftreten des Fehlers wird nach assertequals abgebrochen und die letzte Anweisung wird nicht ausgeführt. Märzinger, Pichler Seite 12 / 12