18
VU Qualit¨ atssicherung in der Softwareentwicklung SS 2015 Assignment 1 Institut f¨ ur Softwaretechnologie TU Graz 10. M¨ arz 2015

VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

VU Qualitatssicherung in der

Softwareentwicklung SS 2015

Assignment 1

Institut fur SoftwaretechnologieTU Graz

10. Marz 2015

Page 2: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Inhalt

1 Organisatorisches

2 Assignment 1

3 Testen in C#

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 3: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Organisatorisches

4 Assignments

3er Gruppen

Gruppenanmeldung bis 17.03.2015

Abgabe 1. Assignment: 23.03.2015

Entwicklungsumgebung:Visual Studio 2010 Ultimate

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 4: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Aufgabe

Gruppenanmeldung

Volle Code Coverage

Erstellung von Randwerttests + Beantwortentheoretischer Frage

Naheres auf Ubungsblatt

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 5: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Domane

Messageboard, welches das Posten, “Liken” und Suchenvon Nachrichten erlaubt

Zwei Teile:

(Simuliertes) AktorensystemMessageboard-Funktionalitat

Aktoren fuhren parallel zueinander Aktionen aus undkommunizieren nur uber Messages

Das Framework verwendet kein multithreading, sondernsimuliert Parallelitat

Das Messageboard verwendet mehrere Typen von Aktoren

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 6: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Aktorensystem

Folgende Klassen implementieren SimulationSimulatedActorSystem: Managed Aktoren undsignalisiert das Fortschreiten von ZeitSimulatedActor: Abstrakte Klasse, welchemessage-passing-Logik implementiertCommunicationChannel: Abstraktion vonKommunikationskanal, welcher den Erhalt vonNachrichten verzogertMessage: interface, das jede versendbare Klasseimplementieren muss.

Zeit wird durch “Ticks” simuliert und beeinflusstden Erhalt von Nachrichtendas Verarbeiten von Nachrichten

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 7: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Messageboard

Vier Arten von Aktoren implementierenMessageboard-Funktionalitat:

Dispatcher: wahlt Worker fur Anfragen ausWorker: reagiert auf Anfragen von ClientsMessageStore: implementiert Persistenz-OperationenWorkerHelper: Hilfsaktor fur Kommunikation mitMessageStore

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 8: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Testen in C#

Verwendete TechnologienThema heute:

Unit Testing Framework : Microsoft VS Unit TestingCode Coverage Analyse (beinhaltet in Microsoft VisualStudio Ultimate/Premium)

Kommende Themen :

Pex (benotigt Visual Studio 2010)Spec Explorer (benotigt Visual Studio 2010 oder 2012)CodeContracts

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 9: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Unit Test - Erstellung

Neuer Test durch : Test → New Test ... → wahleUnit Test Wizard (erstellt Stubs)

beim ersten Mal : Create a new Visual C# test

project ...

danach : Auswahl des entsprechenden Testprojekts(verwende Projekt aus Framework)

nachste Seite : klicke Checkbox neben zu testendenKlassen

→ Test-Methoden-Stubs werden erstellt, erweitereTest-Klasse um weitere Tests

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 10: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Unit Test - Erstellung (Screenshots 1)

Abbildung : Screenshot von Unit-Test Erstellung Maske.

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 11: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Unit Test - Erstellung (Screenshots 2)

Abbildung : Auswahl der zu testenden Klassen.

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 12: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Test-Klassen-Methoden

Die Bedeutung von Methoden wird durch Attribute definiert:

TestMethod() Testcase der ausgefuhrt werden kann

TestClass() kennzeichnet Klasse, die Tests beinhaltet

TestInitialize() wird vor jedem Test aufgerufen (nutzlich zurKonfiguration von zu testenden Objekten)

TestCleanup() wird nach jedem Test aufgerufen

ExpectedException(typeof(ExceptionClass)) zusatzlich zuTestMethod(), eine Exception der KlasseExceptionClass wird erwartet

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 13: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Unit Test

Ausfuhrungein Test : Rechts-Klick in Test-Method → Run Tests

alle Tests in Klasse : Rechts-Klick in Test-Klasse → Run

Tests

alle Test in Solution : Test → Run→ All Tests in

Solution, oder Crtl+R,A

AssertionsAssertions werden mittels Methoden der KlasseMicrosoft.VisualStudio.TestTools.UnitTesting.

Assert ausgedruckt.

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 14: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Testen von Messageboard

Zugriff zu protected AttributenViele Methoden verandern nur den Zustand von protectedAttributen der Klassen und Auswirkungen sind nicht sofortersichtlich. Es kann Sinn machen, die Assertions uber diese zudefinieren. Dafur muss die Kapselung im Test gebrochenwerden. Zwei Moglichkeiten:

Verwendung vonMicrosoft.VisualStudio.TestTools.UnitTesting.

PrivateObject-Klasse

Innerhalb von Testprojekt: Ableiten von Klasse undpublic-Zugriffsmethoden implementieren

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 15: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Ein erster Unit Test

Im Framework enthalten

Zeigt Verwendung von Messageboard(Kommunikationaufbau und -abbau)

Code Coverage zahlt nicht zu Punkten

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 16: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Ein erster Unit Test - Code Coverage

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 17: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Code Coverage

Fur die Code Coverage Analyse muss diese in den TestSettings(Data and Diagnostics) fur das entsprechendeArtefakt ausgewahlt sein

Erreichbar uber : Test → Edit Test Settings

Resultat-Fenster aktivierbar durch : Test → Windows→Code Coverage Results

Bei einem Doppelklick auf eine Methode in diesemFenster wird der getestete Code farbkodiert angezeigt.

Blau hinterlegt werden voll abgedeckte ZeilenRot hinterlegt werden nicht abgedeckte ZeilenGelb hinterlegt werden partiell abgedeckte Zeilen

Fur die Aufgabe mussen alle Zeilen voll abgedeckt werden

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1

Page 18: VU Qualitätssicherung in der Softwareentwicklung SS 2015 ... · Assignment: 23.03.2015 Entwicklungsumgebung: Visual Studio 2010 Ultimate TU Graz VU Qualit atssicherung in der Softwareentwicklung

Organisatorisches Assignment 1 Testen in C#

Danke fur Ihre Aufmerksamkeit!

TU Graz VU Qualitatssicherung in der Softwareentwicklung SS 2015 Assignment 1