“Whatever can be
automated will inevitably
be automated”
- Bob Lord, president of AOL
Slide 10
Slide 10 text
What is automated
testing?
Slide 11
Slide 11 text
Automated testing is a process of
writing and executing scripts which will
simulate a user using our application
before it get’s released to production.
Slide 12
Slide 12 text
How is it better than
manual testing?
Slide 13
Slide 13 text
Slow
Repetitive
Error prone due to human
memory capacity
Slide 14
Slide 14 text
Why people don’t write
tests?
#excuses
Slide 15
Slide 15 text
“The application is too
small to write tests for it.”
Slide 16
Slide 16 text
Small applications
tend to grow.
Slide 17
Slide 17 text
“writing tests is boring”
Slide 18
Slide 18 text
Is clicking around your application
whenever something changes, fun?
Slide 19
Slide 19 text
“we don’t have a specification,
tests are no use at all.”
Slide 20
Slide 20 text
STOP. Arrange a meeting
with your project manager
and sort s**t out.
Slide 21
Slide 21 text
“We don’t have time to
write tests”
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
It doesn’t take extra
time to write tests
Slide 24
Slide 24 text
The wrong way:
manually test
write code write tests
Slide 25
Slide 25 text
Never separate the
application and tests
Slide 26
Slide 26 text
The right way:
write code write tests
Slide 27
Slide 27 text
You’re not wasting time
on automated tests -
you’re wasting time on
initial manual testing
Slide 28
Slide 28 text
Testing API’s
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
Don’t check your
implementation in the
browser - from the beginning
do it through tests.
Slide 31
Slide 31 text
Testing large forms
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
Shouldn’t QA engineers
handle the testing phase?
Slide 34
Slide 34 text
Simple bugs hide the
more advanced ones
Slide 35
Slide 35 text
Let QA engineers
focus on improving the
UX, security, weird
edge cases…
Slide 36
Slide 36 text
BAD GOOD
GOOD EXCELLENT
Slide 37
Slide 37 text
Test Driven
Development
Slide 38
Slide 38 text
order number
Order Container
identification number
Product
order date
details
product name
Shipment tracking application
Ship
name
Slide 39
Slide 39 text
My order XYZ shipped on
December 21st
containing 3 cases of
beers, travelling with ship
named MARSHALL inside
a container with an ID 161
Slide 40
Slide 40 text
My order XYZ shipped on
December 21st
containing 3 cases of
beers, travelling with ship
named MARSHALL inside
a container with an ID 161
Slide 41
Slide 41 text
IF I ENTER:
XYZ
Slide 42
Slide 42 text
December 21st
Slide 43
Slide 43 text
beer
Slide 44
Slide 44 text
MARSHALL
Slide 45
Slide 45 text
161
Slide 46
Slide 46 text
I SHOULD FIND MY
ORDER
Slide 47
Slide 47 text
KNOW THE
OUTPUTS FOR
GIVEN INPUTS
Slide 48
Slide 48 text
Improve your
specification through
tests.
Slide 49
Slide 49 text
How to start writing
tests?
Slide 50
Slide 50 text
Writing tests is hard..
Slide 51
Slide 51 text
Is programming hard?
Slide 52
Slide 52 text
Writing tests is a
discipline of it’s own..
Slide 53
Slide 53 text
..but as hard as learning
a set of design patterns.
Slide 54
Slide 54 text
Developer: I want to
start writing tests
Slide 55
Slide 55 text
Product manager / client:
we don’t have time for that, we
should work on our new features
Slide 56
Slide 56 text
TRY A DIFFERENT
APPROACH
Slide 57
Slide 57 text
Make tests part of your
development cycle
Slide 58
Slide 58 text
Conclusions
Slide 59
Slide 59 text
Kick out manual
testing!
Slide 60
Slide 60 text
Don’t ask for time to do
tests - just do them!
Slide 61
Slide 61 text
Damir Svrtan
Rails Team Lead @ Infinum
Organizer @ Ruby Zagreb Meetup
Hit me up on twitter @DamirSvrtan