Smoke Testing та Sanity Testing — це два типи поверхневого тестування, які використовуються для швидкої перевірки стабільності та готовності програмного продукту до подальшого (глибшого) тестування. Вони дуже схожі, але виконуються в різних ситуаціях і з різною метою.
| Smoke Testing (Димове тестування) |
| Що це? Це початкове базове тестування програми після нового білду, щоб перевірити, чи основні функції працюють, і чи взагалі є сенс проводити подальше тестування. Назва походить з апаратного тестування: якщо пристрій “не димить” після увімкнення, з ним можна працювати далі. Коли виконується? Після отримання нового білду, перед будь-яким глибшим тестуванням. Мета: Перевірити, що критичні функції (логін, навігація, запуск основних модулів) працюють, і продукт не «падає» одразу. Визначити, чи взагалі білд придатний для подальшого тестування. Характеристики: Високорівневе тестування Покриває всю систему поверхнево Автоматизоване або ручне Швидке: займає кілька хвилин до години |
| Sanity Testing (Тестування працездатності) |
| Що це? Це поверхневе тестування конкретної частини програми, зазвичай після виправлення багу або незначної зміни, щоб переконатися, що ця зміна працює як очікується, і не зламала нічого критичного поруч. Коли виконується? Після невеликих змін у коді, наприклад: Виправлення багів Локальні зміни в логіці Невеликі UI-оновлення Мета: Перевірити, що нововнесені зміни працюють і що ключова пов’язана функціональність не порушена. Характеристики: Низькорівневе, вузьконаправлене тестування Фокусується на одній функціональності або модулі Зазвичай ручне Виконується швидко (але може бути частиною регресії) |
Основні відмінності
| Характеристика | Smoke Testing | Sanity Testing |
| Мета | Перевірити стабільність системи загалом | Перевірити логіку після конкретної зміни |
| Коли використовується | Після кожного нового білду | Після фіксу або малої зміни |
| Покриття | Широке, поверхневе | Вузьке, глибше в рамках однієї фічі |
| Фокус | Основні функції програми | Конкретна зміна чи баг |
| Автоматизація | Часто автоматизоване | Переважно ручне |
| Чи продовжувати тестування? | Якщо пройдено — запускається повне тестування | Якщо пройдено — можна не запускати повну регресію |
Висновок
- Smoke Testing — це питання: “Чи система взагалі працює?”
- Sanity Testing — це питання: “Чи конкретна зміна не зламала щось важливе?”
Обидва типи тестування важливі для економії часу та ресурсів команди, бо дозволяють швидко відсіювати непридатні білди або невдалі фікси.