Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using PhpSpec to build quality into a Symfony app

Jakub Zalas
September 20, 2013

Using PhpSpec to build quality into a Symfony app

SpecBDD is the inner loop of Behavior Driven Development. Working on the code level, it's the Test Driven Development redefined.

PhpSpec, being a SpecBDD tool, aims on ensuring the internal quality of an application. It makes the test-first approach a lot easier by supporting the developer at every step, almost suggesting next actions to take. Its revolutionary approach makes that once you tried PhpSpec, there's no way back.

During the talk I introduced the attendees to PhpSpec and shown how to use it to drive the design and improve the quality of a Symfony application.

Jakub Zalas

September 20, 2013

More Decks by Jakub Zalas

Other Decks in Programming


  1. Who am I? o  I work @SensioLabsUK o  I tweet

    @jakub_zalas o  I code @jakzal
  2. for me software quality is defined by factor how easy

    is to introduce and manage change without breaking product @cakper
  3. easier to maintain = less technical debt = less cost

    financially. @rich_81 plus, who likes working on crappy projects? ;-)
  4. software quality is very subjective! It's not only about the

    code @hhamon but also availability, ease to use, ease to change, failures tolerance, performance, backups management...
  5. Quality is really two levers: external and internal quality. External

    quality is the quality perceived by the customer. [Internal quality is] Quality of internals of the system: how well it is designed, how good the internal tests are, and so on.
  6. the extent to what the software takes into account what

    matters most for the customer & the maintainability of the source code @_md External quality Internal quality
  7. software quality? That the software delivers real value and is

    built in a sustainable way. @IanDominey External quality Internal quality
  8. Failing   step   Failing   test   Code  

    Refactor   Passing   step   External Internal