Проверка на адекватность против проверки дымом: основные различия, примеры и когда применять каждый метод.
⚡ Краткое описание
Проверка на адекватность против проверки дымом Это два основных метода тестирования программного обеспечения, направленных на проверку стабильности и работоспособности системы после сборки. Оба метода призваны предотвратить неэффективные усилия по обеспечению качества путем выявления нестабильных или ошибочных сборок на ранних этапах цикла тестирования.
Дымовая проверка против проверки на адекватность: сравнительная таблица
| Аспект | Дымовые испытания | Проверка на вменяемость |
|---|---|---|
| Главная цель | Проверьте стабильность сборки. | Проверьте работоспособность изменений. |
| Объем | Широкое (все области применения) | Узкий (конкретные модули) |
| глубина | Поверхностное тестирование | Глубокое тестирование (целевое) |
| Выполняется | Разработчики или тестировщики | Только для тестировщиков |
| Состояние сборки | Начальные/нестабильные сборки | Относительно стабильные сборки |
| Документация | Сценарий составлен и задокументирован. | Обычно без сценария |
| Тестовое подмножество | Приемочное тестирование | Регрессионное тестирование |
| Автоматизация | Настоятельно рекомендуется | Может быть ручным или автоматизированным. |

Что такое сборка программного обеспечения?
Если вы разрабатываете простую компьютерную программу, состоящую всего из одного файла исходного кода, вам нужно лишь скомпилировать и связать этот файл, чтобы получить исполняемый файл. Этот процесс довольно прост. Однако обычно это не так. Типичный программный проект состоит из сотен или даже тысяч файлов исходного кода. Создание исполняемой программы из этих файлов — сложная и трудоемкая задача. Для создания исполняемой программы необходимо использовать программное обеспечение для сборки, и этот процесс называется «сборкой программного обеспечения».
Что такое дымовое тестирование?
Дымовое тестирование — это метод тестирования программного обеспечения, выполняемый после сборки программы для проверки корректной работы критически важных функций. Оно проводится перед выполнением подробных функциональных или регрессионных тестов. Основная цель дымового тестирования — отклонить программное приложение с дефектами, чтобы команда контроля качества не тратила время на тестирование неисправного приложения.
В дымовом тестировании выбранные тестовые примеры охватывают наиболее важные функции или компоненты системы. Цель состоит не в исчерпывающем тестировании, а в обеспечении корректной работы ключевых функций программного приложения. Например, типичное дымовое тестирование проверяет успешный запуск приложения, отзывчивость графического интерфейса пользователя и т. д.
Что такое тестирование на здравомыслие?
Проверка работоспособности (Sanity testing) — это вид тестирования программного обеспечения, проводимый после получения сборки с незначительными изменениями в коде или функциональности, чтобы убедиться, что ошибки исправлены и не возникло новых проблем из-за этих изменений. Цель состоит в том, чтобы определить, что предлагаемая функциональность работает примерно так, как ожидается. Если проверка работоспособности не пройдена, сборка отклоняется, чтобы избежать траты времени и ресурсов на более глубокое тестирование.
Цель состоит «не» в проверке полной функциональности, а в том, чтобы убедиться, что разработчик проявил хоть какую-то рациональность (здравый смысл) при создании программного обеспечения. Например, если ваш научный калькулятор выдает результат 2 + 2 = 5! Тогда нет смысла тестировать расширенные функции, такие как sin 30 + cos 50.
История и происхождение терминов
Термин «дымовая проверка» происходит из индустрии аппаратного обеспечения и электроники. Когда инженеры впервые включали новую печатную плату, они наблюдали, не начинает ли она дымить — это был немедленный признак фундаментального дефекта. Если дыма не появлялось, можно было продолжать базовое тестирование. Эта концепция была принята тестировщиками программного обеспечения в 1980-х годах для описания первоначальной проверки сборки.
«Проверка на адекватность», с другой стороны, подразумевает проверку «адекватности» или рациональности конкретных изменений. Этот термин подчеркивает необходимость проверки того, что программное обеспечение ведет себя разумным, логичным образом после внесения изменений — по сути, задавая вопрос: «Имеет ли это смысл?»
Дымовое тестирование против проверки работоспособности против регрессионного тестирования
Понимание того, как эти три типа тестирования взаимодействуют друг с другом, имеет решающее значение для эффективной стратегии обеспечения качества:
- Дымовые испытания Первым делом проверяется, достаточно ли стабильна сборка для проведения тестирования.
- Проверка на вменяемость далее (при необходимости) — подтверждается, что конкретные изменения или исправления работают корректно.
- Регрессионное тестирование Это наиболее всеобъемлющий подход, гарантирующий, что новые изменения не нарушили существующую функциональность.
Представьте это как воронку: дымовое тестирование — это широкое отверстие, которое быстро отфильтровывает нестабильные сборки, тестирование на работоспособность сужает фокус до конкретных изменений, а регрессионное тестирование обеспечивает тщательное обследование всей системы.
Реальный сценарий: приложение для электронной коммерции
Рассмотрим пример сайта электронной коммерции, который получил новую версию с исправлением ошибки в корзине покупок:
Тест на дым: Сначала отдел контроля качества проверяет, загружается ли веб-сайт, могут ли пользователи войти в систему, корректно ли отображаются товары, работает ли поиск и запускается ли процесс оформления заказа. На это уходит около 15-30 минут.
Проверка на адекватность: После успешного прохождения дымовой проверки тестировщики сосредотачиваются на функциональности корзины покупок — добавлении товаров, изменении количества, удалении товаров и проверке расчетов. Эта целенаправленная проверка занимает около 30-60 минут.
Если оба теста пройдут успешно, команда переходит к полномасштабному регрессионному тестированию, которое может занять несколько часов или дней в зависимости от сложности приложения.
Когда использовать дымовую проверку, а когда проверку на здравомыслие
Проводить дымовую проверку в следующих случаях:
- В тестовую среду развернута новая сборка программного обеспечения.
- Необходимо быстро проверить критически важные функции, такие как вход в систему, навигация и поток данных.
- Определение достаточной стабильности сборки для дальнейшего детального тестирования.
- Интеграция в конвейеры CI/CD для автоматической проверки сборки.
Проверку на адекватность следует проводить в следующих случаях:
- Вносятся незначительные изменения в код, исправляются ошибки или улучшаются функциональные возможности.
- Проверка того, что конкретные изменения работают должным образом.
- Сборка уже показала относительно стабильную работу после предыдущих тестов на дымообразование.
Преимущества и ограничения
Наши преимущества
- Быстрое выявление критических проблем: Оба метода позволяют быстро выявить проблемы, которые могли бы остановить тестирование.
- Ресурсоэффективность: Команды не тратят время на детальное тестирование сборок, в корне неисправных.
- Раннее обнаружение дефектов: Выявление проблем на ранних стадиях цикла снижает общие затраты на их устранение.
- Более быстрые циклы выпуска: Эффективный контроль за процессом внедрения позволяет ускорить итерации и развертывание.
ограничения
- Ограниченное покрытие: Ни один из типов тестов не обеспечивает всестороннего охвата всего приложения.
- Возможно, будут пропущены скрытые ошибки: Проблемы интеграции или нестандартные ситуации могут остаться незамеченными.
- Это не заменяет полноценное тестирование: Они служат в качестве экспресс-фильтров, а не заменой регрессионного анализа.
лучшие практики внедрения
Для дымовой проверки:
- Автоматизируйте дымовые тесты и интегрируйте их в конвейер CI/CD для каждой сборки.
- Сосредоточьте внимание в наборе тестов на критически важных функциях — не допускайте его чрезмерного разрастания.
- Обновляйте тесты на наличие вредоносных программ при добавлении или изменении критически важных функций.
Для проверки на адекватность:
- Перед созданием сценариев проверки корректности всегда проверяйте документацию по изменениям.
- Сосредоточьте усилия по тестированию на измененных областях и непосредственно смежных функциях.
- Используйте методы исследовательского тестирования для выявления неожиданных проблем.
Распространенные ошибки, которых следует избегать
- Путаница между двумя типами тестов: Проверка дымом — это широкий и поверхностный метод; проверка здравомыслия — узкий и глубокий метод.
- Пропуск проверки на дымоудаление для экономии времени: Это часто приводит к пустой трате усилий при создании нестабильных сборок.
- Слишком тщательные дымовые проверки: Это сводит на нет цель быстрой проверки.
- Действия после неудач: Если какой-либо из типов тестов не пройден, остановитесь и устраните проблемы, прежде чем продолжить.
Рекомендуемые инструменты для проверки работоспособности и эффективности дымовой обработки
- Selenium Вебдрайвер: Отраслевой стандарт для автоматизации тестирования веб-приложений.
- TestNG/JUnit: Фреймворки для организации и выполнения автоматизированных тестов
- Jenkins/GitHub Actions: Инструменты CI/CD для автоматизированной сборки и выполнения тестов.
- Cypress: Современная, удобная для разработчиков платформа для сквозного тестирования.
- Postman/Будьте уверены: Инструменты тестирования API для проведения дымовых тестов бэкэнда

