Что такое тестирование на дым, и что оно мне даст? - PullRequest
41 голосов
/ 14 апреля 2009

Мне показалось, что я понял, что для непрерывной интеграции использовался дымовой сервер для измерения производительности и тестового покрытия проекта. Это в основном правильно? Что значит курить тестовую программу? Означает ли это просто непрерывно применять тесты, определенные на сервере дыма, чтобы иметь возможность точно определить снижение производительности в определенный период времени?

Ответы [ 9 ]

61 голосов
/ 14 апреля 2009

Дымовое тестирование - это набор базовых дешевых тестов, предшествующих реальному тестированию. Он направлен на то, чтобы убедиться, что сборка успешно развернута и что все тестовые среды. аспекты запущены и готовы к фактическому процессу тестирования. Это спасет вас от полного отказа от тестового гнева от неисправной сборки и просто от осознания того, что вы тестировали на плохой среде. или ошибочно развернутая сборка, возможно, слишком поздно.

28 голосов
/ 02 апреля 2013

Включите, посмотрите, не выходит ли дым.

21 голосов
/ 14 апреля 2009

Термин происходит от восстановления оборудования и применяется к программному обеспечению. Он предназначен для быстрой проверки того, «загорается» ли приложение при первом запуске. Как уже говорилось выше, это просто для того, чтобы не тратить время на кучу людей, развязав их на чем-то явно сломанном.

4 голосов
/ 07 сентября 2009

Страница в Википедии о тестировании дыма на самом деле довольно хороша. Он включает указатель на документ Стива Макконнела («Выполнение кода») в разделе «Лучшие практики» программного обеспечения IEEE 13 (4), 1996, озаглавленный «Ежедневный тест сборки и дымообразования» .

Я бы сказал, что тестирование на дым является предварительным условием для юнит-тестов и других форм тестирования: если тест на дым не пройден, нет смысла даже запускать модульное тестирование.

4 голосов
/ 14 апреля 2009

Дымовое тестирование не является тестированием производительности или тестированием предотвращения регрессии.

Дымовое тестирование - это набор ваших полностью автоматизированных тестов с наивысшим приоритетом. Даже если ваша обычная сборка будет успешной, ваш продукт может быть поврежден очень фундаментально, что сделает его на 100% непригодным для использования. Дымовые тесты предназначены для тестирования этого уровня функциональности ядра. Сборка, которая не проходит тесты дыма, с большой вероятностью не пройдет большинство ваших автоматических тестов.

Если тест дыма не проходит, это обычно означает, что вы теряете производительность, потому что сборка не пригодна для использования, не может быть протестирована и т. Д. Сбои теста дыма обычно требуют немедленных исправлений, порядка нескольких часов, а не дней.

Важным аспектом испытаний на дым является то, что они могут быть выполнены быстро. Вы должны ВСЕГДА проводить какие-то тесты на дым. Многие группы располагают достаточными ресурсами для выполнения более широкого набора тестов в своих ежедневных или непрерывных сборках интеграции (что хорошо), но тесты дыма следует рассматривать как минимум.

2 голосов
/ 14 апреля 2009

Мы используем термин «дымовой тест» для обозначения тестирования, которое выполняет быстрые базовые тесты для приложения или продукта, чтобы сделать его пригодным для дальнейшего тестирования, такого как интеграционное тестирование или функциональное тестирование. Бесполезно проводить интеграционное тестирование или другое расширенное тестирование, если приложению не удается выполнить некоторые элементарные действия, необходимые для этого расширенного тестирования. Например, у нас есть веб-приложение, и мы проводим тест на дым, чтобы убедиться, что мы можем загрузить все веб-страницы, позволить пользователям входить / выходить из системы и т. Д. Это основные вещи, которые должны работать с приложением, чтобы сделать его тестируемым. Если страницы даже не загружаются или пользователи не могут даже войти в систему, мы не можем ничего сделать с функциональностью или интеграционным тестированием. Мы проводим тестирование дыма с каждой сборкой, после чего выполняем тестирование функциональности и интеграции.

1 голос
/ 14 апреля 2009

Дымовое тестирование - это первый шаг интеграционного тестирования. Как разработчик, вы собрали все части вместе и убедитесь, что ваше приложение будет работать, прежде чем отдать его команде QA для «настоящего» тестирования.

Я хотел написать больше, но MahdeTo побил меня до правильного ответа ...:)

0 голосов
/ 13 января 2019

Я согласен с некоторыми из предыдущих ответов. Для меня Smoke Testing - это просто проверка, все ли мои X тысяч подстраниц и перенаправлений все еще работают.

Работа означает, что код состояния каждой подстраницы - «200 OK».

Я запускаю Дымовые тесты как можно позже. После того, как я развернул свой код на сервере и прежде чем я активировал этот сервер.

Сегодня есть даже онлайн-сервис (SaaS), который делает эту работу за меня. https://www.smest.it помогает мне с тестированием дыма. Я только что однажды ввел свой личный домен на их домашней странице, и с тех пор я ежедневно проверяю свой сайт. Никакого стресса.

0 голосов
/ 26 ноября 2014

* Проверка основных и критических характеристик приложения перед началом тестирования называется тестом на дым. * При тестировании на дым мы проверяем положительный поток основных и критических функций, чтобы проверить, тестируется ли сборка.

...