Automated tests

Few arguments for writing automated tests and/or unit tests:

Happier development team 
– fewer bugs = fewer late nights/weekend work
– more time to add new features
– helps your prevent breaking the code 

Happier users
– fewer defects reaching production 
– no data loose, less application crashes
Reduce business costs
– defects are found early in the development cycle
– HOW can we debug is we don’t have tests ? search logs, events in OS = time spent which costs money
– exactly same test code runs each time
– if nothing is change in code, everything runs the same
– no variance between test runs from human error
Faster execution
– quicker than a human performing tests manually.
Independent & isolated by other test
– running order doesn’t change the result
Reliable & repeatable
Test single behavior / logical thing
– it’s ok to have multiple asserts if they are testing the same logical behavior
Clear intent / readable
Test code should have the same quality as production code
Tests should be valuable for development team