Для начала я не думаю , что это повторение из других вопросов на модульном тестировании . То, что я ищу помощи, - это формулирование ее ценности для команды программистов, аналитиков, менеджеров и тестировщиков. С помощью автоматических тестов я не думаю, что мне нужно проводить различие между модульными тестами (например, JUnit), BDD (например, JBehave, Fitness) и UI (Selenium, Watir), потому что я думаю, что все они обеспечивают одинаковую ценность (но не стесняйтесь написать ответ, который не согласен :))
Ниже приведен список, который я определил, я ищу ответы, которые помогут расширить или уточнить:
- Экономия времени и средств : написание автоматических тестов может занимать больше времени, чем письменные тесты. Однако, учитывая, что тесты выполняются несколько раз, предельная работа (т. Е. Затраты / время) для выполнения автоматических тестов на несколько порядков меньше. То, что автоматизированные тесты дешевы, облегчает изменение системы с течением времени.
- Документация : нет лучшего способа узнать, как работает система, чем ее тесты. Любая другая документация обычно устарела с момента ее написания, но тесты (по крайней мере, те, которые прошли) показывают, как все работает на самом деле. Это верно как для конечного пользователя, так и для документации API.
- Качество кода : тестовая запись заставляет вас:
- считать клиентов, потому что тесты являются клиентом
- ломает зависимости, где тестирование кода часто означает выяснение того, как сделать этот код не требующим доступа к какой-либо другой большой системе