Во-первых тесты бывают разные - тестируют и работу кода и логику, итд.
Во-вторых тесты пишут не только для того, чтобы проверить работоспособность, но и для того, чтобы команде не приходилось потом ваш код потом изучать от корки до корки.
Пока работаешь один - это не заметно, как только проект растет, становится сложнее по всем направлениям, растет команда - сразу приходит понимание, что без внятной документации и тестов дальше паровозик не поедет.
Ну и экономия времени. Пока у вас небольшое приложение - вы можете, конечно, и ручками все протестить, но как только проект начинает развиваться - таких мест для тестирования становится многократно больше и тестировать все это руками попросту глупо - уйдет море времени, вдобавок повышается риск что-то упустить (тупо человеческий фактор).
В конце концов тесты - это неплохой способ взглянуть на код под другим углом. Нередко бывает, что во время написания теста или просто его прогона - приходит понимание, что код хоть и работает правильно, но медленно, или реализация убога или еще что-то вылезет. Считайте, что это такая функция самоконтроля.