Using PhpSpec
to build quality into
a Symfony app
by Jakub Zalas
Slide 2
Slide 2 text
Who am I?
o I work @SensioLabsUK
o I tweet @jakub_zalas
o I code @jakzal
Slide 3
Slide 3 text
QUALITY?
What is
Slide 4
Slide 4 text
How would you define software quality?
@jakub_zalas
Slide 5
Slide 5 text
for me software quality is defined by factor
how easy is to introduce and manage change
without breaking product
@cakper
Slide 6
Slide 6 text
clean, readable code. documentation where
appropriate. complementary test suite. peer
reviewed.
@rich_81
oh and bug-free ;-)
Slide 7
Slide 7 text
easier to maintain
= less technical debt
= less cost financially.
@rich_81
plus, who likes working
on crappy projects? ;-)
Slide 8
Slide 8 text
Easy to maintain and extend.
@sprain
Slide 9
Slide 9 text
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...
Slide 10
Slide 10 text
WTF per minute per user
Jacek
Slide 11
Slide 11 text
I would distinguish between
internal and external quality.
@CiaranMcNulty
Slide 12
Slide 12 text
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.
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
software quality?
That the software delivers real value and
is built in a sustainable way.
@IanDominey
External quality
Internal quality
Slide 15
Slide 15 text
IS IMPORTANT?
What
Slide 16
Slide 16 text
Ignoring the external quality
Slide 17
Slide 17 text
THE INTERNAL QUALITY
This talk is about
Slide 18
Slide 18 text
Ignoring the internal quality
Slide 19
Slide 19 text
Ignoring the internal quality
Care No care
Time
# of features
Slide 20
Slide 20 text
Ignoring the internal quality
Time
Pace
Care
No
care
Care
No
care
Slide 21
Slide 21 text
CARE?
Should we
Slide 22
Slide 22 text
IS OUR PROFESSIONAL
RESPONSIBILITY
Ensuring the internal quality
Slide 23
Slide 23 text
CONTINUOUSLY REVIEW
THE DESIGN
To MAINTAIN the internal quality
Slide 24
Slide 24 text
REFACTOR
To MAINTAIN the internal quality
Slide 25
Slide 25 text
TESTS
There’s no refactoring without
Slide 26
Slide 26 text
IS OUR PROFESSIONAL
RESPONSIBILITY
Writing tests
Slide 27
Slide 27 text
DESIGN WELL
To BUILD the internal quality
Slide 28
Slide 28 text
DRIVE YOUR CODE WITH
TESTS
To BUILD the internal quality
Slide 29
Slide 29 text
WE LEARN HOW TO KEEP THE
DESIGN SIMPLE
Writing tests FIRST
Slide 30
Slide 30 text
IS OUR PROFESSIONAL
RESPONSIBILITY
Writing tests FIRST
Slide 31
Slide 31 text
IS ALL ABOUT TDD
Building the quality into our app
Slide 32
Slide 32 text
Failing
step
Failing
test
Code
Refactor
Passing
step
External
Internal