Automatic tests are still considered as a necessary evil. Some developers still claim that clients don't pay for tests so we shouldn't write them. Others say that we shouldn't put much effort into tests, implementation is more important, right? Those developers tend to forget the overall cost of maintenance of their codebase. How many bugs you can find on an early stage of implementation just thanks to automatic tests? What's the cost of maintenance of tests written in a not clean way?
During this talk, I will go through some properties of well maintainable tests, present examples of tests hard to maintain and suggest a few ways to improve them. Presented properties and techniques might be valuable for engineers writing and refactoring tests. Finally, I will dive into the term testable design and discuss how to achieve it.