4. Selenium Core
am Beispiel eines Zinsrechner
Action - Tabelle
Selenium Befehl
open /JugsBase/zinsrechner.jsp Argumente
type betrag 20.0
type zinsatz 22.0
type laufzeit 100.0
clickAndWait submit
assertTextPresent 8649939365.27
Euro
Target
6. Selenium Remote Control
Anbindung Selenium in Java Code als Test Treiber
Selenium Server
Browser
Firefox, IE
Selenium Core
JAVA,
PHP...
SUT
HTTP Proxy
Webapplikation
10. Was ist ein Vorgehensmodell?
• Reihenfolge der Arbeitsabläufe (Phasen)
• Rahmenwerk (Framework)
• Fertigstellungskriterien (Umfang und Inhalt)
• Verantwortlichkeiten und Kompetenzen (Rollen)
• notwendige Mitarbeiterqualifikationen (Zertifikate)
• definierte Standards, Richtlinien und Werkzeuge
16. Vorteile Wasserfall
• klare Abgrenzung der einzelnen Phasen
• einfache Möglichkeiten der Planung und Kontrolle
• bei
stabilen Anforderungen und klarer Abschätzung von
Kosten und Umfang sehr effektives Modell
17. Nachteile Wasserfall
• Abgrenzungsproblem
• Abfolgeproblem
• Das Modell ist nur auf einfache Projekte anwendbar
• Unflexibel gegenüber Änderungen und im Vorgehen
• Frühes
Festschreiben der Anforderungen ist sehr
problematisch
• Einführungdes Systems sehr spät nach Beginn des
Entwicklungszyklus
• Fehler werden unter Umständen spät erkannt (Big Bang)
18. Nachteile Wasserfall
Aufwand in PT Typischer Projektverlauf
geplanter Verlauf
80
60
Wir merken erst hier wir
haben ein Problem!!!
40
20
0
Requirement Analysis System Design Coding Testing Delivery
Wasserfall Phasen
19. V-Modell
Anforderungsdefinition Abnahmetest
Funktionaler
Systemtest
Systementwurf
Ko
Technischer
Integrationstest
ns
Systementwurf
en
tru
as
k
tio
tph
n
Komponenten-
sp
s
Komponententest
Te
spezifikation
ha
se
n
Programmierung
21. Vorteile V-Modell
• Anpassung an projektspezifische Anforderungen
• Integration vieler Aspekte des Entwicklungsprozesses
• Standardisierung
der Abwicklung von
Systemerstellungsprojekten
22. Nachteile V-Modell
• Zu allgemein für kleine und mittlere Software-Modelle
• Sehr bürokratisch
• ...
24. Manifesto for Agile Software Development
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we have
come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value in the items on the right, we value
the items on the left more.
http://agilemanifesto.org/
35. Refactoring
„Refactoring bezeichnet in der Software-Entwicklung die
manuelle oder automatisierte Strukturverbesserung von
Quelltexten unter Beibehaltung des beobachtbaren
Verhaltens. Dabei sollen die Lesbarkeit, Verständlichkeit,
Wartbarkeitund Erweiterbarkeit verbessert werden, mit
dem Ziel, den jeweiligen Aufwand für Fehleranalyse und
funktionale Erweiterungen deutlich zu senken.“
- Wikipedia
36. Fundamentaler Refactoring Prozess
1.) Erstelle einen Test (Unit-Test) mit möglich 100% Abdeckung
2.) Führe den Test aus (Green bar)
3.) Refactoring
4.) Führe den Test aus (Green bar)
39. Übung 1
• ProbierenSie die Refactoring Methoden:
Extrahiere Methode, Extrahiere lokale Variable,
Extrahiere Konstante, Extrahiere Interface
In der Quicksort Beispiel Klasse aus
• Nutzen Sie Ihren Test um sicherzustellen
dass Sie lediglich die Struktur ändern
41. Test Driven Development
Testgetriebene Entwicklung bezeichnet man eine
Agile Methode zur Entwicklung einer Software, bei
der Software-Tests vor den zu testenden
Komponenten entwickelt werden.
42. Test Driven Development Prozess
1.) Erstelle einen kleinen Test
2.) Führe alle Tests aus wobei der neue nicht funktioniert (Red bar)
3.) Erfülle den Test mit möglichst wenig Code
4.) Führe alle Tests aus, wobei alle Grün (Green-Bar)
5.) Refactoring - z.B. Entferne duplizierten Code
44. Test List Pattern
• Es empfiehlt sich beim TDD eine TODO Liste zu führen mit den
Funktionen die noch umgesetzt werden soll
• Man spricht im TDD hier vom Test List Pattern - Test Driven
Development by Example Kent Beck
47. Geld Beispiel
TODO Liste:
• 10 € * 10 = 100 €
• Betrag sollte private sein
• Euro Nebeneffekte
• equals()
• hashCode()
48. Geld Beispiel
TODO Liste:
• 10 € * 10 = 100 €
• Betrag sollte private sein
• Euro Nebeneffekte
• equals()
• hashCode()
• Equals null und object
49. TDD Vorteile
• Tests
• Hohe Code Abdeckung
• Gray-Box Testing statt White-Box
• Erfüllung der Anforderungen ist messbar
• Durchführung eines Refactoring ist mit wenig Fehlern behaftet
• Die Unit-Testsuite stellt eine „ausführbare Spezifikation“ dar
50. TDD Nachteile
• Entwickler die keine Erfahrung in der testgetriebenen
Entwicklung besitzen ist die Umsetzung schwierig
• Hohes Test KnowHow bei den Entwickler nötig (kann man auch
als Vorteil sehen)
• Hohe Anforderungen an Werkzeuge z.B. IDE
51. Übung 2
• Erstellen
Sie Testgetrieben eine Software
Komponente die die Anzahl der Wörter in einem
Text zählt
• Beispiel: „Hallo hallo Beispiel TEXT für Text.“
Ergebnis:
Hallo Beispiel Text für
2 1 2 1