Andrea Giuliano
David Funaro
Let’s test!



      #code10 #letstest
Let’s test!




“Come ho fatto fino ad ora a lavorare senza test?”



        “Non tornerei mai più indietro!”
Let’s test!


  write code features




   I manually test all
my code’s functionalities
Let’s test!




How (most) developers
  write code today
Let’s test!


   my starting project
Let’s test!




            CHANGES


internal          external
Let’s test!




              be honest...
Let’s test!



Contents...


   I’m looking forward
     to waste my code
Let’s test!



Contents...




    What happens when
   something goes wrong
Let’s test!



Contents...




Where can I put
my hands in?
Let’s test!



Contents...    I’ve got the
                solution!



                            one more patch
Let’s test!




          I made
Contents...

       some mistakes



                            NO FEEDBACK
Let’s test!




         ?                ?   ?
?
                      ?
    ?
             ?
I’m hopeless
Let’s test!



Contents...




      I want to be proud
          of my code
Let’s test!



Contents...




                 Automatic Test
Let’s test!
Let’s test!



      Why automatic tests?
                  progressive input growth

  tests as documentation
                                     easier to alter code
                           no fear
     feedback              understand HOW code works
    easy to run                  confidence in your code
don’t waste your time
working software over comprehensive documentation
Let’s test!



How many kinds of test exists?
                        Unit

           Functional
                             Integration
                   more...
Let’s test!



we want short feedback!
Let’s test!




                1
    stress =
             # tests
Let’s test!




Ok, let’s try!
I want to write a test for my code
Let’s test!




        Sounds good...
Contents...

        ...but one day
Let’s test!



Contents...



  How can I test this?
         coupling           dependencies
Let’s test!




        I don’t now so I DON’T test
Let’s test!



Clean code that works                     cit. Ron Jeffries



 predictable way to develop
                   learn all of the lessons that the code has to teach you
            improve the lives of the users of your software
                                   let your teammates count on you, and you on them


                feel good to write code
Let’s test!



How do we get to clean code that works?




 Many forces drive us away from clean code
 and even from clean code that works
Let’s test!



Test Driven Development

Test-driven development is less and more writing test
first...but TDD is about design

Test-driven development is a way of managing fear
during programming
Let’s test!



our tasks                                                 feature #1
                                                          feature #2
                                                          feature #3

 Red: write a little test that doesn’t work


 Green: make the test work quickly


 Refactor: eliminate all the duplication created in merely getting the test to work
Let’s test!




        write a test
Let’s test!




it fails!           write a test
Let’s test!




it fails!           write a test

                  make it works
Let’s test!




it fails!           write a test
                                   awesome
                  make it works
                                   it’s green!
Let’s test!




it fails!           write a test
                                   awesome
                  make it works
                                   it’s green!

                    do refactor
Let’s test!




it fails!           write a test
                                   awesome
                  make it works
                                   it’s green!

                    do refactor
Let’s test!



            what are the benefits?
improve quality of your code
                                    behaviours’ verification
 coverage functionality
                          test as documentation          collaborative working
        long term maintainability
                          very short time feedback about bugs


                           QA from reactive to proactive
Let’s test!



ok, it’s cool but my resources are limited

                I want to be cheap

                I want to be fast

                I want to be good
Let’s test!



     What about legacy code?


Test new functionalities


Test old functionalities starting from bugs
Let’s test!




DEMO
Let’s test!



                        Thanks!
                   Questions?
Andrea Giuliano                   David Funaro
@bit_shark                        @ingdavidino
andreagiuliano.it                 davidfunaro.com

More Related Content

PPTX
Test Driven Development: More Development Than Ever
PDF
TDD for Testers Workshop
PPTX
Test Driven Development
PPT
Introduction to test programming
PDF
Tdd 왜 배우기 어려운가
PPTX
Unit Test Lab - Why Write Unit Tests?
PDF
Test Driven Development
PDF
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...
Test Driven Development: More Development Than Ever
TDD for Testers Workshop
Test Driven Development
Introduction to test programming
Tdd 왜 배우기 어려운가
Unit Test Lab - Why Write Unit Tests?
Test Driven Development
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...

What's hot (10)

PDF
Deploy & Continunous Integration - TDC Floripa 2015
PPTX
TDD - Test Driven Development
PPTX
Small Hyper-Productive Teams (IT Brunch)
PPTX
Continuous Integration: Finding problems soonest
PDF
Unit Testing
PPTX
Test studio webinar march 2013
ODP
Reversed Tests Pyramid - Agile Prague 2014
PPTX
2013 09-11 java zone - extreme programming live
PDF
WE are Doing it Wrong - Dmitry Sharkov
PPTX
Continous testing for grails
Deploy & Continunous Integration - TDC Floripa 2015
TDD - Test Driven Development
Small Hyper-Productive Teams (IT Brunch)
Continuous Integration: Finding problems soonest
Unit Testing
Test studio webinar march 2013
Reversed Tests Pyramid - Agile Prague 2014
2013 09-11 java zone - extreme programming live
WE are Doing it Wrong - Dmitry Sharkov
Continous testing for grails
Ad

Similar to Let's test! (20)

PDF
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
PDF
Pragmatic notdogmatictdd agile2012
PDF
iOS Test-Driven Development
PPT
Agile latvia evening_unit_testing_in_practice
KEY
Acceptance testfurureinmind
PPTX
Preocupações Desenvolvedor Ágil
PDF
Test Driven Development
PPTX
Build Quality In
PPTX
Test Driven Development on Android (Kotlin Kenya)
PPTX
WeActuallyBuildStuff - Extreme Programming Live
PPTX
Writing testable code
PPTX
Test Driven Development with Laravel
ODP
I Smell A RAT- Rapid Application Testing
PDF
Pairing w developers_stpconpics
PPTX
Testing javascript
KEY
Graceful Failure with Selenium and Continuous Integration
PDF
Completely Test-Driven
PDF
TDD and Getting Paid
PDF
Test Driven Development - Workshop
PPTX
Unit testing
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic notdogmatictdd agile2012
iOS Test-Driven Development
Agile latvia evening_unit_testing_in_practice
Acceptance testfurureinmind
Preocupações Desenvolvedor Ágil
Test Driven Development
Build Quality In
Test Driven Development on Android (Kotlin Kenya)
WeActuallyBuildStuff - Extreme Programming Live
Writing testable code
Test Driven Development with Laravel
I Smell A RAT- Rapid Application Testing
Pairing w developers_stpconpics
Testing javascript
Graceful Failure with Selenium and Continuous Integration
Completely Test-Driven
TDD and Getting Paid
Test Driven Development - Workshop
Unit testing
Ad

More from Andrea Giuliano (10)

PDF
CQRS, ReactJS, Docker in a nutshell
PDF
Go fast in a graph world
PDF
Concurrent test frameworks
PDF
Index management in depth
PDF
Consistency, Availability, Partition: Make Your Choice
PDF
Asynchronous data processing
PDF
Think horizontally @Codemotion
PDF
Index management in shallow depth
PDF
Everything you always wanted to know about forms* *but were afraid to ask
PDF
Stub you!
CQRS, ReactJS, Docker in a nutshell
Go fast in a graph world
Concurrent test frameworks
Index management in depth
Consistency, Availability, Partition: Make Your Choice
Asynchronous data processing
Think horizontally @Codemotion
Index management in shallow depth
Everything you always wanted to know about forms* *but were afraid to ask
Stub you!

Recently uploaded (20)

PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PPTX
Internet of Everything -Basic concepts details
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PPTX
Microsoft User Copilot Training Slide Deck
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
Configure Apache Mutual Authentication
Early detection and classification of bone marrow changes in lumbar vertebrae...
The influence of sentiment analysis in enhancing early warning system model f...
Convolutional neural network based encoder-decoder for efficient real-time ob...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
giants, standing on the shoulders of - by Daniel Stenberg
MuleSoft-Compete-Deck for midddleware integrations
Module 1 Introduction to Web Programming .pptx
Advancing precision in air quality forecasting through machine learning integ...
Consumable AI The What, Why & How for Small Teams.pdf
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
4 layer Arch & Reference Arch of IoT.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
Internet of Everything -Basic concepts details
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Microsoft User Copilot Training Slide Deck
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
sbt 2.0: go big (Scala Days 2025 edition)
Configure Apache Mutual Authentication

Let's test!