О санитарном тестировании

Озаботились повышением качества своего программного продукта. Попросили разработчиков перед передачей задачи проводить санитарное тестирование. Поговорили и пошли дальше. Но время показало, что у разработчиков есть вопросы — что такое санитарное тестирование? И что такое дымовое тестирование? Чем санитарное тестирование отличается от дывомого? А разве для санитарного тестирования не нужны спецификации, которых нет? «Разве мы должны проводить санитарное тестирование, а не тестировщики? Зачем тогда тестировщики?».

В поисках ответа на вопросы прошелся по стандартам и литературе в области разработки программ и немного удивился. Стандарты и литература в большинстве случаев не касаются ни сантирного, ни дымового тестирования. Внести ясность помогли Рекс Блэк, Роман Савин, Артур Коробейник и словари 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):

  1. тест приемки (smoke test, sanity test или confidence test);
  2. тестирование новых функциональностей (new feature testing);
  3. регрессивное тестирование (regression testing);
  4. тест сдачи (acceptance or certification test);
  5. После передачи пользователю — бета-тестирование (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", "санит", "прием", "дымов":

  1. IEEE 610.12-1990 IEEE Standard Glossary of Software Engineering Technology
  2. IEEE-829-2008 IEEE Standard for Software and System Test Documentation
  3. IEEE Std 1008-1987 IEEE Standard for Software Unit Testing
  4. «Основы программной инженерии (по SWEBOK). Программная инженерия» на базе IEEE Guide to SWEBOK® 2004, Сергей Орлик
  5. The Software Engineering Body of Knowledge (SWEBOK) is an international standard ISO/IEC TR 19759:2005
  6. The Software Engineering Body of Knowledge (SWEBOK) is an international standard ISO/IEC TR 19759:2015
  7. BS 7925-1
  8. DO-178B 1992. Software Considerations in Airborne Systems and Equipment Certification, Requirements and Technical Concepts for Aviation
  9. ГОСТ Р ИСО/МЭК 9126-93, Информационная технология. Оценка программной продукции. Характеристика качества и руководства по их применению
  10. "Основы инженерии качества программных систем», Филипп Андон, Галина Коваль, Татьяна Коротун, Екатерина Лаврищева, В. Суслов. Академпериодика, 2007
  11. «Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений», Сэм Канер, Джек Фолк и Енг Кек Нгуен, Москва, ДиаСофт, 2001
  12. «Быстрое тестирование», Роберт Калбертсон, Крис Браун, Гэри Кобб. Издательский дом «Вильямс», 2002
  13. «Быстрое тестирование», Роберт Калбертсон, Крис Браун, Гэри Кобб. Издательский дом «Вильямс», 2002.
  14. «Верификация программного обеспечения», С.В. Синицын, Н.Ю. Налютин. МИФИ, Курс лекций, 2006
  15. «Основы тестирования программного обеспечения, разработанного на C#. Учебное пособие», Всеволод Котляров и Татьяна Коликова, 2004

По указателю в конце книги по теме санитарного тестирования не обнаружено информации в:

  1. "Тестирование черного ящика. Технологии функционального тестирования программного обеспечения систем», Бейзер Б. СПб: Питер, 2004

31.08.2017

results for ""

    No results matching ""