SlideShare ist ein Scribd-Unternehmen logo
Software Technik
            HTWG Konstanz



    Vorgehensmodelle und Agile
          Software Entwicklung



                            Christian Baranowski
Wiederholung
Oberflächentests mit Selenium
Oberflächentests
Einführung in Selenium
                Selenium Core




     Selenium                   Selenium RC
        IDE
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
Selenium IDE
Capture & Replay Tests mit Selenium




            Action Tabelle
Selenium Remote Control
Anbindung Selenium in Java Code als Test Treiber


                   Selenium Server
                                        Browser
                                       Firefox, IE
                   Selenium Core
        JAVA,
        PHP...
                                         SUT
                     HTTP Proxy
                                     Webapplikation
Vorgehensmodelle
Was ist Software Technik ?

  Prozesse   Methoden    Werkzeuge
     1          2            3
Warum Vorgehensmodelle?
• Vorhersehbare, planbare   und kontrollierbare Software-
 Entwicklungsprojekte

• Prozess   Optimierungen

• Zertifizierbarkeit

• Prozessqualität




                Beherrschung komplexer Prozesse
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
Welche Vorgehensmodell gibt es?
Klassische Modelle   Agile Modelle

• Wasserfall         • Scrum

• V-Modell           • Extreme   Programming (XP)

• RUP                • Crystal

• Spiralmodell       • ...

• ...
Softwarelebenszyklus
         Betrieb und               Problem
          Wartung                  Analyse




     System                              System
     Testen                            Spezifikation




                       Umsetzung
Analyse und Umsetzung
Projekt Phasen

                                                        Test
  Spezifikation

                                                   Systemtest



    Architektur
     Design

                                Integrationstest

  Implementierung

                    Modultest
Requirement Analysis          Wasserfallmodell

              System Design



                          Coding



                                   Testing



                                             Delivery
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
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)
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
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
V-Modell XT




      Quelle: V-Modell-XT Releases 1.3 Dokumentation
Vorteile V-Modell
• Anpassung     an projektspezifische Anforderungen

• Integration   vieler Aspekte des Entwicklungsprozesses

• Standardisierung
                 der Abwicklung von
 Systemerstellungsprojekten
Nachteile V-Modell
• Zu    allgemein für kleine und mittlere Software-Modelle
• Sehr   bürokratisch
• ...
Agile Software Entwicklung
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/
iterative Softwareentwicklung




                  Quelle: Wikipedia DE
Extreme Programming (XP)




            Quelle: Wikipedia
Extreme Programming (XP)




               Quelle: Wikipedia
Extreme Programming (XP)




               Quelle: Wikipedia
Kommunikation
Team
Planning Poker




Quelle: http://www.agile42.com/cms/pages/poker/
Domain Driven Design
ENTITIES   VALUE OBJECT   SERVICES




  REPOSITORIES     FACTORIES
Pair Programming
Refactoring Grundlagen
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
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)
Refactoring Patterns
• Rename Class, Field, Method
• Extrahiere Methode
• Extrahiere lokale Variable
• Extrahiere Konstante
• Extrahiere Interface
• ...
Refactoring Patterns in Eclipse
Ü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
Test Driven Development
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.
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
Red Bar to Green Bar Pattern
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
Geld Beispiel

   Produkt            Anzahl   Preis   Summe

     Füller            10      10 €    100 €

  Schokolade            5      25 €    125 €


TODO Liste:
• 10 € * 10 = 100 €
Geld Beispiel


TODO Liste:
• 10 € * 10 = 100 €
• Betrag sollte private sein
• Euro Nebeneffekte
Geld Beispiel

TODO Liste:
• 10 € * 10 = 100 €
• Betrag sollte private sein
• Euro Nebeneffekte
• equals()
• hashCode()
Geld Beispiel
TODO Liste:
• 10 € * 10 = 100 €
• Betrag sollte private sein
• Euro Nebeneffekte
• equals()
• hashCode()
• Equals null und object
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
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
Ü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
Zusammenfassung Vorgehensmodelle
Scrum




                                 Quelle: scrumalliance.org


Betrachten wir nächste Woche vor der Klausur Vorbereitung
ausführlich ...
Architektur
  Web Anwendungen
(Geschäftsanwendungen)
Architektur
         Web Anwendungen

Test-
Client
                     Geschäfts-
           Fassade
                      klassen
Web-
Client
Architektur
Web Anwendungen
    Browser/HTML




       JSF/JSP



    BackingBeans

                        DTO

       Fassade



   Geschäftsklassen

                      Repository

      Datenbank
Einführung in Java Server Faces
Übung 3

• ErstellenSie ein einfaches Formular zum erstellen
 eines Tasks mit JSF.

• Nutzen   Sie als Basis den Coderahmen für die
 Übung.

Weitere ähnliche Inhalte

Was ist angesagt?

SE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen ProjektenSE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen Projekten
Peter Haberl
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010mspgermany
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
GFU Cyrus AG
 
C1 SetCon Broschüre TAPE
C1 SetCon Broschüre TAPEC1 SetCon Broschüre TAPE
C1 SetCon Broschüre TAPEC1 SetCon GmbH
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft AG
 
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft AG
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
WebcsonsultsEU
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
Michael Brandt
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10inovex GmbH
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
Claudia Haußmann 🦋
 
Agilität mit Scrum - Überblick
Agilität mit Scrum - ÜberblickAgilität mit Scrum - Überblick
Agilität mit Scrum - Überblick
Claudia Haußmann 🦋
 
Testing untestable code - Herbstcampus12
Testing untestable code - Herbstcampus12Testing untestable code - Herbstcampus12
Testing untestable code - Herbstcampus12Stephan Hochdörfer
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
jlink
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-Wartung
Ernest Wallmueller
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
gedoplan
 
abh Mystery Shopping
abh Mystery Shoppingabh Mystery Shopping
abh Mystery Shopping
Dr. Ralf Deckers
 
Softwaretests: Motivation und Überblick
Softwaretests: Motivation und ÜberblickSoftwaretests: Motivation und Überblick
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Ralf Sigmund
 
Framework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelFramework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelBenjamin Eberlei
 

Was ist angesagt? (20)

SE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen ProjektenSE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen Projekten
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
C1 SetCon Broschüre TAPE
C1 SetCon Broschüre TAPEC1 SetCon Broschüre TAPE
C1 SetCon Broschüre TAPE
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives Testen
 
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Agilität mit Scrum - Überblick
Agilität mit Scrum - ÜberblickAgilität mit Scrum - Überblick
Agilität mit Scrum - Überblick
 
Testing untestable code - Herbstcampus12
Testing untestable code - Herbstcampus12Testing untestable code - Herbstcampus12
Testing untestable code - Herbstcampus12
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-Wartung
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
abh Mystery Shopping
abh Mystery Shoppingabh Mystery Shopping
abh Mystery Shopping
 
Softwaretests: Motivation und Überblick
Softwaretests: Motivation und ÜberblickSoftwaretests: Motivation und Überblick
Softwaretests: Motivation und Überblick
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
 
Framework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelFramework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als Gütesiegel
 

Ähnlich wie Einführung Vorgehensmodelle und Agile Software Entwicklung

ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...Aberla
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
Martin Seibert
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Florian Wolters
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
QAware GmbH
 
QS von IT-Consulting bis Software Development
QS von IT-Consulting bis Software DevelopmentQS von IT-Consulting bis Software Development
QS von IT-Consulting bis Software Developmentadesso AG
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
jlink
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
GFU Cyrus AG
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Markus Unterauer
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
Nico Orschel
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
Daniel Fisher
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Torsten Kleiber
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAP
Cadaxo GmbH
 
Wiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseWiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseChristian Baranowski
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
DevDay Dresden
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBR
Alexander Hundt
 
Anforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingAnforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingChristian Baranowski
 
Design OOA OOD
Design OOA OODDesign OOA OOD
Design OOA OOD
Jeffrey Groneberg
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
Cadaxo GmbH
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
Dennis Wilson
 

Ähnlich wie Einführung Vorgehensmodelle und Agile Software Entwicklung (20)

ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
QS von IT-Consulting bis Software Development
QS von IT-Consulting bis Software DevelopmentQS von IT-Consulting bis Software Development
QS von IT-Consulting bis Software Development
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAP
 
Wiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseWiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build Prozesse
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBR
 
Anforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingAnforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und Prototyping
 
Design OOA OOD
Design OOA OODDesign OOA OOD
Design OOA OOD
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 

Mehr von Christian Baranowski

Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
Christian Baranowski
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
Christian Baranowski
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
Christian Baranowski
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und Testabdeckung
Christian Baranowski
 
OSGi Web Development in Action
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in Action
Christian Baranowski
 
Spock and Geb in Action
Spock and Geb in ActionSpock and Geb in Action
Spock and Geb in Action
Christian Baranowski
 
Continuous Delivery in Action
Continuous Delivery in ActionContinuous Delivery in Action
Continuous Delivery in Action
Christian Baranowski
 
Gradle and Continuous Delivery
Gradle and Continuous DeliveryGradle and Continuous Delivery
Gradle and Continuous Delivery
Christian Baranowski
 
Spock and Geb
Spock and GebSpock and Geb
Spock and Geb
Christian Baranowski
 
Semantic Versioning
Semantic VersioningSemantic Versioning
Semantic Versioning
Christian Baranowski
 
OSGi Community Updates 2012
OSGi Community Updates 2012OSGi Community Updates 2012
OSGi Community Updates 2012
Christian Baranowski
 
OSGi Mars World in Action
OSGi Mars World in ActionOSGi Mars World in Action
OSGi Mars World in Action
Christian Baranowski
 
Warum OSGi?
Warum OSGi?Warum OSGi?
Top10- Software Engineering Books
Top10- Software Engineering BooksTop10- Software Engineering Books
Top10- Software Engineering Books
Christian Baranowski
 
Domain Driven Design - 10min
Domain Driven Design - 10minDomain Driven Design - 10min
Domain Driven Design - 10min
Christian Baranowski
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
Christian Baranowski
 
Software Testing und Qualitätssicherung
Software Testing und QualitätssicherungSoftware Testing und Qualitätssicherung
Software Testing und QualitätssicherungChristian Baranowski
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungChristian Baranowski
 
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiDatenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiChristian Baranowski
 

Mehr von Christian Baranowski (20)

Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und Testabdeckung
 
OSGi Web Development in Action
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in Action
 
Spock and Geb in Action
Spock and Geb in ActionSpock and Geb in Action
Spock and Geb in Action
 
Continuous Delivery in Action
Continuous Delivery in ActionContinuous Delivery in Action
Continuous Delivery in Action
 
Gradle and Continuous Delivery
Gradle and Continuous DeliveryGradle and Continuous Delivery
Gradle and Continuous Delivery
 
Spock and Geb
Spock and GebSpock and Geb
Spock and Geb
 
Semantic Versioning
Semantic VersioningSemantic Versioning
Semantic Versioning
 
OSGi Community Updates 2012
OSGi Community Updates 2012OSGi Community Updates 2012
OSGi Community Updates 2012
 
OSGi Mars World in Action
OSGi Mars World in ActionOSGi Mars World in Action
OSGi Mars World in Action
 
Warum OSGi?
Warum OSGi?Warum OSGi?
Warum OSGi?
 
Top10- Software Engineering Books
Top10- Software Engineering BooksTop10- Software Engineering Books
Top10- Software Engineering Books
 
Domain Driven Design - 10min
Domain Driven Design - 10minDomain Driven Design - 10min
Domain Driven Design - 10min
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 
Software Testing und Qualitätssicherung
Software Testing und QualitätssicherungSoftware Testing und Qualitätssicherung
Software Testing und Qualitätssicherung
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und Qualitätssicherung
 
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiDatenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence Api
 
Java Servlets und AJAX
Java Servlets und AJAX Java Servlets und AJAX
Java Servlets und AJAX
 

Einführung Vorgehensmodelle und Agile Software Entwicklung

  • 1. Software Technik HTWG Konstanz Vorgehensmodelle und Agile Software Entwicklung Christian Baranowski
  • 3. Oberflächentests Einführung in Selenium Selenium Core Selenium Selenium RC IDE
  • 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
  • 5. Selenium IDE Capture & Replay Tests mit Selenium Action Tabelle
  • 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
  • 8. Was ist Software Technik ? Prozesse Methoden Werkzeuge 1 2 3
  • 9. Warum Vorgehensmodelle? • Vorhersehbare, planbare und kontrollierbare Software- Entwicklungsprojekte • Prozess Optimierungen • Zertifizierbarkeit • Prozessqualität Beherrschung komplexer Prozesse
  • 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
  • 11. Welche Vorgehensmodell gibt es? Klassische Modelle Agile Modelle • Wasserfall • Scrum • V-Modell • Extreme Programming (XP) • RUP • Crystal • Spiralmodell • ... • ...
  • 12. Softwarelebenszyklus Betrieb und Problem Wartung Analyse System System Testen Spezifikation Umsetzung
  • 14. Projekt Phasen Test Spezifikation Systemtest Architektur Design Integrationstest Implementierung Modultest
  • 15. Requirement Analysis Wasserfallmodell System Design Coding Testing Delivery
  • 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
  • 20. V-Modell XT Quelle: V-Modell-XT Releases 1.3 Dokumentation
  • 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/
  • 25. iterative Softwareentwicklung Quelle: Wikipedia DE
  • 26. Extreme Programming (XP) Quelle: Wikipedia
  • 27. Extreme Programming (XP) Quelle: Wikipedia
  • 28. Extreme Programming (XP) Quelle: Wikipedia
  • 30. Team
  • 32. Domain Driven Design ENTITIES VALUE OBJECT SERVICES REPOSITORIES FACTORIES
  • 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)
  • 37. Refactoring Patterns • Rename Class, Field, Method • Extrahiere Methode • Extrahiere lokale Variable • Extrahiere Konstante • Extrahiere Interface • ...
  • 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
  • 43. Red Bar to Green Bar Pattern
  • 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
  • 45. Geld Beispiel Produkt Anzahl Preis Summe Füller 10 10 € 100 € Schokolade 5 25 € 125 € TODO Liste: • 10 € * 10 = 100 €
  • 46. Geld Beispiel TODO Liste: • 10 € * 10 = 100 € • Betrag sollte private sein • Euro Nebeneffekte
  • 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
  • 53. Scrum Quelle: scrumalliance.org Betrachten wir nächste Woche vor der Klausur Vorbereitung ausführlich ...
  • 54. Architektur Web Anwendungen (Geschäftsanwendungen)
  • 55. Architektur Web Anwendungen Test- Client Geschäfts- Fassade klassen Web- Client
  • 56. Architektur Web Anwendungen Browser/HTML JSF/JSP BackingBeans DTO Fassade Geschäftsklassen Repository Datenbank
  • 57. Einführung in Java Server Faces
  • 58. Übung 3 • ErstellenSie ein einfaches Formular zum erstellen eines Tasks mit JSF. • Nutzen Sie als Basis den Coderahmen für die Übung.