Байка-18. Периодическая система видов тестирования программного обеспечения.

Очередное чаепитие, очередное подтрунивание друг над другом, очередная  постановка мозгов.
Шляпник предложил:
– А давайте попробуем масалу по рецепту чайной «Дом белого журавля»?
– Что за чайная? – заинтересовался Заяц
– Шикарнейшее место с потрясающей атмосферой. Как раз для наших посиделок.
– А что такое масала?
– Чай на молоке с индийскими специями и имбирем.
– О! А мне как раз прислали высокогорный шен-пуэр, – как обычно внезапно появился Кот и принялся колдовать над огромным чайником. – А в «Дом белого Журавля» обязательно сходим.
Вошла Соня и прямиком направилась к Оруженосцу. Открыла рюкзак и выложила перед ним потертую книгу в твердом переплете.
– «Поиск решения», за авторством Балк, от 1983 года, – задумчиво протянул Армигер. Полистав книгу, спросил: – это ж математика?
– Отличная книга для тестировщика, – ответила Соня, – очень хорошо прочищает мозг и учит думать. И дает богатейшую пищу для проектирования тестов. Например, тест на симметричность – великолепная  техника проектирования простых в исполнении тестов. Что характерно, не описана ни в одной книге по тестированию. Но книжка сложна. Действительно сложна. Проглотить ее залпом не получится.
– Окей, посмотрю, – и Оруженосец снова склонился над какой-то распечаткой.
– Что у тебя? – заинтересовалась Соня. – Опять глоссарий ISTQB?
– Типа того. – И Армигер забубнил дальше: – Ad-hoc тестирование, это тестирование…
– Сейчас ты напоминаешь древнеегипетского жреца, – заметил Заяц.
– Это почему?
– Потому что они занимались поиском и описанием всех прямоугольных треугольников, у которых длины сторон были целочисленными. Ну там 3-4-5, 5-12-13 и т.д.
– 1023-64-1025, – буркнул Безумный Шляпник.
– Зачем?! – С мукой в голосе спросил Армигер.
– Теоремы Пифагора не знали, – хладнокровно отрезал Заяц и добавил: – знание нескольких принципов заменяет знание огромной горы информационного мусора в виде фактов.
– Так, парень, давай-ка решим этот вопрос раз и навсегда, а то ты себе голову сломаешь, – вмешался Шляпник, – и превратишься в инженера типа тех студентов, которых описал Фейнман в своих мемуарах. Которые знали массу фактов, но совершенно не умели применять их на практике.
– Но сначала выпьем чаю. – Чеширский Кот вознес на стол поднос с чайником, чашками и блюдечками с сухофруктами и орехами.
– Божественно! Браво мастеру! – сделав глоток, воскликнул Шляпник, – пятилетняя ферментация?
– Ну когда же вы научитесь разбираться в чае? Пятнадцать лет, коллеги.
Соня уважительно посмотрела на миниатюрную чашечку чая, содержимое которой стоило как хороший коньяк. Или больше.
– Может, стоило приберечь для особого дня?
– Каждый день может быть особенным, если этого захотеть. И что-то мне подсказывает, что сегодня именно такой день.
– Хорошо, поехали. Какие классификации видов тестирования ПО ты знаешь?
– ISTQB.
– Еще?
– Ну, Фаулер приводил классификацию. Но она какая-то небольшая.
– Ага. Функциональное, юнит, тестирование производительности, автоматизированное и что-то там еще. Как будто тестирование производительности не может быть ручным или автоматизированным. – Заяц скривился.
– Гораздо интереснее классификация, созданная в фирме «Рейшенал» в 90-х, – продолжил Чеширский.
– К сожалению, потом пришел аджайл, и классификации принялись создавать снова, – заметила вошедшая в кухню Королева. – Теперь у нас множество поименованных видов тестирования программного обеспечения, без всякой системы. Тебе нужно научиться нормальной, современной классификации. Чтобы ты мог разбирать или собирать виды тестирования.
– Как разбирают и собирают мотор в автосервисе, – добавил Чеширский.
– А как?
– Начнем с того, что классификация должна быть фасетной. Ты же знаешь, что такое фасетная классификация?
– Ну, не очень…
– Синичка? – задал вопрос Заяц.
Синичка испуганно посмотрела по сторонам.
– Нет, не знаю.
– Если грубо – это многокритериальная классификация. Впервые была предложена… дайте памяти… для книг. Теперь это можно увидеть, например, в яндекс-маркете.  У телевизора есть отдельно фасет разрешение и отдельно диагональ. И отдельно вес, потребляемая мощность и так далее.
– Но это не полное произведение. Не для всех разрешений есть все диагонали. И не все производители выпускают телевизоры со всеми разрешениями. Полной ортогональной матрицы нет. Большая часть этого многомерного произведения пуста.
Возникла пауза. Маленькие чашечки с чаем были осушены и наполнены вновь.
– Хорошо, и какие фасеты есть у тестирования?
– Первый и главный – критерий качества, который ты подвергаешь проверке. И еще. Перестань употреблять слово «тестирование». Под этим многие понимают прогон программы. Но для поиска ошибок гонять программу вовсе не обязательно. Перестань на время употреблять это слово. Давай назовем это процессом поиска ошибок в программном обеспечении.
– И, что характерно, целью процесса поиска ошибок является составление реестра описаний ошибок! В отличие от процесса подготовки отчета о качестве ПО, – заявил Заяц.
– Вернемся к критериям качества. Здесь тебе в помощь ГОСТ 25010 от 2015 года.
– ГОСТ?! – воскликнула Синичка.
– И что? Ну ГОСТ. Отличная штука. Ими вполне можно пользоваться. Если умеешь.
– 25010 – это в первую очередь классификатор атрибутов качества ПО. Которые надо проверить на соответствие ожиданиям заинтересованных лиц. Если грубо, то это: функциональная полнота, модифицируемость, защищенность, юзабилити. Условно – это группы. А атрибутов там сильно, сильно больше. Если за полгода разберешься – будет неплохо.
– А следующий фасет – это важность, – предположил Оруженосец.
– Нет, – мягко сказала Королева, – важность – это управленческий атрибут. Не описательный. Ты описываешь виды проверок ПО. Но ведь в каждом проекте они будут иметь разную важность, правда?
– Пожалуй…
– Значит, в описание видов тестирования «важность» входить не должна. Вот так. Всегда разделяй описание и управление.
– Помню, помню. Иначе получатся уродцы.
– Поехали дальше, – Заяц закусил фразу орешком и запил чаем.
– По уровню знания системы. Черный, белый, серый ящик, – вклинилась Синичка.
– Для начала пойдет, – согласился Заяц.
– По времени тестирования. Альфа, бета…
– Не-а. Это, скорее, на каком стенде проводят тестирование.
– А разве тестирование проводят не на стенде тестирования? – удивился Додо.
– Увы, мой друг, – улыбнулся Кот. – Тестирование проводят на разных стендах. На песочницах разработчиков, на стендах технических писателей, на стенде непрерывной интеграции, на промышленном стенде, на…
– На промышленном стенде?! – на лице Синички был ужас.
– Ну да, – ответила Королева, – совершенно стандартный способ тестирования. На промышленных стендах тестируют юзабилити, производительность,…
– Производительность?! – поперхнулся чаем Додо.
– Обычная практика хороших компаний. Так делает Яндекс, Баду, – проворчал Заяц, – а ты не знал?
– Как?
– Да обычно. Делают сплит и потихоньку увеличивают процент пользователей. И смотрят, что с серверами творится. Об этом же еще Тимур Хайрулин говорил.
– Мой мир перевернулся, – потрясенно сказал Додо.
– Сейчас он перевернется еще больше. Давай-ка возьмем паузу и еще чайку дернем. А лучше закусим курагой и черносливом.
После очередной паузы Чеширский произнес:
– Похоже «Альфа» и «Бета» – это поименованные группы видов тестирования, включающие в себя очень много видов тестирования. Или видов поиска ошибок, что вернее.
– А классификация в википедии?
– А что там? Мы же должны выдвигать новые гипотезы. Если вы ученый, то должны признавать, что будете ошибаться в большинстве случаев. И признавать свои ошибки. И только в этом случае вы хороший исследователь.
– Хорошо, стенды. Дальше, видимо, кто тестирует?
– Ох, если бы все было так просто…  Кто тестирует в A /B тестировании?
– Пользователь.
– А кто пишет ошибки?
– Тестировщи… Или аналитик.
– Или спец по проектированию интерфейсов. И мы получаем несколько фасетов. Тесты могут анализировать куча специальностей, тесты могут гонять – куча видов людей, тесты могут проектировать – куча сотрудников.
– Проектировать тесты? – Удивилась Синичка.
– Ну да. На прошлой работе тесты проектировали программисты для тестировщиков, – ответил Додо и сам удивился.
– А бывает, что тесты проектируют тестировщики, а потом их вручную гоняют программисты. Видел.
– Ну вы еще скажете, что проектируют тестовое покрытие пользователи, автоматизацию делают тестировщики, гоняют тесты программисты, а анализируют менеджеры проекта? И все это, например, по атрибутам безопасности? Да ну?
– А что, новый вид тестирования. Пока не имеет наименования. Давай, публикуй, Додо. Новый вид тестирования. Без шуток. Так и назовем этот вид тестирования: «Додо».
– А остальные фасеты в следующий раз, – сказал сидящий до этого в углу Время. – Их еще много. За одно чаепитие не расскажешь.

Один комментарий

  1. Sh1kar1 написал:

    Отличная статья, супер. Настроение поднялось.
    Настроения стало еще выше когда я попробовал зайти на ВП под своими данными через кнопку восстановить пароль (вечно их забываю)
    и увидел такую “каку” https://www.dropbox.com/s/j190krgsfuo6fgt/%D0%92%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_037.png?dl=0

Оставьте комментарий

Вы должны войти, чтобы оставить свой комментарий.