Aby rozpocząć nie sądzę, że jest to powtórka z innych pytań dotyczących testów jednostkowych . Potrzebuję pomocy w wyrażeniu jej wartości zespołowi programistów, analityków, menedżerów i testerów. Za pomocą automatycznych testów nie sądzę, że muszę wprowadzać rozróżnienie między testami jednostkowymi (np. JUnit), BDD (np. JBehave, Fitness) i interfejsem użytkownika (Selenium, Watir), ponieważ uważam, że wszystkie zapewniają podobną wartość (ale nie krępuj się napisz odpowiedź, która się nie zgadza :))
Oto lista, którą zidentyfikowałem, szukam odpowiedzi, które pomogą rozwinąć lub udoskonalić:
- Oszczędność czasu / kosztów : pisanie automatycznych testów może zająć więcej czasu niż pisemne przypadki testowe. Biorąc jednak pod uwagę, że testy są przeprowadzane wiele razy, marginalna praca (tj. Koszt / czas) w celu wykonania testów automatycznych jest o kilka rzędów wielkości mniejsza. Zautomatyzowane testy są tanie w użyciu, co z czasem ułatwia zmianę systemu.
- Dokumentacja : nie ma prawdziwszego sposobu, aby dowiedzieć się, jak działa system, niż jego testy. Każda inna dokumentacja jest zwykle nieaktualna od momentu jej napisania, ale testy (przynajmniej te, które przechodzą) pokazują, jak rzeczy faktycznie działają. Dotyczy to zarówno dokumentacji użytkownika końcowego, jak i dokumentacji API.
- Jakość kodu : pisanie testów zmusza do:
- rozważ klientów, ponieważ testy są klientem
- niszczy zależności, w których testowanie kodu często oznacza zastanawianie się, jak sprawić, by kod nie wymagał dostępu do innego dużego systemu