Behat is a php framework for testing business expectations. It was introduced into TYPO3 Neos during a code sprint in Karlsruhe for testing its Backend.
This presentation was hold at the TYPO3 Camp Stuttgart 2013 and it should give an overview of Behat, BDD, and how it can be integrated in a TYPO3 Flow Application.
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?punkt.de GmbH
Mit Hilfe von Layout-Testing kann das Design von Webanwendungen wie Webseiten dauerhaft überprüft werden. Talk von Christiane Helmchen und Bianca Niestroj auf der Developer Week in Nürnberg. #dwx2016
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtVerein FM Konferenz
In vielen Programmiersprachen und in vielen Programmierumgebungen sind Codeversionierungssysteme seit Jahren eine Selbstverständlichkeit. Nicht so bei FileMaker.
Wir erfahren zuerst, was ein Codeversionierungssystem überhaupt ist. Wir sehen uns danach einige aktuelle Codeversionierungssysteme an und lernen einiges über ihre Eigenschaften sowie Vor- und Nachteile. Wir werden uns auch einen groben Überblick verschaffen, welche Softwareprodukte es am Markt für verschiedene Plattformen gibt (Client, Server, Hosted Services). Schliesslich werden wir uns damit beschäftigten, in welchem Umfang und in welchen Situationen auch FileMaker-Entwickler aus Sicht des Referenten von Codeversionierungssystemen profitieren können.
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?punkt.de GmbH
Mit Hilfe von Layout-Testing kann das Design von Webanwendungen wie Webseiten dauerhaft überprüft werden. Talk von Christiane Helmchen und Bianca Niestroj auf der Developer Week in Nürnberg. #dwx2016
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtVerein FM Konferenz
In vielen Programmiersprachen und in vielen Programmierumgebungen sind Codeversionierungssysteme seit Jahren eine Selbstverständlichkeit. Nicht so bei FileMaker.
Wir erfahren zuerst, was ein Codeversionierungssystem überhaupt ist. Wir sehen uns danach einige aktuelle Codeversionierungssysteme an und lernen einiges über ihre Eigenschaften sowie Vor- und Nachteile. Wir werden uns auch einen groben Überblick verschaffen, welche Softwareprodukte es am Markt für verschiedene Plattformen gibt (Client, Server, Hosted Services). Schliesslich werden wir uns damit beschäftigten, in welchem Umfang und in welchen Situationen auch FileMaker-Entwickler aus Sicht des Referenten von Codeversionierungssystemen profitieren können.
Gerade im Web sind kurze Releasezyklen oft unabdingbar. Meist werden noch viele manuelle Tests gemacht, die ein bremsender Faktor für häufige Releases sind. Was gehört dazu, um bei Veränderungen des Projekts automatisiert zu prüfen, ob noch alles funktioniert? Wie kann man darauf aufbauen und was kommt danach?
Rex ist ein Tool zur Automatisierung von Applikations- und Konfigurationsrollouts. Die gewünschte Umgebung wird mittels eines Script (Perl) beschrieben und kann somit auf unterschiedlichen Systemen ausgeführt werden. Rex verbindet sich per SSH auf das Zielsystem und führt die entsprechenden Arbeiten aus.
In diesem Vortrag wird zunächst auf die Basis von Rex eingegangen. Dann wird gezeigt, wie man mit Hilfe von Rex sich und seinem Team schnell eine Testumgebung mit VirtualBox zur Verfügung stellen kann, und wie man – in Zusammenarbeit mit den Systemadministratoren – die gleichen Scripte zum Aufbau und dem Deployment der Produktionsumgebung verwenden kann.
Unit Testing einer Zend-Framework 2 AnwendungRalf Eggert
Qualitätssicherung mit Unit Tests ist aus modernen Webanwendungen nicht mehr wegzudenken. Erfahren Sie in dieser Session, wie Sie mithilfe von PHPUnit eine Testumgebung aufbauen und erste sinnvolle Tests für Ihre Zend-Framework-2-Anwendung erstellen und laufend aktuell halten. Lernen Sie das Testen von Controllern, Aktionen, Formularen, Models usw. Mit einem Einblick in die testgetriebene Entwicklung!
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtVerein FM Konferenz
Als Basis dieses Workshops werden die theoretischen Grundlagen des Vortrags "Einführung in Codeversionierungssysteme" vorausgesetzt.
Wir installieren gemeinsam eine Client-Software für ein Codeversionierungssystem auf unseren Notebooks. Dabei wird die Wahl auf eine der grossen Plattformen fallen, bei welcher sowohl die Teilnehmer mit Mac- als auch die Teilnehmer mit Windows-Rechnern gut angeleitet werden können. Jeder Teilnehmer wird über die Client-Software ein vorbereitetes "Code Repository" ansprechen, das er sich mit einigen anderen Teilnehmern teilt. Auf diesem Repository werden wir grundlegende Operationen ausführen und kennenlernen. Zu diesen Operationen gehören: Code auschecken, Änderungen und Neuerungen einchecken sowie Updates herunterladen. Wenn wir gut vorankommen, werden wir ausserdem einen Seitenzweig einrichten sowie einen Versionskonflikt erzeugen und diesen wieder auflösen.
Dieser Workshop soll ein praktischer Einstieg in die Welt der Codeversionierungssysteme sein. Zielgruppe sind FileMaker-Entwickler, die mit Codeversionierungssystemen noch keine Erfahrung haben.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
Das Team Kreditplattform der IKB entwickelt seit etwa 2 Jahren mit ADF. Wegen der aktuellen Bindung an die SOA Suite verharrten wir seitdem auf der Version 11.1.1.5 mit diversen Bugs. Seit dem Erscheinen der Version 12c wurde die Migration der Anwendung vorbereitet und zum Zeitpunkt des Vortrags gerade abgeschlossen.
Dieser Praxisbericht beleuchtet das Vorgehen und Fallstricke der Migration
- Vorbereitung der Server
- Vorbereitung Entwicklungsumgebung
- Migrationspfad
- Aufgetretene Probleme und deren Lösung
- Bugs & Patches
- Migration MDS
- Automatische und manuelle Tests
WPML für mehrsprachige WordPress Websites verwendenmechdesign
Für die zweisprachige Website einer Hilfsorganisation habe ich das Wordpress Plugin WPML verwendet.
Die Präsi bietet viele hilfreiche Tipps für den Start oder vllt. auch Anregungen, Dinge mal anders als erwartet zu lösen. Und sie soll Usern eine Entscheidungshilfe geben, ob WPML das geeignete Plugin für ihr mehrsprachiges Projekt ist.
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
We try to develop our features agile in branches and to merge them when they are ready for use.
Test Driven Development is on everyone's lips in Java and other languages.
Whether we develop ADF or JET or Spring, we try to apply these techniques in many places.
But what is the real foundation of most of our applications?
That is the Oracle database with its data model and its programming language PL/SQL!
Again and again you hear that merging data model scripts and PL/SQL programs are not practical.
But how are we supposed to develop our frontend according to these techniques if we don't start with it in the backend?
In the presentation I will show you how you can develop your data model and your programs in the database in an agile and test-driven way from the request to the refactoring.
You will see how tools like Git, Liquibase and utPLSQL work together.
TYPO3 Flow and the Joy of Development (FOSDEM 2013)Robert Lemke
Six years ago, the TYPO3 community was seeking for a framework as a foundation for their new CMS. There was none satisfying their wishlist of features and architecture and thus a new one was made - top notch, built without the pressure of day to day work. In the meantime TYPO3 Flow has become one of the “serious” PHP frameworks which is built on two paradigms: harness the complexity of enterprise applications but at the same time be concise and developer friendly. Or in short: Flow brings back the joy of development in PHP.
This session introduces some of the main features of TYPO3 Flow 2.0 and gives you an idea about how it relates to the well established frameworks on the market.
TYPO3 Flow 2.0 (International PHP Conference 2013)Robert Lemke
Just one year after its 1.0 release, TYPO3 Flow (formerly known as FLOW3) raises the version number to introduce a couple of new major features. In this session you’ll get a compact introduction into the comprehensive Composer support, automatic code migration, distributed session handling and new features coming up in the next version of Flow.
TYPO3 Flow 2.0 in the field - webtech Conference 2013die.agilen GmbH
Slides of the talk: "TYPO3 Flow 2.0 in the field" / webtech Conference 2013 by Patrick Lobacher (CEO typovision GmbH) / http://webtechcon.de / 29.10.2013
T3CON12 Flow and TYPO3 deployment with surfTobias Liebig
Video: http://t3con12.chaoscdn.de/T3CON12DE.Int.Automate.FLOW3.and.TYPO3.Deployment.with.Surf.mp4
TYPO3.Surf on Forge: http://forge.typo3.org/projects/show/package-typo3-surf
EXT:coreapi on Forge: http://forge.typo3.org/projects/show/extension-coreapi
Presentation of the new UI for TYPO3 5.0.
It showed the new way to the new UI and the UI itself, based on Wireframes. We cover some Theoretical topics for e.g.: Underlaying guiding principles, Some Inspirations, typical CMS Personas, our General Concepts and the Concept as Wireframes.
This is the extended Version of the Presentation. At the UXcamp 2010 #uxce10 we showed a shorter Version, which was still to long, sorry for that :) This is the Presentation from the TYPO3 Conference 2010 in Dallas.
Gerade im Web sind kurze Releasezyklen oft unabdingbar. Meist werden noch viele manuelle Tests gemacht, die ein bremsender Faktor für häufige Releases sind. Was gehört dazu, um bei Veränderungen des Projekts automatisiert zu prüfen, ob noch alles funktioniert? Wie kann man darauf aufbauen und was kommt danach?
Rex ist ein Tool zur Automatisierung von Applikations- und Konfigurationsrollouts. Die gewünschte Umgebung wird mittels eines Script (Perl) beschrieben und kann somit auf unterschiedlichen Systemen ausgeführt werden. Rex verbindet sich per SSH auf das Zielsystem und führt die entsprechenden Arbeiten aus.
In diesem Vortrag wird zunächst auf die Basis von Rex eingegangen. Dann wird gezeigt, wie man mit Hilfe von Rex sich und seinem Team schnell eine Testumgebung mit VirtualBox zur Verfügung stellen kann, und wie man – in Zusammenarbeit mit den Systemadministratoren – die gleichen Scripte zum Aufbau und dem Deployment der Produktionsumgebung verwenden kann.
Unit Testing einer Zend-Framework 2 AnwendungRalf Eggert
Qualitätssicherung mit Unit Tests ist aus modernen Webanwendungen nicht mehr wegzudenken. Erfahren Sie in dieser Session, wie Sie mithilfe von PHPUnit eine Testumgebung aufbauen und erste sinnvolle Tests für Ihre Zend-Framework-2-Anwendung erstellen und laufend aktuell halten. Lernen Sie das Testen von Controllern, Aktionen, Formularen, Models usw. Mit einem Einblick in die testgetriebene Entwicklung!
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtVerein FM Konferenz
Als Basis dieses Workshops werden die theoretischen Grundlagen des Vortrags "Einführung in Codeversionierungssysteme" vorausgesetzt.
Wir installieren gemeinsam eine Client-Software für ein Codeversionierungssystem auf unseren Notebooks. Dabei wird die Wahl auf eine der grossen Plattformen fallen, bei welcher sowohl die Teilnehmer mit Mac- als auch die Teilnehmer mit Windows-Rechnern gut angeleitet werden können. Jeder Teilnehmer wird über die Client-Software ein vorbereitetes "Code Repository" ansprechen, das er sich mit einigen anderen Teilnehmern teilt. Auf diesem Repository werden wir grundlegende Operationen ausführen und kennenlernen. Zu diesen Operationen gehören: Code auschecken, Änderungen und Neuerungen einchecken sowie Updates herunterladen. Wenn wir gut vorankommen, werden wir ausserdem einen Seitenzweig einrichten sowie einen Versionskonflikt erzeugen und diesen wieder auflösen.
Dieser Workshop soll ein praktischer Einstieg in die Welt der Codeversionierungssysteme sein. Zielgruppe sind FileMaker-Entwickler, die mit Codeversionierungssystemen noch keine Erfahrung haben.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
Das Team Kreditplattform der IKB entwickelt seit etwa 2 Jahren mit ADF. Wegen der aktuellen Bindung an die SOA Suite verharrten wir seitdem auf der Version 11.1.1.5 mit diversen Bugs. Seit dem Erscheinen der Version 12c wurde die Migration der Anwendung vorbereitet und zum Zeitpunkt des Vortrags gerade abgeschlossen.
Dieser Praxisbericht beleuchtet das Vorgehen und Fallstricke der Migration
- Vorbereitung der Server
- Vorbereitung Entwicklungsumgebung
- Migrationspfad
- Aufgetretene Probleme und deren Lösung
- Bugs & Patches
- Migration MDS
- Automatische und manuelle Tests
WPML für mehrsprachige WordPress Websites verwendenmechdesign
Für die zweisprachige Website einer Hilfsorganisation habe ich das Wordpress Plugin WPML verwendet.
Die Präsi bietet viele hilfreiche Tipps für den Start oder vllt. auch Anregungen, Dinge mal anders als erwartet zu lösen. Und sie soll Usern eine Entscheidungshilfe geben, ob WPML das geeignete Plugin für ihr mehrsprachiges Projekt ist.
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
We try to develop our features agile in branches and to merge them when they are ready for use.
Test Driven Development is on everyone's lips in Java and other languages.
Whether we develop ADF or JET or Spring, we try to apply these techniques in many places.
But what is the real foundation of most of our applications?
That is the Oracle database with its data model and its programming language PL/SQL!
Again and again you hear that merging data model scripts and PL/SQL programs are not practical.
But how are we supposed to develop our frontend according to these techniques if we don't start with it in the backend?
In the presentation I will show you how you can develop your data model and your programs in the database in an agile and test-driven way from the request to the refactoring.
You will see how tools like Git, Liquibase and utPLSQL work together.
TYPO3 Flow and the Joy of Development (FOSDEM 2013)Robert Lemke
Six years ago, the TYPO3 community was seeking for a framework as a foundation for their new CMS. There was none satisfying their wishlist of features and architecture and thus a new one was made - top notch, built without the pressure of day to day work. In the meantime TYPO3 Flow has become one of the “serious” PHP frameworks which is built on two paradigms: harness the complexity of enterprise applications but at the same time be concise and developer friendly. Or in short: Flow brings back the joy of development in PHP.
This session introduces some of the main features of TYPO3 Flow 2.0 and gives you an idea about how it relates to the well established frameworks on the market.
TYPO3 Flow 2.0 (International PHP Conference 2013)Robert Lemke
Just one year after its 1.0 release, TYPO3 Flow (formerly known as FLOW3) raises the version number to introduce a couple of new major features. In this session you’ll get a compact introduction into the comprehensive Composer support, automatic code migration, distributed session handling and new features coming up in the next version of Flow.
TYPO3 Flow 2.0 in the field - webtech Conference 2013die.agilen GmbH
Slides of the talk: "TYPO3 Flow 2.0 in the field" / webtech Conference 2013 by Patrick Lobacher (CEO typovision GmbH) / http://webtechcon.de / 29.10.2013
T3CON12 Flow and TYPO3 deployment with surfTobias Liebig
Video: http://t3con12.chaoscdn.de/T3CON12DE.Int.Automate.FLOW3.and.TYPO3.Deployment.with.Surf.mp4
TYPO3.Surf on Forge: http://forge.typo3.org/projects/show/package-typo3-surf
EXT:coreapi on Forge: http://forge.typo3.org/projects/show/extension-coreapi
Presentation of the new UI for TYPO3 5.0.
It showed the new way to the new UI and the UI itself, based on Wireframes. We cover some Theoretical topics for e.g.: Underlaying guiding principles, Some Inspirations, typical CMS Personas, our General Concepts and the Concept as Wireframes.
This is the extended Version of the Presentation. At the UXcamp 2010 #uxce10 we showed a shorter Version, which was still to long, sorry for that :) This is the Presentation from the TYPO3 Conference 2010 in Dallas.
This document outlines an agenda for a workshop on TYPO3 Surf, which is a toolbox for deploying TYPO3 CMS applications. The agenda includes an introduction to TYPO3 Surf, hands-on sessions for installing Surf and deploying a sample application, and exploring workflows and tools for TYPO3 CMS deployments. It also discusses the architecture and components of TYPO3 Surf, including deployment workflows, stages, tasks, and how applications can add tasks to workflows.
TYPO3 can be scaled to support high traffic websites through techniques like:
1) Vertical scaling of individual servers by optimizing code and adding resources like RAM and CPUs
2) Horizontal scaling by adding more application and database servers and using load balancers to distribute traffic
3) Caching dynamic content, database queries, and files to reduce load on application and database servers
This presentation shows a number of best practice tips to increase the performance of a TYPO3 website. The TYPO3 Governmentpackage 4.7.1 is used as an example.
TYPO3 Neos - past, present and future (T3CON14EU)Robert Lemke
Keynote from T3CON14 in Berlin on 09.10.2014. This is about team spirit, contribution challenges, old, new and future releases.
Video of this talk: http://rlmk.me/1qqNKCo
This document discusses using document databases like CouchDB with TYPO3 Flow. It provides an overview of persistence basics in Flow and Doctrine ORM. It then covers using CouchDB as a document database, including its REST API, basics, and the TYPO3.CouchDB package. It notes limitations and introduces alternatives like Radmiraal.CouchDB that support multiple backends. Finally, it discusses future support for multiple persistence backends in Flow.
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)die.agilen GmbH
Am 27.11.2012 ist die Version 6.0 beliebten und markführenden Open Source Enterprise Content Management Systems TYPO3 erschienen. Der Claim "Back to the Future!" ist dabei Programm.
Hauptaugenmerk dieser Major-Version sind dabei die folgenden Aspekte:
- Weitere Annäherung an die technologische Basis von TYPO3 Neos und TYPO3 Flow
- Verbesserung der Code-Qualität
- Steigerung der Benutzerfreundlichkeit
- Integration des neuen File Abstraction Layers (FAL)
- u.v.a.m.
Letztlich sind über 1280 Änderungen, Bugfixes, Korrekturen und Features in diese neue Version eingeflossen - schier unüberschaubar, wenn man sich nicht gerade als Core-Entwickler im Code zu Hause fühlt.
Daher hat Patrick Lobacher (GF Marketing/Sales der typovision GmbH) auch diesmal wieder - wie die letzten 3 Jahre auch schon - alle wichtigen Änderungen für Redakteure, Integratoren und Entwickler in knapp über 135 Slides zusammengestellt und kostenlos zum Download zur Verfügung gestellt.
In diesem Vortrag erfahren Sie, warum sich der erste Ansatz einer zentralen CI/CD-Installation für alle Teams als problematisch erwies und durch dezentrale Pipelines ersetzt wurde. Danach lernen Sie die Tücken unserer Einführung einer eingekauften API-Management-Lösung kennen, und wieso sich der Kauf von großer On-Premise-Software nur schwer mit den agilen Prinzipien vereinbaren lässt. Der Zuhörer lernt zudem, wie wir im Team mit polyglotter Softwareentwicklung zu kämpfen haben und wie wir permanent gegen Wissensinseln ankämpfen. Zuletzt gehe ich darauf ein, wie wir mit umfassender Architekturdokumentation gestartet und gescheitert sind. Unser neuer Ansatz ist eine leichtgewichtige dezentrale Dokumentation mit AsciiDoc und ein im Team abgestimmter Toolstack, der auch vom Zuhörer adaptiert werden kann. Am Ende der Reise wird der Zuhörer einige Methoden und Tools kennen gelernt haben, um in einem Kontext zu überleben, der an vielen Stellen noch von klassischen Prozessen dominiert wird. Aber eines ist klar: Der Weg Richtung DevOps geht nicht plötzlich, es ist eine Reise mit Umwegen und Hindernissen. Die Reise ist es aber auf jeden Fall Wert!
Lange Zeit gab es entweder benutzerfreundliche Content-Management-Systeme, die nicht besonders leistungsfähig waren oder aber technisch ausgereifte Tools, die Usability nicht zu ihren Stärken zählen konnten. TYPO3 Neos ist angetreten, um beides perfekt in einem modernen CMS zu verbinden. Ende letzten Jahres hat die TYPO3-Association nach achtjähriger Entwicklungszeit das Enterprise Open Source Content Management System TYPO3 Neos veröffentlicht. Dabei standen vor allem die Usability für Redakteure und Anwender sowie die Flexibilität und Leistungsfähigkeit für Entwickler im Vordergrund. Ausgestattet mit modernsten Technologien und einer Architektur, die maximal flexibel gestaltet wurde, tritt TYPO3 Neos an, alle Bedürfnisse an modernes Content-Management bestmöglich zu erfüllen. Der Vortrag zeigt das System in einem Roundtrip für Entscheider und geht auch auf die technischen Details wie Architektur, TypoScript, FlowQuery, EEL, Fizzle und das unter TYPO3 liegende Web-Application-Framework TYPO3 Flow ein.
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.
Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration
Alle Neuerungen von TYPO3 4.3 im Überblick. Auf mehr als 80 Slides werden die Neuerungen in den verschiedenen Kategorien - von Backendänderungen bis zu den neuen Entwicklerhooks vorgestellt.
Das Grund-Paradigma von Extbase und FLOW3 ist das sogenannte "Domain Driven Design" - der Vortrag zeigt was sich dahinter verbirgt und erklärt in einfachen Beispielen, warum es essentiell für Projektleiter, Programmierer und Kunden ist, dieses Paradigma zu verinnerlichen um Zeit, Mühe und letztlich Kosten zu sparen.
20040921 Serviceorientierte Architektur für WebSphere und WebSphere PortalFrank Rahn
Mein Vortrag im Rahmen der WebSphere Community Conference 2004 in Leipzig für die Firma TIMETOACT Software & Consulting GmbH.
Frank W. Rahn
Freiberuflicher Berater für IT-Projekte
Neusser Strasse 594
D-50737 Köln
Telefon: +49 221 6777 1830
Fax: +49 221 974 29 17
http://www.frank-rahn.de
Der moderne Weg, um Extensions für TYPO3 zu schreiben, führt letztlich zu Extbase und Fluid. Während Extbase/Fluid/FLOW3 im Grunde "nur" technische Lösungen bzw. Umsetzungen sind - liegt diesen ein Paradigma (eine Denkweise) zu Grunde, welches sich "Domain-driven Design" nennt. Hier steht die Domäne (Problemfeld, Anwendungsgebiet) des Kunden im Fokus und nicht die konkrete technische Realisierung. Der Vortrag zeigt, was alles hinter diesem Paradigma steckt, zeigt ausführlich die Grundlagen auf und stellt dar, warum diese Denkweise die Arbeit von Projektmanagern, Kunden und Programmiereren grundlegend verändert und letztlich verbessert
TYPO3 gehört gerade in Europa seit vielen Jahren zu den am häufigsten eingesetzten Systemen, wenn es um das Thema Content Management im Bereich von Corporate Web, Intranet- oder Extranet-Lösungen geht. Das Open Source Content Management System wurde von Kasper Skårhøj entwickelt und im August 2000 erstmals veröffentlicht. Seit dieser Zeit wurde TYPO3 sehr aktiv weiterentwickelt und hat sich – aufgrund seiner soliden Ausgestaltung und Flexibilität – enorm verbreitet. Mit TYPO3 Neos wird ein neues Zeitalter eingeläutet und die Karten im CMS-Umfeld werden hier vermutlich neu gemischt. Aber alles der Reihe nach …
Make Your IBM Connections Deployment Your Own - Customize it! German VersionKlaus Bild
IBM Connections 4.5 bietet unzählige Anpassungsmöglichkeiten, damit die Umgebung dem Corporate Design und den Anforderungen Ihrer Firma entspricht.
Wussten Sie zum Beispiel, dass man da UI sehr einfach anpassen kann, dass man sowohl die Texte wie auch die Versandhäufigkeit von Mitteilungen verändern kann, das Profile erweitert werden können und auch das Aussehen des Richtext Editors veränderbar ist?
Dieser Vortrag vermittelt Ihnen die Grundlage, um Anpassungen Ihrer Umgebung zu planen und in Angriff zu nehmen.
TYPO3 Version 4.5 wird noch bis April 2015 unterstützt! Sie sollten daher dringend zu 6.2 LTS wechseln.
In dieser Präsentation erfahren Sie mehr zum Thema und unserem Workflow.
http://www.cs2.ch/update/
Ähnlich wie Testing TYPO3 Flow Applications with Behat (20)
2. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
2
Markus Goldbeck
• Senior Developer bei der typovision GmbH
• TYPO3 Neos Member
• @MarkusGoldbeck
3. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 3
Was ist Behat?
4. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 4
A php framework for testing
your business expectations.
http://behat.org/
5. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 5
Aber wir haben doch
Unit und Functional Tests !
6. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
6
Unit Tests
Unit Tests
• testet funktionale Einzelteile
• sind die inneren und detailliertesten Komponenten der Software
• testet die Module isoliert
• für Modultests müssen externe Komponenten wie
Datenbankverbindungen aufwendig durch Mock-Objekte simuliert
werden
7. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
7
Functional Tests
Functional Tests
• sind eine Form von Integrationstest
• soll die einzelnen Komponenten zusammen testen
• auch hier muss für das testen mit externen Komponenten wie
Datenbankverbindungen diese aufwendig durch Mock-Objekte
simuliert werden
8. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 8
Und wofür brauch ich jetzt
noch Behat bzw. BDD ?
9. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
9
Behavior Driven Development
Behavior Driven Development
• Es werden während der Anforderungsanalyse die
• Aufgaben
• Ziele und
• Ergebnisse textuell festgehalten
• Anforderungen in „Wenn-Dann“- Sätze
• basierend auf ubiquitären Sprache des Domain-Driven Designs
=> einfacher Übergang zwischen fachlicher Anforderung und
Programmiersprache
10. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
10
Behavior Driven Development
Vorteile
• leichte Lesbarkeit durch „sprechende“ Tests
• Test von „außen“
• könnte vom Stakeholder selber geschrieben werden
• kann von jedem geschrieben werden, der die Business Logik kennt
• durch die Abstraktion der Tests kann sich die Implementierung ändern,
die Funktion bzw. der Test kann aber immer noch funktionieren
=> als Erweiterung für Unit und Functional Tests, um die Business Logik zu
testen
11. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 11
Einbindung von Behat in
TYPO3 Flow Applikationen
14. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
14
Einbindung
Konfiguration
• Behat braucht zwei spezielle Flow Kontexts
• „Development/Behat/Settings.yaml“
• wichtig: Angabe eigener Datenbank
• wichtig: Angabe des „drivers“
TYPO3:
Flow:
persistence:
# It is good practice to not specify user name and password of the database
# connection in this global Settings.yaml file. Rather specify them in the
# settings of the respective context (Production / Development ...).
backendOptions:
host: '127.0.0.1' # adjust to your database host
dbname: 'neosdev_behat' # adjust to your database name
user: 'root' # adjust to your database user
password: 'root' # adjust to your database password
driver: pdo_mysql
15. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
15
Einbindung
Konfiguration
• Behat braucht zwei spezielle Flow Kontexts
• „Testing/Behat/Settings.yaml“
• wichtig: Angabe eigener Datenbank
• wichtig: Angabe des „drivers“
TYPO3:
Flow:
persistence:
# It is good practice to not specify user name and password of the database
# connection in this global Settings.yaml file. Rather specify them in the
# settings of the respective context (Production / Development ...).
backendOptions:
host: '127.0.0.1' # adjust to your database host
dbname: 'neosdev_behat' # adjust to your database name
user: 'root' # adjust to your database user
password: 'root' # adjust to your database password
driver: pdo_mysql
16. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
16
Einbindung
Konfiguration vhost
• Behat Konfiguration auf die gleiche Flow Installation
• setzen von „SetEnv FLOW_CONTEXT Development/Behat“ Kontext
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/NeosDev/Web/"
ServerName neos.dev
ServerAlias neos.dev
SetEnv FLOW_CONTEXT Development
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/NeosDev/Web/"
ServerName neos.dev.behat
ServerAlias neos.dev.behat
SetEnv FLOW_CONTEXT Development/Behat
</VirtualHost>
17. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
17
Einbindung
Anlegen der Features
• anlegen von Behavior/Features/Botstrap/FeatureContext.php
• Kopie von behat.yml.dist anlegen und base_url analog zu vhost setzen
18. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
18
Einbindung
Anlegen der Features
• anlegen von Behavior/Features/Botstrap/FeatureContext.php
• Kopie von behat.yml.dist anlegen und base_url analog zu vhost setzen
require_once(__DIR__ . '/../../../../../Flowpack.Behat/Tests/Behat/FlowContext.php');
/**
* Features context
*/
class FeatureContext extends MinkContext {
}
19. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
19
Selenium
Testen von JavaScript
• im Beha
• @javascript neben @fixtures
• Download Selenium Server
• java -jar selenium-server-standalone-2.32.0.jar
20. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 20
Wie sieht so ein Behat Test
aus ?
21. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
21
Thema des Slides
Feature
Feature: ls
In order to see the directory structure
As a UNIX user
I need to be able to list the current directory's contents
Scenario:
Given I am in a directory "test"
And I have a file named "foo"
And I have a file named "bar"
When I run "ls"
Then I should get:
"""
bar
foo
"""
22. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 22
Gherkin - Gürkchen ?
23. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
23
Aufbau
Unterteilung der Tests
• Gherkin als Beschreibungssprache
• features
• Background
• scenarios
• Given
• When
• Then
• But
24. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
24
Aufruf der Tests
Aufruf der Features aus dem Flow root path
• alle features
bin/behat -v -c Packages/Application/TYPO3.Neos/Tests/Behavior/
behat.yml
• einzelne features
bin/behat -v -c Packages/Application/TYPO3.Neos/Tests/Behavior/
behat.yml Packages/Application/TYPO3.Neos/Tests/Behavior/features/
ContentModule/PreviewMode.feature
• einzelne scenarios
bin/behat -v -c Packages/Application/TYPO3.Neos/Tests/Behavior/
behat.yml Packages/Application/TYPO3.Neos/Tests/Behavior/features/
ContentModule/PageTree.feature:26
25. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de 25
So und jetzt bitte Beispiele
26. (c) 2013 - typovision GmbH | TYPO3 Flow Applikation mit Behat testen| Markus Goldbeck | www.typovision.de
TYPO3 Flow Applikation testen mit Behat
26
Behat Tests in TYPO3 Neos
Behat Tests sind bereits in TYPO3 Neos integriert
• steht am Anfang
• Ziel Backend stabiler machen und erhalten
• Beispiele /Packages/Application/TYPO3.Neos/Tests/Behavior