Me (Ran Yitzhaki)

Oliver

@ranyitz

@ranyitz

Testing

a procedure intended to establish the quality, performance, or reliability of something, especially before it is taken into widespread use

Testing definition

Velocity

Scalability

Predictability

Why do we write tests?

Velocity

The speed of making changes in the codebase

  • Manual testing takes time, if you need to verify that all your app’s possible scenarios are still working, you will end up moving very slowly

  • You can refactor knowing that your app still works which raise the chance that you’ll actually do it and improve your ability to deliver more features fast

  • You can deploy a new version, knowing that you are covered by your test suite

Scalability

The ability of your app to grow in terms of features and team size

 

  • While manual testing works when you have 3 features, it will take a lot more time if you have 30 or 300. Automating tests is crucial for creating large applications

  • When you’re joining a new codebase it’s much easier to contribute when you know that you’ve haven’t broke anything, making it possible for multiple people to work on the same codebase without stepping on one another

Predictability

Know exactly what your code suppose to do and be sure that it does it

  • Tests are usually a good place to start when trying to reason about what an app does without getting into the implementation itself.

  • Know that even if a long time passed and things in the code have changed, your tests can promise that the functionality remains the same.

How a test runner works?

Made with Slides.com