Testen in agilen Projekten, Swiss Testing Day Zürich 2013
Agile Projekte verursachen massive Probleme im klassischen Testvorgehen: Detailspezifikationen sind erst (wenn überhaupt) kurz vor der Implementierung verfügbar und der Test soll gleichzeitig mit der Entwicklung am Ende jeder Iteration abgeschlossen sein. Bei Iterationslängen von wenigen Wochen verursacht das beträchtlichen Mehraufwand für den Test, der sich noch dazu am Ende der Iteration konzentriert, wodurch das Ziel eines voll getesteten Systems am Ende jeder Iteration oft nicht erreicht werden kann.
Der Vortrag stellt drei wichtige Erfolgsrezepte für Testen in agilen Projekten vor (1. Multifunktionale Teams, 2. Testautomatisierung und 3. Spezifikation mit Beispielen) und zeigt, welche Änderungen notwendig sind, damit Test und Entwicklung effizient in agilen Projekten zusammenarbeiten. Neben der Vorstellung von wichtigen Konzepten für agiles Testen (agile Testquadranten, Testautomatisierungspyramide und Specification-By-Example) zeigt der Vortrag auch, wie diese Methoden mit Werkzeugen unterstützt werden können, und berichtet von deren praktischer Anwendung in unterschiedlichen Projekten.
Video: http://www.youtube.com/watch?v=LL2kOToKUF0
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?René Spengler
Das Testmanagement wird im agilen Entwicklungsprozess wie Scrum vom Team getragen. Doch kann das Scrum-Team die Aufgaben eines Testmanagers vollumfänglich wahrnehmen? Der Vortrag folgt den Aufgaben des Testmanagers und vergleicht die Umsetzung in klassischen und agilen Arbeitsumfeldern. Am Ende steht die Frage, ob man in Scrum noch einen Testmanager braucht.
Referenten:
Kay Grebenstein, Saxonia Systems AG
René Spengler, ANECON Software Design und Beratung GmbH
Scrum ist gelebtes Qualitätsmanagement und zum Qualitätsmanagement gehört das Testen. Wie genau spielt das Testen in Scrum mit? Welche Arten und Stufen von Tests gibt es und wie können diese den Scrum Prozess unterstützen oder sogar behindern? Was machen Teams hierbei gerne falsch und können klassische Testverfahren behilflich sein die Qualität zu verbessern? Diese Fragen werden in dem Vortrag diskutiert, beantwortet und bewertet.
"Agiles Testen" wird gerade intensiv diskutiert.
Was steckt dahinter? Was für Konsequenzen ergeben sich daraus für unsere Scrum-Teams? Oder verbirgt sich gar eine neue Testmethode hinter diesem Begriff?
In diesem Vortrag erläutern wir den Weg vom Scrum-Team hin zu einem Agilen Team, wie Crispin und Gregroy es nennen. Sie geben damit die Antwort auf die Frage, wie die Rolle der QS in einem Scrum-Team wahrgenommen werden kann. Wir zeigen, welche Konsequenzen sich daraus für die Teammitglieder und ihre Aufgaben ergeben und wie Sie Ihr Agiles Team zum Fliegen bekommen!
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0Michael Fischlein
Welche Auswirkung hat eine agiler Softwareentwicklungsprozess auf den Softwaretest und die Qualitätssicherung? Welche Änderungen muss man beachten und wie muss und kann man Softwaretester auf diese Veränderungen vorbereiten.
Dieser Vortrag wurde auf der iqnite 2014 von Michael Fischlein gehalten.
Automatisierter Software-Test unter JavaGFU Cyrus AG
Dieser Vortrag zeigt die Vorteile moderner Ansätze für den Test von Java-Anwendungen auf. Die für eine erfolgreiche Testautomatisierung einzusetzenden Java-Test-Frameworks und -Werkzeuge werden exemplarisch vorgestellt (z.B. JUnit, Abbot, JETM). Die Verwaltung von Testdaten und der Einsatz von dedizierten Testdatenbanken werden behandelt. Herr Seekamp veranschaulicht den praktischen Einsatz von automatisierten Testverfahren anhand von zwei JavaEE-Projekten. Er geht außerdem auf den Begriff des Testmanagement und das Konzept der testgetriebenen Software-Entwicklung ein. Die für die Durchführung von automatisierten Software-Tests notwendigen Bausteine werden zusammengefasst. Der Ausblick benennt die Problemfelder und das Potenzial der Testautomatisierung.
* Grundlagen und Ziele des Software-Tests
* Manueller Software-Test und dessen Nachteile
* Übergang zu automatisierten Testverfahren und deren Vorteile
* Frameworks und Werkzeuge für die Testautomatisierung
* Verwaltung von Testdaten und Einsatz von Testdatenbanken
* Beispiele für Testautomatisierung in JavaEE-Projekten
* Notwendigkeit des Testmanagement
* Konzept der testgetriebenen Entwicklung und Vorteile für den Entwickler
* Bausteine für automatisierte Software-Tests
* Problemfelder und Potenzial der Testautomatisierung
Testen in agilen Projekten, Swiss Testing Day Zürich 2013
Agile Projekte verursachen massive Probleme im klassischen Testvorgehen: Detailspezifikationen sind erst (wenn überhaupt) kurz vor der Implementierung verfügbar und der Test soll gleichzeitig mit der Entwicklung am Ende jeder Iteration abgeschlossen sein. Bei Iterationslängen von wenigen Wochen verursacht das beträchtlichen Mehraufwand für den Test, der sich noch dazu am Ende der Iteration konzentriert, wodurch das Ziel eines voll getesteten Systems am Ende jeder Iteration oft nicht erreicht werden kann.
Der Vortrag stellt drei wichtige Erfolgsrezepte für Testen in agilen Projekten vor (1. Multifunktionale Teams, 2. Testautomatisierung und 3. Spezifikation mit Beispielen) und zeigt, welche Änderungen notwendig sind, damit Test und Entwicklung effizient in agilen Projekten zusammenarbeiten. Neben der Vorstellung von wichtigen Konzepten für agiles Testen (agile Testquadranten, Testautomatisierungspyramide und Specification-By-Example) zeigt der Vortrag auch, wie diese Methoden mit Werkzeugen unterstützt werden können, und berichtet von deren praktischer Anwendung in unterschiedlichen Projekten.
Video: http://www.youtube.com/watch?v=LL2kOToKUF0
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?René Spengler
Das Testmanagement wird im agilen Entwicklungsprozess wie Scrum vom Team getragen. Doch kann das Scrum-Team die Aufgaben eines Testmanagers vollumfänglich wahrnehmen? Der Vortrag folgt den Aufgaben des Testmanagers und vergleicht die Umsetzung in klassischen und agilen Arbeitsumfeldern. Am Ende steht die Frage, ob man in Scrum noch einen Testmanager braucht.
Referenten:
Kay Grebenstein, Saxonia Systems AG
René Spengler, ANECON Software Design und Beratung GmbH
Scrum ist gelebtes Qualitätsmanagement und zum Qualitätsmanagement gehört das Testen. Wie genau spielt das Testen in Scrum mit? Welche Arten und Stufen von Tests gibt es und wie können diese den Scrum Prozess unterstützen oder sogar behindern? Was machen Teams hierbei gerne falsch und können klassische Testverfahren behilflich sein die Qualität zu verbessern? Diese Fragen werden in dem Vortrag diskutiert, beantwortet und bewertet.
"Agiles Testen" wird gerade intensiv diskutiert.
Was steckt dahinter? Was für Konsequenzen ergeben sich daraus für unsere Scrum-Teams? Oder verbirgt sich gar eine neue Testmethode hinter diesem Begriff?
In diesem Vortrag erläutern wir den Weg vom Scrum-Team hin zu einem Agilen Team, wie Crispin und Gregroy es nennen. Sie geben damit die Antwort auf die Frage, wie die Rolle der QS in einem Scrum-Team wahrgenommen werden kann. Wir zeigen, welche Konsequenzen sich daraus für die Teammitglieder und ihre Aufgaben ergeben und wie Sie Ihr Agiles Team zum Fliegen bekommen!
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0Michael Fischlein
Welche Auswirkung hat eine agiler Softwareentwicklungsprozess auf den Softwaretest und die Qualitätssicherung? Welche Änderungen muss man beachten und wie muss und kann man Softwaretester auf diese Veränderungen vorbereiten.
Dieser Vortrag wurde auf der iqnite 2014 von Michael Fischlein gehalten.
Automatisierter Software-Test unter JavaGFU Cyrus AG
Dieser Vortrag zeigt die Vorteile moderner Ansätze für den Test von Java-Anwendungen auf. Die für eine erfolgreiche Testautomatisierung einzusetzenden Java-Test-Frameworks und -Werkzeuge werden exemplarisch vorgestellt (z.B. JUnit, Abbot, JETM). Die Verwaltung von Testdaten und der Einsatz von dedizierten Testdatenbanken werden behandelt. Herr Seekamp veranschaulicht den praktischen Einsatz von automatisierten Testverfahren anhand von zwei JavaEE-Projekten. Er geht außerdem auf den Begriff des Testmanagement und das Konzept der testgetriebenen Software-Entwicklung ein. Die für die Durchführung von automatisierten Software-Tests notwendigen Bausteine werden zusammengefasst. Der Ausblick benennt die Problemfelder und das Potenzial der Testautomatisierung.
* Grundlagen und Ziele des Software-Tests
* Manueller Software-Test und dessen Nachteile
* Übergang zu automatisierten Testverfahren und deren Vorteile
* Frameworks und Werkzeuge für die Testautomatisierung
* Verwaltung von Testdaten und Einsatz von Testdatenbanken
* Beispiele für Testautomatisierung in JavaEE-Projekten
* Notwendigkeit des Testmanagement
* Konzept der testgetriebenen Entwicklung und Vorteile für den Entwickler
* Bausteine für automatisierte Software-Tests
* Problemfelder und Potenzial der Testautomatisierung
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
Kurzbeschreibung
Softwarequalität ist keine Spracheigenschaft. In jeder noch so guten Programmiersprache kann man schlechte Programme schreiben – sogar in Java. Herr Seekamp, Senior Consultant bei der GEDOPLAN GmbH, macht in diesem Vortrag anhand von Fallbeispielen aus seinen Projekten deutlich, was verständlichen und wartbaren Code ausmacht, welche Regeln man dafür beherzigen sollte und welche Analysewerkzeuge dabei unterstützen können.
Inhalt
Regeln für guten Java-Code
Statische Code-Analyse
Refactoring
Werkzeuge zur Sicherung der Qualität
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft AG
Software-Projekte sind mit vielen Risiken behaftet. Die Ursachen für Fehlschläge sind oft Fehler im Management der Anforderungen und mangelhafter Einbezug der Benutzer.
Agile Vorgehensmodelle wollen genau dieses Problem lösen. Allerdings wird die Thematik in den ursprünglichen Konzepten zu stark vereinfacht und dadurch oft missverstanden.
Agiles Testen (z.B. in Scrum, Kanban, XP) ist zu einem unverzichtbaren Bestandteil agiler Softwareentwicklung geworden.
Testen in agilen Entwicklungsprojekten unterscheidet sich vom klassischen Testen in erster Linie dadurch, dass Testen eine präventive Maßnahme ist und dass die Tests viel häufiger ausgeführt werden müssen. Der Fokus liegt dabei in der Einbindung von Testern unter Beachtung des agilen Manifests und der Anwendung agiler Prinzipien auf das Testen, wie beispielsweise schnelles Feedback, hoher Automatisierungsgrad, Auflösung starrer Teststufen, enge Zusammenarbeit in selbstorganisierten Teams.
Inhalt
- Definition
- Agiles Testen im Team
- Testkategorien
- Unit-Tests
- TDD/ATDD/BDD
- 3 Amigo
- Akzeptanztests
- Exploratives Testen
- Continuous Integration, Delivery & Deployment
- Integration in Scrum
- Genereller Umgang mit Bugs
Häufig kommt in der Anwendungsentwicklung das Testen zu kurz. Dabei bietet sich ein enormes Einsparpotenzial, wenn Fehler bereits während der Entwicklungsphase und nicht erst nach Inbetriebnahme erkannt und behoben werden.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
See video: http://youtu.be/6e4HnoSs2J8 - Jetzt anfragen: http://seibert.biz/anfrage - Joachim Seibert und Martin Seibert (beide //SEIBERT/MEDIA) stellen das Continous Deployment (Continous Delivery) bei TwentyFeet und das Konzept für agile Software-Entwicklung im allgemeinen vor. Mehr Info: http://seibert.biz/continousdeployment
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
Kurzbeschreibung
Softwarequalität ist keine Spracheigenschaft. In jeder noch so guten Programmiersprache kann man schlechte Programme schreiben – sogar in Java. Herr Seekamp, Senior Consultant bei der GEDOPLAN GmbH, macht in diesem Vortrag anhand von Fallbeispielen aus seinen Projekten deutlich, was verständlichen und wartbaren Code ausmacht, welche Regeln man dafür beherzigen sollte und welche Analysewerkzeuge dabei unterstützen können.
Inhalt
Regeln für guten Java-Code
Statische Code-Analyse
Refactoring
Werkzeuge zur Sicherung der Qualität
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft AG
Software-Projekte sind mit vielen Risiken behaftet. Die Ursachen für Fehlschläge sind oft Fehler im Management der Anforderungen und mangelhafter Einbezug der Benutzer.
Agile Vorgehensmodelle wollen genau dieses Problem lösen. Allerdings wird die Thematik in den ursprünglichen Konzepten zu stark vereinfacht und dadurch oft missverstanden.
Agiles Testen (z.B. in Scrum, Kanban, XP) ist zu einem unverzichtbaren Bestandteil agiler Softwareentwicklung geworden.
Testen in agilen Entwicklungsprojekten unterscheidet sich vom klassischen Testen in erster Linie dadurch, dass Testen eine präventive Maßnahme ist und dass die Tests viel häufiger ausgeführt werden müssen. Der Fokus liegt dabei in der Einbindung von Testern unter Beachtung des agilen Manifests und der Anwendung agiler Prinzipien auf das Testen, wie beispielsweise schnelles Feedback, hoher Automatisierungsgrad, Auflösung starrer Teststufen, enge Zusammenarbeit in selbstorganisierten Teams.
Inhalt
- Definition
- Agiles Testen im Team
- Testkategorien
- Unit-Tests
- TDD/ATDD/BDD
- 3 Amigo
- Akzeptanztests
- Exploratives Testen
- Continuous Integration, Delivery & Deployment
- Integration in Scrum
- Genereller Umgang mit Bugs
Häufig kommt in der Anwendungsentwicklung das Testen zu kurz. Dabei bietet sich ein enormes Einsparpotenzial, wenn Fehler bereits während der Entwicklungsphase und nicht erst nach Inbetriebnahme erkannt und behoben werden.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
See video: http://youtu.be/6e4HnoSs2J8 - Jetzt anfragen: http://seibert.biz/anfrage - Joachim Seibert und Martin Seibert (beide //SEIBERT/MEDIA) stellen das Continous Deployment (Continous Delivery) bei TwentyFeet und das Konzept für agile Software-Entwicklung im allgemeinen vor. Mehr Info: http://seibert.biz/continousdeployment
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
German slides that give a overview about developer tests in the C++ programming language. It tries to underline the dependencies between software design, clean code, software quality and the software testing activity itself.
DevOps Prinzipien im Zusammenspiel mit Kubernetes QAware GmbH
Fachposter, 2020: Erstellt von QAware in Zusammenarbeit mit Prof. Dr. Kratzke, Technische Hochschule Lübeck und ObjektSpektrum (Verlag: SIGS DATACOM).
Bestellbar unter https://www.sigs-datacom.de/order/poster/DevOps_Prinzipien-Kubernetes.php
(Dokument bitte herunterladen für bessere Lesbarkeit)
A power workshop during JAX 2007 on advanced techniques of test-driven development. It deals with acceptance tests using FIT as well as with mock objects, GUI testing and Groovy as a testing language for Java.
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
Kurzbeschreibung
Automatische Softwaretests rücken immer mehr in den Mittelpunkt. Gerade die derzeit vielfach eingesetzten agilen Vorgehensweisen benötigen ein teamübergreifendes und reproduzierbares Verfahren zur Sicherung der Softwarequalität. In diesem Vortrag legt Dirk Weil, Geschäftsführer der GEDOPLAN GmbH aus Bielefeld, das Augenmerk auf die Werkzeuge, die in Java-Projekten zum fortlaufenden Build und Test von Software genutzt werden können. Anhand einiger Praxisbeispiele zeigt er den Aufbau und Betrieb einer Continuous-Integration-Umgebung, die GEDOPALN für Softwareprojekte betreibt. Dozent: Dirk Weil, Gedoplan
Inhalt
- Grundlagen und Motivation automatischer Softwaretests
- Testziele und Verfahren (Unit-Tests, Regressionstests, Akzeptanztests etc.)
- Build- und Testautomatisierung
- Beispielumgebung auf Basis von Ant, Maven, Subversion und Hudson
- Code-Analyse
- Extreme Feedback
Jedes IT-System stirbt irgendwann und muss durch ein neues System abgelöst werden. Solche Systemablösen bergen zahlreise Herausforderungen: Keine Doku, eine Technologie, die niemand mehr gut kennt, wissende Mitarbeiter sind nicht mehr greifbar, hoher Zeitdruck, großes Risiko im Betrieb etc. - oft eher Organtransplantation, als IT-Projekt.
Im Vortrag möchte ich meine Erfahrungen aus großen Systemablöseprojekten teilen. Wir werden uns ansehen, wie man Methoden aus Requirements Engineering und Reverse Engineering so kombiniert, dass alle notwendigen Anforderungen entdeckt werden. Wir werden sehen, dass die Zusammenarbeit zwischen Fachbereich und IT der kritische Erfolgsfaktor ist, wie man das am Besten organisiert und wie man Use Cases und ein Glossar dabei unterstützend einsetzt.
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
Oft fällt die Frage, ob man PL/SQL überhaupt automatisiert testen kann. Deshalb behandelt dieser Vortrag u.a. die folgenden Themen:
- Welche Fehler will ich mit Testautomatisierung überhaupt vermeiden?
- Änderung des Datenmodells
- Änderung bestehender Programme
- Datenbank-Patching/-Upgrade
- Wie sieht eigentlich mein Entwicklungsprozess aus?
- Wie viele Entwickler habe ich?
- Welches Wissen haben meine Entwickler?
- Muss ich branchen?
- Muss ich häufig meinen Code umstrukturieren?
- Welche Frameworks gibt es für die Testautomatisierung?
- SQL Developer
- Quest Code Tester
- utPLSQL
- ruby-plsql-spec
- Welche Voraussetzungen muss ich erfüllen?
- Datenbankversionen
- Infrastruktur
- Für welchen Zweck eignet sich welches Framework?
- Unterstützung von CI-Servern
- Unterstützung von Build Systemen wie z.B. Maven
- Test Driven Development
Neben der Theorie sehen Sie natürlich auch in Demo's, wie sich der Testcode "anfühlt".
Der Vortrag soll Ihnen eine Entscheidungsgrundlage liefern, ob Sie demnächst auch automatisch testen wollen und können!
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
Bereits vor der Einführung von agile Methoden und DevOps war das Ziel von Entwicklungsprojekten die schnelle Bereitstellung von hochwertigen Produkten. Im Vordergrund stehen die Überlegungen zur optimalen Architektur und zum passenden Design. Die Aspekte der Qualitätssicherung kommen meist später, was sich während der Tests bemerkbar macht. In diesem Vortrag werden die Überlegungen und Erfahrungen zum design for testability angesprochen, die sinnvoll sind, um in Softwareprojekten von Beginn an eine optimale Testbarkeit gewährleisten zu können.
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
This is the presentation I held during the oral exam of my Bachelor Thesis.
The presentation is about where we can find expert knowledge around the internet and how we can excerpt this knowledge and use it as a basis for a Case-Based Reasoning system.
The second part of the thesis shows which principles of Software Engineering are used to implement an extraction prototype into a sophisticated development tool for CBR-systems.
The slides are provided in German.
Um agile Entwicklung sinnvoll in einem Projekt zu ermöglichen, spielt die Architektur des Systems eine entscheidende Rolle. In einem agilen Projekt sind Architektureigenschaften wie Installierbarkeit und Prüfbarkeit entscheidend, da die Software in kurzen Abständen regelmäßig geliefert und im besten Fall dem Endnutzer zur Verfügung gestellt wird. Diese kurzen Releasezyklen gelingen nur durch ein hohes Maß an Automatisierung. Agile Projekte benötigen bereits passende Lösungsansätze in der Architektur, die es erlauben eine Continous Delivery Pipeline möglichst einfach zu realisieren; das Architekturmuster „Microservices“ versucht u.A. diesen Anforderungen gerecht zu werden.
Weitere Vorteile des Architekturmusters ergeben sich bei der Skalierung von Projekten. Durch den Einsatz von „Microservices“ können Projekte einfach aufgeteilt und parallel von mehreren Cross-Functional Teams mit agilen Methoden umgesetzt werden.
Die Idee eines Microservice ist nicht neu: das System wird in kleine, losgelöste Anwendungen (sog. Microservices) aufgeteilt. Diese Bausteine stellen Ihre Funktionalität als Service zur Verfügung. Der Vortrag gibt einen Praxiseinblick, auf welche Weise man vom Einsatz des Architekturmusters „Microservice“ in einem agilen Projektumfeld profitieren kann. Es wird aufgezeigt, wo sich in der Praxis Schwierigkeiten ergeben und wie man diesen vorbeugen kann. Der gesamte Vortrag gibt einen grundlegenden Einblick in die agile Entwicklung auf Basis einer Microservice-Architektur.
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