Sebastian Bergmann

Sebastian Bergmann is the creator of PHPUnit. He co-founded thePHP.cc and helps PHP teams build better software.

Inspiring Conference

Last week I attended the Inspiring Conference, the leading event for all things TYPO3 FLOW and TYPO3 NEOS, in Kolbermoor, Germany [...]

31 March 2014
The Driven Developer

You can build your software right – with 100% code coverage and high internal quality – and still fail to build the right software, the one the customer wants. How can you test that you are building the right software, and the right way? Developers (should) love unit tests. Other project stakeholders love acceptance tests. But which of these tests should drive the development? This session elucidates what Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD), and Test-Driven Development (TDD) are about, what their strengths and weaknesses are, and how you can find the right test mix for your project.

29 March 2014

Disintegration Testing

Sebastian Bergmann uses NASA's Mars Climate Orbiter as a hook to discuss different scopes of testing [...]

20 March 2014

PHPUnit 4.0: Test Proxies

One of the highlights of PHPUnit 4.0 is the improved support for integration testing through test proxies [...]

12 March 2014

PHPUnit 4.0: Code Coverage Improvements

One of the highlights of PHPUnit 4.0 is an improvement of the @covers annotation and the addition of the @uses annotation for better code coverage analysis [...]

10 March 2014

FOSDEM

Last weekend I attended FOSDEM in Brussels, Belgium [...]

3 February 2014
Pride and Prejudice: Testing in the PHP World

Parts of the PHP community take pride in code that is of high quality and well tested. Outside of the PHP community the prejudice against the language and its ecosystem still prevails. Quality Assurance in general and Unit Testing in particular have come a long way since the inception of PHPUnit thirteen years ago: simple PHP programming has evolved into software engineering with PHP. Join Sebastian Bergmann, the creator of PHPUnit, as he shares his experience on how PHPUnit is used in different communities and projects, and what’s been learnt along the way.

2 February 2014

ZendCon Europe

Last week I attended ZendCon Europe in Paris, France [...]

25 November 2013
Test{able|ing} Zend Framework 2 Applications

Zend Framework 2 is a popular framework for developing web applications and services in PHP. But just because you use an off-the-shelf framework as the foundation for your development effort does not mean that you do not need to think about the architecture, design, and testability of the software you're building anymore. This session, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your Zend Framework 2 application is easy to test and explains how to test it with PHPUnit.

20 November 2013
Testing on the Edge

Beyond Unit Tests, Acceptance and Integration Tests are crucial. Implemented as End-to-End tests, however, they are cumbersome to write and slow to execute. Edge-to-Edge Tests are easier to write and maintain, faster to execute, and deliver more reliable results. The audience will learn how to effectively implement these tests with PHPUnit.

28 October 2013
More Tests or Better Code?

Once upon a time, in a kingdom far, far away there was a wizard. Each day the king laid out a new scenario in which foes of the realm would test his fortress' defenses. And every day the wizard would come up with new measures to keep the fortress safe. One day a knight appeared at the king's court. For each of the contraptions the wizard had implemented the knight made the case that it was superfluous because the scenario it was built to counter could be prevented. When a dragon named Legacy appeared and threatened the realm, the king turned to knight and wizard for counsel. In this Tech Talk, Sebastian Bergmann, creator of PHPUnit, will open his bag of tricks while Stefan Priebsch, a proven expert on software architecture and design, will talk about avoiding these tricks.

9 October 2013

Man Is What He Eats

Sebastian Bergmann uses the staff of a professional kitchen as a metaphor for a development team that wants to deliver high-quality software [...]

5 October 2013

DrupalCon Europe

Yesterday I attended DrupalCon Europe in Prague [...]

27 September 2013
Leveraging 12 Years of PHPUnit

This session covers how PHPUnit is used in different communities and projects, and what’s been learnt along the way, what’s new and state of the art in unit testing, and how PHPUnit is integrating state-of-the-art paradigms, how PHPUnit compares to other testing technologies and methodologies.

26 September 2013
Agility and Quality

When you continuously develop new features and deploy new code to production frequently, quality must not be an afterthought. This keynote will elucidate how agility and quality are connected and what this should mean for the architecture of your software.

18 September 2013
Automated Deployment: From Jenkins to Production

All your tests are green and you are ready to deploy the latest version of your software into production. Again. If only you had an automated way of doing that to avoid the manual hassle! In this hands-on session you will learn how to make Jenkins and friends push your deployment into the next level, easily maintaining any set of servers.

17 September 2013

ZEDGE TechTalks

Yesterday I attended the first edition of the ZEDGE TechTalks in Trondheim, Norway [...]

11 September 2013
High Quality PHP: Past, Present and Future

Quality Assurance in general and Unit Testing in particular have come a long way since the inception of PHPUnit twelve years ago: simple PHP programming has evolved into software engineering with PHP. Join Sebastian Bergmann, the creator of PHPUnit, as he shares his experience on overcoming both the technological challenges of testing PHP code and common organizational issues when introducing software development teams to testing. He will reflect on the lessons learned in the first decade of PHPUnit and will give a look into the tool's future.

10 September 2013

eZ Publish Summer Camp

Last week I attended the eZ Publish Summer Camp on the island of Brač in Croatia [...]

9 September 2013
Test{able|ing} Symfony2 Applications

Symfony2 is a popular framework for developing web applications in PHP. But just because you use an off-the-shelf framework as the foundation for your development effort does not mean that you do not need to think about the architecture, design, and testability of the software you're building anymore. This workshop, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your Symfony2 application is easy to test and explains how to test it with PHPUnit.

6 September 2013
5 September 2013
Test Proxies, oder: Wie aus Problemen Features werden

Integrationstests schließen die Lücke zwischen Unit Tests und Systemtests, indem sie auf die Schnittstellen zwischen Komponenten fokussieren und sicherstellen, dass ihr Zusammenspiel wie erwartet funktioniert. In diesem Vortrag machen Arne Blankerts und Sebastian Bergmann anschaulich, wie aus einem konkreten Problem bei der Arbeit an Integrationstests in einem Kundenprojekt das Feature "Test Proxies" für PHPUnit entstand. Sie diskutieren das Problem, stellen die Lösung vor, erklären die Implementierung von Mock-Objekten in PHPUnit und zeigen, wie das Feature umgesetzt wurde.

25 August 2013

PHP 5.5: Generators

Last month, the first stable version of PHP 5.5 was released. It introduced the "yield" keyword that allows the implementation of generators and coroutines [...]

10 July 2013
Optimaler Einsatz von PHPUnit

Die Installation von PHPUnit ist nicht schwer und das Schreiben von Tests ist einfach. Sie können aber bessere Ergebnisse erzielen und Entwicklungszeit sparen, wenn Sie die Kniffe kennen, mit denen man PHPUnit effektiver einsetzen kann. In diesem Vortrag erklärt der Entwickler von PHPUnit die besten Praktiken, um Ihre Tests effizient zu implementieren.

26 June 2013

PHP 5.5: New Class Constant

Last week, the first stable version of PHP 5.5 was released. It introduced a class-level constant that is automatically available on all classes and holds the fully-qualified name of that class [...]

26 June 2013

PHP 5.5: Out-of-the-Box Bytecode Cache

Last week, the first stable version of PHP 5.5 was released. This is the first version of PHP to ship with an out-of-the-box bytecode cache. [...]

25 June 2013

Selling Test-Driven Projects

"How do I convince my manager that I should write unit tests for my code?" and "How can we sell test-driven development to our customer?" are questions I get asked frequently. These questions cannot be answered with technology or tools but instead require an understanding of economics as well as communication skills [...]

24 June 2013
Agilität und Qualität: Zwei Seiten einer Medaille

Wenn man kontinuierlich neue Features entwickelt und neuen Code häufig live stellt, dann darf Qualität nicht nachträglich passieren. Dieser Vortrag erklärt, wie Agilität und Qualität in Einklang gebracht werden können und was dies für die Architektur Ihrer Software bedeutet.

14 June 2013
The Wrong End of the Stick

Unit Testing does not work for you? You are not alone. Every developer who starts with unit testing faces the same issues. Issues that will not go away by learning more about unit testing or PHPUnit. You are likely looking at the wrong end of the stick. You will learn how to get over the hump quickly when starting with PHPUnit.

3 June 2013
PHPUnit Best Practices

PHPUnit is not difficult to set up and writing tests with it is easy. But with the the tips and tricks you will learn in this session you can leverage PHPUnit more effectively, giving you better results and increasing your productivity.

3 June 2013
United States Capitol
24 April 2013

Trust

Sebastian Bergmann uses a car driver's blind trust in a navigation unit as a metaphor to discuss how quality goals define the architecture of an application [...]

17 April 2013
Bird
15 April 2013
14 April 2013
Bear
9 April 2013

AtlantaPHP

Today I attended the AtlantaPHP user group in Atlanta, GA [...]

25 March 2013

Software Development Fluxx

Sebastian Bergmann uses the card game Star Fluxx as a metaphor to discuss agile software development, object-oriented design, and quality assurance. [...]

14 February 2013

SunshinePHP

This week I attended the SunshinePHP conference in Miami, FL [...]

9 February 2013
Wallberg Kapelle
20 December 2012

When it gets hot

Sebastian Bergmann uses the air conditioning system of Germany's InterCity Express (ICE) trains to explain service-level agreements that product owner and developers negotiate for non-functional requirements such as scalability and performance. [...]

26 October 2012
Golden Gate Bridge
25 October 2012
Living with Legacy

It is a fact of life for every developer: you have to deal with code that has been written before your time, that does not follow state-of-the-art best practices, and that — worst of all — is not tested so you cannot safely change or extend it. In this session, the audience will witness the step-by-step refactoring of fictitious legacy code towards a state that is easy to comprehend, extend, test, and maintain.

23 October 2012

WebExpo Prague

At the WebExpo conference in Prague, CZ last weekend, I was impressed by three things the organizers did. [...]

25 September 2012

Sixty Percent Quality

When you spend [a lot of] time on the proverbial road you need to care about quality: the quality of a hotel influences your quality of sleep which in turn affects the quality of work you deliver to your customer. [...]

31 August 2012
Alternative PHP Runtimes

When you say "PHP" you mean the programming language PHP. This implicitly refers to the PHP Interpreter that is developed by the PHP project and that can be downloaded from PHP.net. Aside from this reference implementation of PHP there are alternative runtime environments for PHP, such as Facebook's HipHop. This session presents an overview of these alternatives and provides an insight into their feasability for production use.

25 August 2012
Integrating PHP Projects with Jenkins

Today’s web applications require frequent updates, not just by adding or upgrading features, but by maintaining and improving the software’s existing code base as well. This tutorial teaches PHP developers how to use Jenkins, the popular continuous integration server, to monitor various aspects of software quality throughout a project’s lifecycle. Attendees of this tutorial will learn how to implement continuous integration to automate processes for building and deploying regular software releases. They will also learn how to use Jenkins to monitor and improve their applications through continuous inspection and static code analysis.

16 July 2012
The PHP Tester's Toolbox

Various testing tools exist to test the different aspects and layers of PHP applications. There is PHPUnit for Unit Testing (and Test-Driven Development), Behat for Acceptance Testing (and Behaviour-Driven Development), Selenium for System Testing, and a plethora of tools for testing non-functional aspects such as performance and security. This presentation provides an overview of the goals of each of these tools and shows the first steps to leveraging them in your daily routine.

2 March 2012
Sunset on Cape Cod
25 February 2012
Sunset on Key Largo
18 September 2010
Chapel of the Alamo Mission
5 September 2010
Boat on Lake Bled
9 July 2010
Golden Lion Tamarin
7 March 2010
Manhattan Skyline
15 October 2009
Giraffe in Cologne Zoo
30 August 2009
Basilique du Sacré-Cœur
24 June 2009
Lighthouse in Lake Michigan
24 May 2009
Blue Sky | Green Grass
21 March 2009
Kings Tableland
7 December 2008
Christmas Tree in Sydney
2 December 2008
Science Fiction Museum
25 October 2008