Я пропоную написати повний тестовий набір у тих областях, де це розумно і практично зробити. У менш практичних сферах пишіть перевірки санітарності.
На мій досвід, великі витрати на повний набір тестових випадків, безумовно, варті в більшості випадків, але реально охоплення кодом зменшує віддачу. У якийсь момент писати більше тестів для збільшення покриття коду просто не має сенсу.
Наприклад, залежно від вашої мови / технології, тестування інтерфейсу користувача може бути не практичним або навіть здійсненним. Багато тестів, ймовірно, покладаються на те, що бачить користувач, і не може бути автоматизованим. Як би ви перевірили, що метод генерування капчу створює зображення, яке читається, наприклад, людиною?
Якщо повний набір тестів займе у вас три дні для написання, ймовірність появи помилки в цьому компоненті вниз по трасі дуже низька, а сама функція займає лише півгодини для написання, ви, ймовірно, повинні добре подумати про те, чи варто того часу. Можливо, саме написання базової перевірки на корисність для цієї функції надало б значення?
Моя загальна порада полягає в тому, щоб ви протестували компоненти повністю там, де можна виписати тести порівняно легко. Однак, якщо це дуже важко перевірити, намалюйте лінію в піску та напишіть тести, які перевірять область на більш високому рівні, а не перевіряють її повністю.
У попередньому прикладі captcha, можливо, пишуть тести, які перевіряють зображення правильного розміру та формату, і повертаються жодні винятки. Це дає певний рівень впевненості, не переходячи за борт.