Что такое тестирование на дым и что оно мне даст?
Мне показалось, что я понял, что для непрерывной интеграции использовался дымовой сервер для измерения производительности и тестового покрытия проекта. Это в основном правильно? Что значит курить тестовую программу? Означает ли это просто непрерывно применять тесты, определенные на сервере дыма, чтобы иметь возможность точно определить снижение производительности в определенный период времени?
11 ответов
Дымовое тестирование - это набор базовых дешевых тестов, которые предшествуют реальному тестированию. Он направлен на то, чтобы убедиться, что сборка успешно развернута и что все тесты env. аспекты запущены и готовы к фактическому процессу тестирования. Это избавляет вас от полного отказа от тестового гнева от неисправной сборки и только от осознания того, что вы тестировали в плохой среде. или ошибочно развернутая сборка, возможно, слишком поздно.
Термин происходит от ремонта оборудования и был применен к программному обеспечению. Он предназначен для быстрой проверки того, "загорается" ли приложение при первом запуске. Как уже говорилось выше, это просто для того, чтобы не тратить время на кучу людей, развязав их на чем-то явно сломанном.
Страница википедии о тестировании дыма на самом деле довольно хорошая. Он включает указатель на документ Стива Макконнела ("Выполнение кода") в разделе "Лучшие практики" IEEE Software 13(4), 1996 г., озаглавленный "Ежедневное тестирование сборки и дымоудаления".
Я бы сказал, что тестирование на дым является предварительным условием для модульных и других форм тестирования: если тест на дым не пройден, нет смысла даже запускать модульное тестирование.
Дымовое тестирование не является тестированием производительности или тестированием предотвращения регрессии.
Дымовое тестирование - это набор ваших самых приоритетных полностью автоматизированных тестов. Даже если ваша обычная сборка будет успешной, ваш продукт может быть поврежден очень фундаментально, что сделает его на 100% непригодным для использования. Дымовые тесты предназначены для тестирования этого уровня функциональности ядра. Сборка, которая не проходит тесты дыма, с большой вероятностью провалит большинство ваших автоматических тестов.
Если тест дыма не проходит, это обычно означает, что вы теряете производительность, потому что сборка непригодна для использования, не может быть протестирована и т. Д. Сбои теста дыма, как правило, требуют немедленных исправлений, порядка нескольких часов, а не дней.
Важным аспектом испытаний на дым является то, что они могут быть выполнены быстро. Вы должны ВСЕГДА проводить какие-то тесты на дым. Многие группы располагают достаточными ресурсами для выполнения более широкого набора тестов в своих ежедневных или непрерывных сборках интеграции (что хорошо), но тесты дыма следует рассматривать как минимум.
Мы используем термин "дымовой тест" для обозначения тестирования, которое выполняет быстрые базовые тесты для приложения или продукта, чтобы сделать его пригодным для дальнейшего тестирования, такого как интеграционное тестирование или функциональное тестирование. Бесполезно проводить интеграционное тестирование или другое расширенное тестирование, если приложению не удается выполнить некоторые элементарные действия, необходимые для этого расширенного тестирования. Например, у нас есть веб-приложение, и мы проводим тест на дым, чтобы убедиться, что мы можем загрузить все веб-страницы, позволить пользователям входить / выходить из системы и т. Д. Это основные вещи, которые должны работать с приложением, чтобы сделать его тестируемым. Если страницы даже не загружаются или пользователи не могут даже войти в систему, мы не сможем многое сделать с функциональностью или интеграционным тестированием. Мы проводим тестирование дыма с каждой сборкой, за которым следуют функциональные и интеграционные тесты.
Дымовое тестирование - это первый шаг интеграционного тестирования. Как разработчик, вы собрали все части вместе и убедитесь, что ваше приложение будет работать, прежде чем отдать его команде QA для "настоящего" тестирования.
Я хотел написать больше, но MahdeTo избил меня до правильного ответа...:)
Я согласен с некоторыми из предыдущих ответов. Для меня Smoke Testing - это просто проверка, все ли мои X тысяч подстраниц и перенаправлений все еще работают.
Работа означает, что код состояния каждой подстраницы - "200 OK".
Я запускаю тесты на дым как можно позже. После того, как я развернул свой код на сервере и до того, как активировал этот сервер.
Сегодня есть даже онлайн-сервис (SaaS), который делает эту работу за меня. https://www.smest.it/ помогает мне в тестировании дыма. Я только что однажды ввел свой личный домен на их домашней странице, и с тех пор я ежедневно проверяю свой сайт. Никакого стресса.
Дымовое тестирование также может называться проверочным тестированием сборки или приемочным тестированием сборки, если дымовое тестирование не проходит, это означает, что сборка непригодна для использования и не может быть принята, этот дефект необходимо немедленно исправить с высоким приоритетом.
* Проверка основных и критических функций приложения перед началом тестирования называется тестированием дыма. * При тестировании дыма мы проверяем положительный поток основных и критических функций, чтобы проверить, тестируется ли сборка или нет.
Из Википедии
дымовой тест может отвечать на основные вопросы, такие как «запускается ли программа?», «открывается ли пользовательский интерфейс?» или «что-нибудь делает нажатие главной кнопки?» Процесс дымового тестирования направлен на определение того, настолько ли сильно приложение сломано, что дальнейшее немедленное тестирование становится ненужным.