Ми перевіряємо наш код, щоб зробити його більш правильним (насправді, менше ймовірність його неправильності ). Однак тести також є кодовими - вони також можуть містити помилки. І якщо ваші тести є помилковими, вони навряд чи покращать ваш код.
Я можу придумати три можливі типи помилок у тестах:
Логічні помилки, коли програміст неправильно зрозумів завдання під рукою, а тести роблять те, що він вважав, що вони повинні зробити, що неправильно;
Помилки в базовій основі тестування (наприклад, протікає глузуюча абстракція);
Помилки в тестах: тест робиться дещо інакше, ніж те, що вважає програміст.
Помилки типу (1), здається, неможливо запобігти (якщо програміст просто ... стає розумнішим). Однак (2) та (3) можуть бути простежувані. Як ви ставитеся до подібних помилок? Чи є у вас якісь спеціальні стратегії, щоб їх уникнути? Наприклад, ви пишете якісь спеціальні "порожні" тести, які перевіряють лише припущення автора тесту? Крім того, як ви підходите до налагодження зламаного тестового випадку?