Насправді немає жодного способу переконатися, що ваші тестові випадки є правильними, за винятком концентрації дійсно при їх створенні - розуміння вимоги, розуміння коду та переконання, що вони згодні. Сенс тестового набору полягає в тому, що вам потрібно це зробити лише один раз, і з цього моменту ви можете просто повторно виконати тести і перевірити, чи вони проходять, тоді як без тестового набору вам доведеться весь час концентруватися дуже важко. , тобто щоразу, коли ви робите що-небудь з кодовою базою. Але основна проблема - переконатися, що ви робили правильно, в першу чергу залишається - комп'ютери просто недостатньо розумні, щоб звільнити нас від цього завдання.
Тому (1) якщо ваш тестовий набір неповний, це не є простим способом бачити це. Аналіз покриття коду може довести, що деякі рядки коду ніколи не виконуються, тобто, набір певним чином є дефіцитним, але не наскільки серйозним є цей дефіцит, і він ніколи не може довести його достатності. Навіть при 100% покритті коду ви не гарантуєте, що всі відповідні штатисистеми здійснюються, і повне охоплення державою недосяжне для будь-якої реалістичної системи через комбінаторне число держав, які могли б існувати. Однією з хороших методик переконання, що ви перевіряєте тест є принаймні правильним для перевірки речі, яку ви хочете перевірити, - це написати тест, переконатися, що він справді не працює, записати / змінити код, а потім переконатися, що він зараз проходить. Звідси захоплений тестовим розвитком: він дозволяє бути впевненим, що індивідуальний тест робить правильно, і якщо таким чином створити всю свою кодову базу, ви зможете отримати аналогічний рівень впевненості навіть у великій системі.
(2) Тестовий набір зазвичай стає недостатнім, коли вимоги змінюються - вам не доведеться здогадуватися. Якщо замовник хоче, щоб певна поведінка змінилася, і ваші тести мали б успіх як до, так і після зміни, то, очевидно, вони не виконували конкретні відносини введення / виводу.
Що стосується застарілих систем, які не мають тестового покриття, або де ви не знаєте, що таке покриття, формального доказу немає, але (батьківські рекомендації: особиста думка випливає!) Якщо говорити з досвіду, то надзвичайно ймовірно, що тести не є адекватними Коли тестування розглядається як фактична, необов'язкова, підвищуюча якість, але не дуже потрібна діяльність, вона, як правило, є неповною та несистемною, оскільки стимул до того, щоб тести були в курсі бази коду, просто не є ти там.