Slide 1

Slide 1 text

Stop wasting time NOT writing tests

Slide 2

Slide 2 text

How many of you are developers?

Slide 3

Slide 3 text

How many of you test your applications?

Slide 4

Slide 4 text

Some just do manual testing…

Slide 5

Slide 5 text

Characteristics of manual testing

Slide 6

Slide 6 text

1. Repetitive

Slide 7

Slide 7 text

2. Slow

Slide 8

Slide 8 text

3. Error prone due to human memory capacity

Slide 9

Slide 9 text

“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