У
Удаленный 5203
1) потому что тесты писались тем, кто писал тот кусок кода 10 лет назад.Если есть программа-тест которая вызывает что-то и передавая параметры и смотрит на результаты, то:
- почему пишущий не знает этого или не может проверить тоже самое сам?
- где гарантия, что тест учтет специфику внесенных изменений
2) тест может не учесть специфику, если действительно изменилась бизнес-логика, например, тогда тест нужно обновлять, но для начала разработчик быстро увидит, что тест свалился, и пойдет разбираться, почему - должен ли тест был реально упасть или он накосячил где-то.
помимо этого для тех же вебсервисов я очень нежно люблю контрактные тесты. Это когда тесты пишутся со стороны "клиентского" приложения для сервиса, и выгружаются в общий репозиторий, из которого его забирает сервис при прогоне своих тестов. Разработчикам сервиса, таким образом, например не нужно гадать, где какие параметры каким клиентом используются, сколько у него клиентских приложений вообще, но четко знает, когда он внес обратно-несовместимые изменения, еще до этапа интеграционных тестов. И не в пример более стабильно.