Для початку я не думаю , що це повторення з інших питань на модульному тестуванні . Що я шукаю допомоги - це висловлювати свою цінність команді програмістів, аналітиків, менеджерів і тестерів. За допомогою автоматизованих тестів, я не думаю, що мені потрібно розрізняти одиничні тести (наприклад, JUnit), BDD (наприклад, JBehave, Fitness) та інтерфейс користувача (Selenium, Watir), тому що я думаю, що всі вони надають аналогічну цінність (але не соромтеся напишіть відповідь, яка не погоджується :))
Далі йде список, який я визначив, я шукаю відповіді, які допоможуть розширити чи уточнити:
- Економія часу / витрат : написання автоматизованих тестів може зайняти більше часу, ніж письмові тестові випадки. Однак, враховуючи тести, які виконуються кілька разів, гранична робота (тобто вартість / час) для виконання автоматизованих тестів на кілька порядків менша. Те, що автоматичні тести дешеві для запуску, полегшує зміну системи з часом.
- Документація : немає більш правдивого способу дізнатися, як працює система, ніж її тести. Будь-яка інша документація, як правило, застаріла з моменту її написання, але тести (принаймні ті, що проходять) виявляють, як все насправді працює. Це справедливо як для документації кінцевого користувача, так і для API.
- Якість коду : тестове написання змушує вас:
- вважайте клієнтів, оскільки тести - це клієнт
- розбиває залежності, коли зробити код тестуваним часто означає, що з'ясувати, як зробити для цього коду не потрібну іншу велику систему