Тест-дизайн представляет собой один из начальных этапов тестирования ПО, на котором происходит разработка плана проверки, тест-кейсов и других необходимых документов. Целью его проведения становится формализация процессов проверки программного обеспечения, благодаря чему удается добиться точности и повторяемости полученных результатов. Фактически, тест-дизайн выступает подготовкой к непосредственному тестированию, от успешности которой зависит эффективность всего мероприятия. Что делает ее крайне актуальной для разработки любого программного продукта. В статье даются подробные ответы на вопросы о том, что понимается под тест-дизайном, как он проводится и какие результаты позволяет получить, в чем его необходимость и т.д.
Тест-дизайн – что это такое
Требования к тестировщику
Тест-дизайн – что это такое
Тест-дизайном принято называть процесс планирования предстоящего тестирования ПО с помощью разработки необходимых техник, методов и регламентирующей документации. Именно комплект рабочих документов становится конечной целью тестировщика на этом этапе проверки. Актуальность тест-дизайна заключается в том, что документация для тестирования является уникальной и специально разрабатывается для каждого программного продукта. Пусть и базируется на общих принципах и схожих техниках проверки.
Грамотное проведение тест-дизайна предусматривает получение на выходе результата в виде трех основных составляющих:
- Комплектная спецификация. Представляет собой исчерпывающий набор документов, досконально регламентирующих процедуру проверки ПО.
- Оценка рисков и возможных проблем. Сводит к минимуму вероятность возникновения трудностей в процессе тестирования.
- Анализ предыдущих версий (при наличии). Помогает в разработке более эффективных тестов.
Типы тестирования
Перед тем как приступить непосредственно к описанию особенностей тест-дизайна, целесообразно уделить немного внимания более общей информации о типах тестирования. Их классификация ведется по множеству признаков. Чаще всего используются два.
С точки зрения предмета проверки принято выделять функциональное и нефункциональное тестирование. Первое отвечает на вопрос, что делает программный продукт, второе – как именно он это делает.
По времени проверки в части жизненного цикла ПО различают статическое и динамическое тестирование. Первое применяется в отношении программы, которая или создается, или уже близка к готовности, но не запущена в эксплуатацию. Позволяет избавиться от основных багов еще на начальных этапах программирования.
Второе адресовано программным продуктам на стадии практического использования. Делится на три подвида по уровню получения доступа к исходному коду. Условно объект ассоциируется с ящиком, а степень информирования тестировщика о нем – с прозрачностью:
- черный ящик (рядовой пользователь без доступа к устройству ПО);
- белый ящик (полная информированность о программном коде и механизмах работы продукта);
- серый ящик (промежуточный вариант, который совмещает плюсы обоих и одновременно минимизирует минусы).
Этапы тест-дизайна
Схему проведения тест-дизайна каждый тестировщик разрабатывает самостоятельно. С обязательным учетом специфики ПО, его функционального назначения и масштабов проекта. В общем случае речь идет о последовательной реализации нескольких этапов, включая:
- Изучение исходной документации и анализ требований к ПО, предъявляемых заказчиком (с разделением на функциональные и нефункциональные).
- Разработка стратегии тестирования и основных сценариев проверки программного продукта.
- Выбор оптимальных подходов, методов и видов тестирования.
- Составление комплекта рабочей документации (чек-листы, тест-кейс и т.д.)
- Проведение мероприятий по созданию подходящей тестовой среды в виде окружения, необходимого для получения объективных и точных результатов.
- Непосредственное тестирование ПО в соответствии с ранее разработанными регламентами.
- Анализ полученных результатов. Как с точки зрения оптимизации программного продукта, так и в плане улучшение дизайна типовой процедуры тестирования (если планируется использовать ее в дальнейшем в качестве базы).
Базовые техники
В настоящее время теория тестирования выделяет пять основных техник тест-дизайна. Каждую имеет смысл описать несколько подробнее:
- Эквивалентное разделение. Базируется на разбиении исходных данных для теста на несколько категорий по какому-либо признаку. Например, возрасту или социальному статусу. Далее проводится тестирование для каждой из полученных групп (причем для нескольких значений). Техника эффективна для многочисленной целевой аудитории, если ее удобно классифицировать.
- Анализ граничных значений. Исходные действия аналогичны описанным выше и заключаются в разделении целевой аудитории на группы. Но в этом случае тестирование направлено на проверку работы ПО для граничных значений. То есть расположенных на стыке отдельных категорий.
- Переход состояний. Техника строится на построении диаграммы с визуальным отображением текущего состояния ПО в разное время и на разных стадиях эксплуатации. Такой подход к тест-дизайну позволяет добиться высокой точности результатов даже для программ с большим числом и высокой сложностью настроек.
- Попарное тестирование. Оригинальная техника, которая удачно сочетает теоретическую сложность и простоту применения (при задействовании специальных автоматизированных инструментов). Базируется на создании уникальных пар тестовых данных с последующей проверкой каждой возможной комбинации.
- Прогнозирование ошибок. Техника основана на опыте и квалификации тестировщика, которые предполагает, где именно могут находиться баги в конкретном программном продукте.
Приведенный выше перечень не является полным и исчерпывающим. Важно помнить, что практически всегда профессиональный тест-дизайн предусматривает одновременное задействование сразу нескольких техник. Определение оптимального количества и сочетания позволяет добиться максимально точных и объективных результатов проверки.
Требования к тестировщику
Эффективная работа тестировщика на этапе тест-дизайна предусматривает наличие нескольких обязательных навыков и личностных качеств. В их число входят:
- Понимание методологии и принципов тестирования. Причем речь идет о разных типах и техниках проверки, включая функциональные и нефункциональные тесты, а также самые разные виды тестирования.
- Способности к аналитической работе. Несмотря на кажущуюся расплывчивость формулировки, именно грамотная аналитика лежит в основе тест-дизайна. Причем в данном случае она намного важнее, чем для любого отдельного вида тестирования.
- Профессиональные знания. Речь идет о понимании базовых принципов программирования (желательно – вместе с одним или несколькими распространенными языками) и работы с базами данных, умение применять на практике основные инструменты и сервисы проверки, другие навыки и умения, освоение которых осуществляется в рамках обучения на онлайн-курсе или любым другим способом (в том числе – на практике).
- Аккуратность и внимание к деталям. Профессиональная деятельность тестировщика (и прежде всего – в сфере тест-дизайна) предусматривает кропотливую работу, точность выполнения инструкций, тщательное следование правилам и т.д., и т.п. Без всего этого рассчитывать на построение успешной карьеры попросту не приходится.
- Склонность к творчеству и импровизации. Самым парадоксальным образом данный пункт списка соседствует с предыдущим. Что вполне логично, так как лучшими тестировщиками становятся специалисты, которым удается найти оптимальный баланс между исполнительностью и творческим началом.
- Умение и желание учиться. Завершающее требование к специалисту по тест-дизайну, примерно одинаковое для всего персонала IT-компаний. Его наличие объясняется быстрым совершенствованием информационных технологий в целом и методов программирования/тестирования в частности. Что делает необходимым постоянное получение новых знаний, количество которых неуклонно растет.
FAQ
Что понимается под тест-дизайном?
Это процесс разработки детальной процедуры тестирования для последующего применения на практике.
Чем тест-дизайн отличается от обычного тестирования?
Фактически, тест-дизайн представляет собой подготовку к тестированию, то есть работу по организации проверки ПО, но не проведение самой проверки.
Как стать квалифицированным и опытным тест-дизайнером?
Необходимые знания лучше, проще и быстрее всего получить посредством обучения на онлайн-курсах. Опыт формируется исключительно в процессе практической работы, которой стоит заняться при первой же возможности.
Вывод
- Тест-дизайн – разработка процедуры тестирования ПО с точки зрения документации, стратегии и плана проведения мероприятий.
- Результатом тест-дизайна становится: полноценный комплект документов (спецификация), оценка сложностей и рисков, анализ предыдущих версий ПО.
- Грамотный тест-дизайнер обеспечивает точность и объективность результатов тестирования, полученных в сжатые сроки и с минимальным уровнем затрат (как временных, так и финансовых).