Тестування на осудність проти тестування на дим: ключові відмінності, приклади та коли використовувати кожне з них
⚡ Короткий огляд
Тестування на осудність проти тестування на дим – це два основні методи тестування програмного забезпечення, спрямовані на перевірку стабільності та раціональності системи після збірки. Обидва спрямовані на запобігання марним зусиллям з контролю якості шляхом виявлення нестабільних або недосконалих збірок на ранніх етапах циклу тестування.

Тестування на дим проти тестування на осудність: порівняльна таблиця
| Аспект | Тестування диму | Перевірка розумності |
|---|---|---|
| Основна ціль | Перевірка стабільності збірки | Перевірте функціональність змін |
| Сфера | Широкий (повне застосування) | Вузький (специфічні модулі) |
| Глибина | Поверхневе тестування | Глибоке тестування (цільове) |
| Виконано | Розробники або тестувальники | Тільки для тестувальників |
| Стан збірки | Початкові/нестабільні збірки | Відносно стабільні збірки |
| Документація | Написано та задокументовано | Зазвичай без сценарію |
| Підмножина тестування | Тестування прийняття | Регресійне тестування |
| Автоматизація | Настійно рекомендується | Може бути ручним або автоматизованим |

Що таке збірка програмного забезпечення?
Якщо ви розробляєтеping проста комп'ютерна програма, яка складається лише з одного файлу вихідного коду, вам просто потрібно скомпілювати та зв'язати цей один файл, щоб створити виконуваний файл. Цей процес є простим. Зазвичай це не так. Типовий програмний проект складається з сотень або навіть тисяч файлів вихідного коду. Створення виконуваної програми з цих вихідних файлів є складним і трудомістким завданням. Вам потрібно використовувати програмне забезпечення для «збірки», щоб створити виконувану програму, і цей процес називається «Збірка програмного забезпечення».
Що таке тестування диму?
Димове тестування – це метод тестування програмного забезпечення, який виконується після його складання для перевірки належної роботи критичних функцій. Він виконується перед будь-якими детальними функціональними або регресійними тестами. Основна мета димового тестування – відхилити програмний застосунок з дефектами, щоб команда контролю якості не витрачала час на тестування несправного програмного застосунку.
У Smoke Testing вибрані тестові випадки охоплюють найважливішу функціональність або компонент системи. Метою є не вичерпне тестування, а забезпечення правильної роботи ключових функцій програмного застосунку. Наприклад, типовий Smoke Test перевіряє, чи успішно запускається застосунок, чи реагує графічний інтерфейс тощо.
Що таке тестування на осудність?
Тестування на працездатність – це вид тестування програмного забезпечення, який виконується після отримання збірки програмного забезпечення з незначними змінами в коді або функціональності, щоб переконатися, що помилки виправлені, і що ці зміни не викликають подальших проблем. Мета полягає в тому, щоб визначити, що запропонована функціональність працює приблизно так, як очікувалося. Якщо тест на працездатність не проходить, збірка відхиляється, щоб уникнути витрачання часу та ресурсів на глибше тестування.
Мета полягає «не» в перевірці повної функціональності, а в тому, щоб визначити, чи розробник застосував певну раціональність (розсудливість) під час створення програмного забезпечення. Наприклад, якщо ваш науковий калькулятор видає результат 2 + 2 = 5! Тоді немає сенсу тестувати розширені функції, такі як sin 30 + cos 50.
Історія та походження термінів
Термін «тестування димом» походить з апаратної та електронної промисловості. Коли інженери вперше вмикали нову плату, вони спостерігали, чи не почне вона диміти — це був негайний показник фундаментального дефекту. Якщо диму не з'являлося, можна було розпочати базове тестування. Цю концепцію застосували тестувальники програмного забезпечення в 1980-х роках для опису початкової перевірки збірки.
З іншого боку, «тестування на працездатність» стосується перевірки «працездатності» або раціональності певних змін. Цей термін наголошує на перевірці того, що програмне забезпечення поводиться розумно та логічно після модифікацій, по суті, запитуючи: «Чи має це сенс?»
Тестування диму проти тестування здорового глузду проти регресійного тестування
Розуміння того, як ці три типи тестування працюють разом, є критично важливим для ефективної стратегії забезпечення якості:
- Тестування диму на першому місці — він перевіряє, чи збірка достатньо стабільна для тестування взагалі.
- Перевірка розумності далі (якщо застосовується) — це підтверджує, що певні зміни або виправлення працюють правильно.
- Регресійне тестування є найповнішим — він гарантує, що нові зміни не порушать жодної існуючої функціональності.
Уявіть собі це як воронку продажів: димове тестування — це широкий отвір, який швидко фільтрує нестабільні збірки, тестування на працездатність звужує фокус до конкретних змін, а регресійне тестування забезпечує ретельне охоплення всієї системи.
Реальний сценарій: додаток для електронної комерції
Розглянемо веб-сайт електронної комерції, який отримує нову версію з магазиномping виправлення помилки кошика:
Тест на дим: Спочатку служба контролю якості перевіряє, чи завантажується веб-сайт, чи можуть користувачі увійти в систему, чи правильно відображаються товари, чи працює пошук, і чи розпочався процес оформлення замовлення. Це займає приблизно 15-30 хвилин.
Тест на осудність: Після успішного проходження тестування на дим, тестувальники зосереджуються саме на цехуping функціональність кошика — додавання товарів, оновлення кількості, видалення товарів та перевірка розрахунків. Цей цільовий тест триває приблизно 30-60 хвилин.
Якщо обидва тести проходять успішно, команда переходить до повного регресійного тестування, яке може тривати кілька годин або днів залежно від складності програми.
Коли використовувати тест на дим чи осудність
Використовуйте тестування димом, коли:
- Нову збірку програмного забезпечення розгорнуто в середовищі тестування.
- Вам потрібно швидко перевірити критично важливі функції, такі як вхід, навігація та потік даних
- Визначення того, чи достатньо стабільна збірка для подальшого детального тестування
- Інтеграція в конвеєри CI/CD для автоматизованої перевірки збірки
Використовуйте перевірку здорового глузду, коли:
- Впроваджено незначні зміни коду, виправлення помилок або покращення функцій
- Перевірка того, що певні зміни працюють належним чином
- Збірка вже відносно стабільна після попередніх тестів на дим
Переваги та обмеження
Переваги
- Швидке виявлення критичних проблем: Обидва методи швидко виявляють проблеми, які можуть зупинити тестування.
- Ефективність використання ресурсів: Команди не витрачають час на детальне тестування фундаментально непрацюючих збірок.
- Раннє виявлення дефектів: Виявлення проблем на ранніх етапах циклу знижує загальні витрати на їх усунення.
- Швидші цикли випуску: Ефективний гейткіping забезпечує швидшу ітерацію та розгортання.
Недоліки
- Обмежене покриття: Жоден з типів тестів не забезпечує повного охоплення всієї програми.
- Може пропустити приховані помилки: Проблеми інтеграції або граничні випадки можуть залишитися непоміченими.
- Не замінює повне тестування: Вони служать швидкими фільтрами, а не заміною регресійного тестування.
Найкращі практики впровадження
Для тестування диму:
- Автоматизуйте димові тести та інтегруйте їх у свій конвеєр CI/CD для кожної збірки.
- Зосередьте набір тестів smoke лише на критично важливих функціях — не дозволяйте йому ставати занадто великим.
- Оновлюйте тести диму щоразу, коли додаються або змінюються критично важливі функції.
Для перевірки осудності:
- Завжди переглядайте документацію щодо змін, перш ніж створювати сценарії тестування на працездатність.
- Зосередьте зусилля тестування на змінених областях та безпосередньо суміжних функціональних можливостях.
- Використовуйте методи дослідницького тестування для виявлення неочікуваних проблем.
Поширені помилки, яких слід уникати
- Плутанина двох типів тестів: Тестування на дим є широким і поверхневим; тестування на осудність є вузьким і глибоким.
- Пропускатиping тестування димом для економії часу: Це часто призводить до марних зусиль на нестабільних збірках.
- Занадто вичерпні методи тестування диму: Це зводить нанівець мету швидкої перевірки.
- Діяльність після невдач: Якщо будь-який з типів тестів не спрацює, зупиніться та вирішіть проблеми, перш ніж продовжувати.
Рекомендовані інструменти для перевірки диму та здорового глузду
- Selenium WebDriver: Галузевий стандарт для автоматизації тестування веб-застосунків
- TestNG/JUnit: Тестові фреймворки для організації та виконання автоматизованих тестів
- JenkinsДії /GitHub: Інструменти CI/CD для автоматизованої збірки та виконання тестів
- Cypress: Сучасний, зручний для розробників фреймворк для комплексного тестування
- Postman/Будьте впевнені: Інструменти API-тестування для бекенд-тестів диму
