Feature
Branches
Rule #4
build a reliable
test suite
Slide 23
Slide 23 text
make them
fast
Slide 24
Slide 24 text
You always
test
Slide 25
Slide 25 text
Yes, and
how ?!
Slide 26
Slide 26 text
Continous Integration
Slide 27
Slide 27 text
Kontinuierliche Integration ist ein Begriff aus der Software-Entwicklung,
der den Prozess des fortlaufenden Zusammenfügens von
Komponenten zu einer Anwendung beschreibt. […]
- Wikipedia
Slide 28
Slide 28 text
code
Slide 29
Slide 29 text
production
Slide 30
Slide 30 text
code
(compile)
test
(staging)
production
report
Slide 31
Slide 31 text
tools
to the rescue
Slide 32
Slide 32 text
python
fanboy
Slide 33
Slide 33 text
nosetests
unit-testing
Slide 34
Slide 34 text
nosetests
unit-testing
orthogonal
edge cases
Slide 35
Slide 35 text
selenium
integration-testing
Slide 36
Slide 36 text
selenium
why-is-this-not-working-anymore?!
Slide 37
Slide 37 text
sphinx
documentation
Slide 38
Slide 38 text
featureflags
I see something you can’t see
Slide 39
Slide 39 text
featureflags
shiny new
code
old
code
is a
developer
Slide 40
Slide 40 text
laboratory
When old things have to go
User
old
code
new
code
request
result
Slide 41
Slide 41 text
import laboratory
experiment = laboratory.Experiment()
with experiment.control() as c:
c.record(get_objects_from_database())
with experiment.candidate() as c:
c.record(get_objects_from_cache())
objects = experiment.run()
laboratory
When old things have to go