Fuente
Затишна Галера | ЧарівнийКомпас 🧭1️⃣9️⃣5️⃣ Завдання 195Що таке false positive і false n...
790 Vistas/Alcance
2025-06-16 11:55
Mensaje №1966
#ЧарівнийКомпас 🧭1️⃣9️⃣5️⃣ Завдання 195Що таке false positive і false negative в тестах?Один з пасажирів з patreon надіслав у особисті таке питання (до речі, підписуйтесь, якщо хочете підтримати галеру на плаву). Каже, запитали на співбесіді та попросили навести приклади. Давайте розберемося.🤔 Це два типи помилок, які вказують на невідповідність отриманого результату очікуваному. У межах тестування дуже часто пов’язані з криво написаними тестами, особливо це властиво автоматизації.➖ False Positive (він же хибнопозитивний результат) - результат, у якому на перший погляд усе правильно, але насправді ховається помилка.🤓 Для наочності приклад:Ви перевіряєте реєстрацію користувача. На UI отримуєте повідомлення, що ваш користувач успішно зареєстрований. Якщо цей тест більше нічого не перевіряє, то є ймовірність отримати той самий False Positive результат. Наче тест пройшов, повідомлення про реєстрацію є, а от чи справді реєстрація відбулася - ми не перевірили. Тому хороший тест, щоб уникнути цієї проблеми, має ще містити перевірку того, що ми були автоматично залогінені під цим користувачем після реєстрації, або окремий логін під цим користувачем, або ж перевірку, що в базі даних створено відповідний запис про нового користувача.Головна проблема False Positive результатів у тому, що вони створюють впевненість, що у вас усе працює і багів немає, хоча це не відповідає дійсності, і можливо у вас просто тести та перевірки зроблені надто поверхнево.➖ False Negative (він же хибновід’ємний результат) - результат, коли ми отримуємо помилку і вважаємо її дефектом, хоча це очікувана поведінка системи.🤓 І знову приклад для наочності:Дуже часто зустрічається в автоматизації, коли вона написана не надто досвідченими автоматизаторами. Наприклад, ми намагаємося натиснути на кнопку одразу після якоїсь дії, а цей елемент просто ще не підгрузився, відповідно автоматизація не може його знайти й натиснути, тест падає, але через секунду-дві сторінка догружається і кнопка з’являється. В результаті система працює як очікувалося, але тест впав і ми отримали помилку.Головна проблема False Negative результатів у тому, що вони забирають час команди на дослідження тих проблем, яких насправді в системі може й не бути.Обидві проблеми ведуть до того, що користі від такої автоматизації мало і вона підриває довіру до себе. У випадку з False Positives ми просто пропускаємо повз реальні дефекти, у випадку з False Negatives - нам доводиться за такою автоматизацією постійно ще вручну перевіряти результати.Щоб цього не відбувалося, є кілька корисних порад:1️⃣ Тести й тестові дані потрібно підтримувати в актуальному стані, якщо щось змінюється в вимогах, то потрібно адаптувати й тести2️⃣ Синхронізація в тестах має бути налаштована з використанням best practices3️⃣ Тести мають бути максимально ізольовані, а середовище стабільне4️⃣ Перевіряти не лише UI, але й здійснювати перевірки в рамках логів, беку, БД тощо@Zatishna_Galera