Нещодавно я задав питання про тести на розробку ігор - це BTW, як я знав про це. Відповіді там вказали на деякі цікаві, конкретні недоліки:
- Це дорого робити, коли ваш код повинен бути сильно пов'язаний .
- Це важко зробити, коли потрібно знати про різні апаратні платформи, коли ти повинен аналізувати вихід для користувача, а результат коду має сенс лише в більш широкому контексті .
- Тестування UI та UX дуже важко .
- І, зокрема, автоматизовані тести можуть бути дорожчими та менш ефективними, ніж купа дуже дешевих (або безкоштовних) бета-тестерів .
4-й пункт змушує мене згадати певний досвід. Я працював над дуже худорлявою, орієнтованою на XP, компанією Scrum, в якій настійно рекомендувались тестові одиниці. Однак на шляху до більш тонкого, менш бюрократичного стилю компанія просто нехтувала побудовою команди з контролю якості - у нас не було тестерів. Так часто клієнти виявляють банальні помилки, використовуючи деякі системи, навіть із покриттям тесту> 95%. Тож я додам ще один момент:
- Автоматичні тести можуть відчути, що якість та тестування не є важливими.
Крім того, я думав про ті часи щодо документації і обгрунтовував гіпотезу, яка може бути справедливою (в меншій мірі) для двох тестів. Я просто відчув, що код розвивається настільки швидко, що складно зробити документацію, яка дотримується такої швидкості, тому цінніше витрачати час на те, щоб зробити код читабельним, ніж писати важку, легко застарілу документацію. (Звичайно, це не стосується API, а лише внутрішнього впровадження.) Тест трохи зазнає тієї ж проблеми: писати він може занадто повільно, якщо порівнювати з тестованим кодом. ОТО, це менша проблема, оскільки тести попереджають, що вони застаріли, тоді як ваша документація буде мовчати, доки ви не перечитаєте її дуже і дуже ретельно .
Нарешті, я часто зустрічаю проблему: автоматичне тестування може залежати від інструментів, і ці інструменти можуть бути погано написані. Я запустив проект за допомогою XUL деякий час тому, і, людино, просто боляче писати одиничні тести для такої платформи. Я запустив ще одну програму, використовуючи Objective-C, Cocoa та Xcode 3, і модель тестування на ній була в основному купою обхідних шляхів.
У мене є інший досвід щодо недоліків автоматизованого тестування, але більшість з них перераховані в інших відповідях. Тим не менш, я є прихильником автоматизованого тестування. Це врятувало дуже багато роботи та головного болю, і я завжди рекомендую це за замовчуванням. Я вважаю, що ці недоліки - це лише прості деталі порівняно з користю автоматизованого тестування. (Важливо завжди проголошувати свою віру після коментарів єресей, щоб уникнути автоматичного да.)