Smoke Test (англ. Smoke testing. Димове тестування) в тестуванні програмного забезпечення означає мінімальний набір тестів на явні помилки. «Димовий тест» зазвичай виконується самим програмістом; Не минало цей тест програму не має сенсу віддавати на більш глибоке тестування.
- Помилки інсталяції: якщо програмний продукт не встановлюється, його тестування, швидше за все, виявиться неможливим.
- Помилки при з'єднанні з базою даних, актуально для архітектури клієнт-сервер.
Перше своє застосування цей термін отримав у пічників, які, зібравши піч. закривали всі заглушки, затоплювали її і дивилися, щоб дим йшов тільки з належних місць.
Повторне «народження» терміна відбулося в радіоелектроніці. Перше включення нового радіоелектронного пристрою, який прийшов з виробництва, відбувається на дуже короткий час (менше секунди). Потім інженер руками обмацує все мікросхеми на предмет перегріву. Сильно нагрілася за цю секунду мікросхема може свідчити про грубу помилку в схемі. Якщо перше включення не виявило перегріву, то прилад включається знову на більший час. Перевірка повторюється. І так далі кілька разів. Вираз «smoke-test» використовується інженерами в жартівливому сенсі, так як появи диму, а значить і псування частин пристрою, намагаються уникнути.
Smoke Tests легше автоматизувати, ніж більш глибоке і інтелектуальне тестування. Автоматизація знижує кількість ручної праці і тому дозволяє проводити ці тести частіше. Чим частіше виконуються тести, тим раніше стає відомо про проблеми, що виявляються цими тестами. Чим раніше стає відомо про проблему, тим легше її усунути. Автоматизація тестування часто виконується за допомогою засобів безперервної інтеграції.