База знань

Димове та санітарне тестування ( Smoke and Sanity testing)

smoke_test
У тестуванні програмного забезпечення дуже часто плутають такі два поняття як димове і санітарне тестування (Smoke and Sanity Testing). Існує безліч літератури на цю тему, але розібратися все ж складно. Дана стаття допоможе розібратися в цих видах тестування, а також в різниці між ними.

Для початку розберемося що таке білд або “збірка ПЗ” (software build)?

Якщо ви розробляєте просту програму, яка складається з одного файлу вихідного коду, то вам просто потрібно скомпілювати цей один файл. Цей процес дуже простий. Але на практиці такого не буває. Зазвичай проект складається з сотень або навіть тисяч файлів вихідного коду. Створення робочої програми з цих вихідних файлів є складним і трудомістким завданням. Ви повинні “зібрати” ПЗ для створення працездатної програми. Саме цей процес називається “білд програмного забезпечення”.

Що таке димове тестування (smoke testing)?

Димове тестування виконується перед вичерпним (виснажливим) тестуванням існуючого або нового функціоналу – щоб переконатися, що ключовий функціонал програми працює коректно. Іншими словами – це коротке тестування всіх основних функцій ПЗ, що розробляється . Типовим прикладом димового тестування буде переконатися, що програма запускається успішно, що графічний інтерфейс (GUI) успішно відгукується, користувач може залогінитися і зробити пару своїх найбільш часто використовуваних дій в системі т.п. Одна з легенд стверджує, що тут назва пішла з електротехніки – Ви включаєте (наприклад) чайник в розетку – і якщо відразу ж не пішов дим – то, швидше за все, він працює “коректно” (Ви ж не робите “повний регрешен” чайника кожен раз коли заварюєте собі чай;)?)

Що таке санітарне тестування (sanity testing)?

Після отримання білда з мінімальними змінами в коді або функціональності, виконується санітарне тестування, яке проводиться для того, щоб переконатися в виправленні бага, виявленого в попередньому білді, а також, що не з”явився дефект в суміжному функціоналі. Також проводиться до детального регресійного тестування. Наприклад, якщо калькулятор дає результат 2 + 2 = 5, то немає ніякого сенсу тестувати більш складну функціональність, як наприклад sin 30 + cos 50.

Ключова різниця між димовим і санітарним тестуванням подана в таблиці:

Димове тестування Санітарне тестування
1 Проводиться для того, щоб переконатися, що ключовий функціонал працює коректно Проводиться, щоб перевірити, чи дефект виправлений і чи це не вплинуло на “близьколежачий” функціонал
2 Мета – перевірити стабільність системи і далі продовжити більш детальне тестування Мета – перевірити раціональність системи і далі продовжити більш детальне тестування
3 Проводиться розробниками або тестувальниками Зазвичай проводяться тестувальниками
4 Проводиться розробниками Проводиться тестувальниками
5 Проводиться за сценарієм Проводиться не за сценарієм
6 Зазвичай задіює (тестує) всі компоненти системи Тестуються в основному компоненти системи, які відносяться до специфічного функціоналу
6 Димові тестування – це як обстеження загального стану здоров’я Санітарне тестування – це як спеціалізоване медичне обстеження

Часто димове тестування називають “тестуванням вшир”, а санітарне – “тестуванням вглиб”.

 

Набагато більше інформації на курсі базовий модуль тестування