We are already able to say that a software development without automated testing is unacceptable. We can
We are already able to say that a software development without automated testing is unacceptable. We can distinguish among unit, functional, integration and more, but the idea of automating is great!!! If we focus on unit test we will see that it is apparently easier to implement, although it is not trivial to be able to do testing that truly tests the functionality and, even better, that can be almost complete. TDD and “First Test” help to make all this even more believable (for unbelievers) and further encourage those who live it as an act of faith.
As a first post of automated tests, we could identify (among many things) some advantages of this practice:
- All tests are regression tests.
- The continuous integration makes better tests.
- We lose the fear towards code refactoring.
- Agile development is successful because of the tests.
- Those who test the code with a “main” to see if it is working … What is the difference between that time and writing a real test that will also help us throughout the project?
- We know exactly which change caused a compatibility bug (instead of knowing in what month it occurred).
- No need to remember the whole code. If you forget what the subject was, you can go and see the tests for that functionality.
- The design of the application tends to be better and less decoupled.
- You go to bed with peace of mind! You know the code you touched did not break anything (that has tests).