Озаботились повышением качества своего программного продукта. Попросили разработчиков перед передачей задачи проводить санитарное тестирование. Поговорили и пошли дальше. Но время показало, что у разработчиков есть вопросы — что такое санитарное тестирование? И что такое дымовое тестирование? Чем санитарное тестирование отличается от дывомого? А разве для санитарного тестирования не нужны спецификации, которых нет? «Разве мы должны проводить санитарное тестирование, а не тестировщики? Зачем тогда тестировщики?».
В поисках ответа на вопросы прошелся по стандартам и литературе в области разработки программ и немного удивился. Стандарты и литература в большинстве случаев не касаются ни сантирного, ни дымового тестирования. Внести ясность помогли Рекс Блэк, Роман Савин, Артур Коробейник и словари International Software Testing Qualifications Board (ISTQB).
«Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование», Рекс Блэк, Москва, Лори, 2006, 532/545 страницы:
Тестирование на исправность (Sanity Test). См. Приемочное тестирование (Smoke Test, Sanity Test).
Приемочное тестирование, тестирование на исправность (Smoke Test, Sanity Test). Тестирование, проверяющее, насколько стабильна предлагаемая на тестирование версия, чтобы можно было начинать штатное тестирование. Обычно это подмножество всего комплекта тестов, как правило, автоматизированное, затрагивающее все части системы, по крайней мере, поверхностно. Качественные приемочные тесты обычно довольно долго проверяют работу системы, чтобы проявились серьезные проблемы надежности и работоспособности. Термин "smoke test" (тест на задымленность) взят из электротехники: когда инженер включает цепь, первичный тест проверяет, не дымятся ли компоненты.
«Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах», Роман Савин, Москва, Дело, 2007. 104 страница, 257:
Исполнение тестирования и ремонт багов. Так как о тестировании мы будем говорить все остальные томные вечера, то сейчас будем лаконичны, как спартанцы. После того как проинтегрирован код, тестировщики проводят тест приемки (//smoke test, sanity test или confidence test//), в процессе которого проверяются основные функциональности.
Пример. Если мы не можем логнуться (log into) в наш эккаунт (account) на www.main.testshop.rs, то о каком дальнейшем тестировании можно говорить.
Если тест приемки не пройден, то программисты и релиз-инженеры совместно работают над поиском причины. Если проблема была в коде, то код ремонтируется, интегрируется и над ним снова производится тест приемки. И так по кругу, пока тест приемки не будет пройден.
Если же тест приемки пройден, то код замораживается и тестировщики начинают тестирование новых компонентов (new feature testing), т.е. исполнение своих тест-кейсов, написанных по спекам данного релиза (более подробно о значении термина feature поговорим в беседе о системе трэкинга багов)...
Классификация тестов по времени проведения тестирования. До передачи пользователю — альфа-тестирование (alpha-testing):
- тест приемки (smoke test, sanity test или confidence test);
- тестирование новых функциональностей (new feature testing);
- регрессивное тестирование (regression testing);
- тест сдачи (acceptance or certification test);
- После передачи пользователю — бета-тестирование (beta testing).
Кстати, тест приемки — это, как правило, эд хок-тестирование, при котором мы проверяем, работают ли самые базовые вещи, как, например, создание нового эккаунта. Я рекомендую составить список с такими базовыми вещами, например:
- Создай новый эккаунт
- Войди в систему
- Добавь книгу в корзину...
И во время теста приемки мы просто идем от строчки к строчке и делаем проверку. Тест приемки считается пройденным, когда каждый из наших мини-тестов имеет положительный исход.
«Краткие основы тестирования программного обеспечения», Артур Коробейник. Киев: Директ-лайн, 2012. 40 страница:
Дымное тестирование – это поверхностный осмотр программы на то что она вообще способна работать и выполнять основные функции. Это тестирование проводится для того, чтобы пропустить какой-то модуль или всю программу на более точные этапы проверки. Например, вам говорят протестировать новую спутниковую навигационную систему (GPS) в вашем мобильном коммуникаторе. Прежде, чем согласиться с тем что система готова к тестированию, вы устанавливаете и запускаете её. Если GPS программа запустилась, определила ваше текущее местоположение и смогла просчитать какой-то простенький маршрут, то она прошла дымное тестирование и вы её принимаете у разработчиков на остальные более направленные и специфицированные фазы тестов. Если же система дала сбой во время дымного тестирования, не запустилась, не определила местоположение, то вы говорите что программа не работоспособна, требует доработки программистами и до исправления критических ошибок её дальнейшее тестирование выполняться не будет.
"Стандартный глоссарий терминов, используемых в тестировании программного обеспечения", версия 2.3 (от 9 июля 2014 года), International Software Testing Qualifications Board, ред. пер. Александр Александров. 54 страница:
Входной тест (intake test): Специальный тип теста "на дым" для принятия решения, готов ли компонент или система готова для дальнейшего детального тестирования. Обычно начинается в начале фазы тестирования. См. также тест "на дым".
Тест верификации сборки (build verification test): Набор автоматических тестов, валидирующих целостность каждой новой сборки и верифицирующих ее ключевую/базовую функциональность, стабильность и тестируемость. Данный вид тестирования используется там, где присутствует высокая частота сборок (например, проекты с использованием гибких методологий разработки) и выполняется для каждой новой сборки перед передачей ее в тестирования. См. также регрессионное тестирование, тест "на дым".
Тест "на дым" (smoke test): Выборка из общего числа запланированных тестовых сценариев, покрывающая основную функциональность компонента или системы. Проводится с целью удостовериться, что базовые функции программы в целом работают корректно, без углубления в детали. Ежедневная сборка и тест "на дым" являются передовыми практическими методами. См. входной тест, тест верификации сборки.
Тест работоспособности (sanity test): См. тест "на дым".
«Standard Glossary of Terms used in Software Testing», версия 3.1 (18 марта 2016 года), International Software Testing Qualifications Board:
Build verification test (BVT). See Also: regression testing, smoke test. A set of automated tests which validates the integrity of each new build and verifies its key/core functionality, stability and testability. It is an industry practice when a high frequency of build releases occurs (e.g., Agile projects) and it is run on every new build before the build is released for further testing.
Intake test. See Also: smoke test. Synonyms: pretest. A special instance of a smoke test to decide if the component or system is ready for detailed and further testing. An intake test is typically carried out at the start of the test execution phase.
Smoke test. See Also: build verification test, intake test. Synonyms: confidence test, sanity test. A subset of all defined/planned test cases that cover the main functionality of a component or system, to ascertaining that the most crucial functions of a program work, but not bothering with finer details.
Не обнаружил упоминания "smoke", "sanity", "санит", "прием", "дымов":
По указателю в конце книги по теме санитарного тестирования не обнаружено информации в:
31.08.2017