Что пишут в блогах

Подписаться

Что пишут в блогах (EN)

Разделы портала

Онлайн-тренинги

.
Тестирование как искусство
24.07.2025 00:00

Автор: Лидия Барканова (Lidia Barkanova)
Оригинал статьи
Перевод: Ольга Алифанова

Креативность в изобразительном искусстве и тестировании

Сколько себя помню, меня всегда интересовало изобразительное искусство. Особенно я любила рисовать, используя разные материалы — от угля до масла. Я умоляла маму записать меня в художественную школу, но этого не случилось… по крайней мере, пока я была ребенком. Вместо этого я стала IT-специалистом, и сейчас работаю инженером по качеству. Ни капли не жалею! Однако моя любовь к изящным искусствам не угасала — и в прошлом году я наконец записалась на уроки рисования.

К моему удивлению, я заметила много общего между рисованием, живописью и тестированием программного обеспечения. Ни у художников, ни у тестировщиков нет жестких требований к выполнению работы. Вместо этого они много экспериментируют, разбираясь, как достичь оптимального результата. От созерцания чистого листа перед собой до представления своего труда миру — мы стремимся создать отличный продукт.

Борьба с чистым листом: создание стратегии

Художники никогда не начинают сразу рисовать объекты на чистом холсте. Сначала они делают «подмалевок» — базовый слой цвета, который помогает определить контраст и оттенки. Это придает работе глубину и объем. Также подмалевок может служить контуром для будущего расположения цвета и композиции.

Для тестировщиков «подмалевком» является тест-стратегия — набор идей, который направляет проектирование тестов. Тест-стратегия может включать в себя:

  • Дорожную карту: предполагаемые сроки реализации, включая внутренние и публичные релизы, а также объем реализуемого.
  • Особенности проекта: команды разработки (включая зависимые команды), функциональные спецификации, прототипы и руководства по дизайну, лица, ответственные за предоставление сценариев использования, ссылки для отслеживания разработки и дефектов, элементы продукта (разделы, функции)
  • План коммуникации: каналы связи (например, Slack), регулярные синхронизации (обсуждение текущего состояния продукта, нерешенных вопросов, состояния тестирования)
  • Обзор продукта: область продукта, подлежащая тестированию
  • Критерии качества: согласованные с заинтересованными сторонами цели по согласованности данных, удобству использования, производительности и т.д.
  • Оценка рисков: критические пути, риски продукта и процессов, планы по их снижению
  • Тестовые данные и инструменты: окружение для тестирования, доступ к продукту (конкретный URL или фича-флаг для включения), список тестовых аккаунтов с особенностями, различные инструменты (тестовые сценарии, автоматические тесты, API коллекции и т.д.)
  • Задачи тестирования: виды тестирования, которые будут выполняться, например, автоматизированные API-тесты или исследовательское тестирование, с указанием чартеров (для более подробной информации о чартерах можно обратиться к книге Elisabeth Hendrickson «ExploreIt!»)

Содержание стратегии будет варьироваться в зависимости от контекста. Приведённый выше пример — это формат, который хорошо зарекомендовал себя в моей команде с течением времени. Спасибо Ирье Штраус за его составление.

И подмалевок, и тест-стратегия помогают нам визуализировать желаемый результат, увидеть в целом, что нужно сделать и как.

Время реализации: добавляем слои и сохраняем фокус

Выбор инструментов

Когда общий план ясен, а идеи хорошо сформированы, пора приступать к реализации. Так же, как художник смешивает краски и использует разные кисти, тестировщики готовят и используют свои инструменты.

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

Проектирование тестов и управление тестированием:

  • Майнд-карты и другие инструменты для разработки тест-стратегий
  • Артефакты с тестовыми данными — таблицы, генераторы, инструменты анонимизации
  • Инструменты визуализации для выявления рисков и зависимостей
  • Инструменты сбора и обмена информацией о продукте — например, Confluence с гайдами и документацией

Взаимодействие с продуктом:

  • DevTools в браузерах
  • Автоматизированные тесты
  • Инструменты CI/CD (непрерывная интеграция и доставка)
  • Имитаторы и заглушки для симуляции состояний и поведения
  • Инструменты для тестирования API
  • Инструменты для нефункционального тестирования (нагрузка, безопасность и др.)
  • Обработчики событий.

Отчётность:

  • Запись экрана
  • Инструменты для отчётов
  • Инструменты для измерения тестового покрытия.

Этот список не исчерпывающий, но он даёт хорошее представление о том, что я использую в ежедневной работе.

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


GIF, показывающий создание натюрморта слой за слоем

Работа с холстом в целом

С точки зрения тестирования вы можете добавлять слои, варьируя сложность ваших тестовых чартеров. Логично начать с тестирования системы в целом — решает ли продукт или функция ту задачу пользователя, которую мы хотим решить? Работает ли «счастливый путь»? Это может показаться очевидным, но легко попасть в ловушку, углубляясь в несущественные детали (фокусируясь на тестировании компонентов или проверяя, что UI идеален до пикселя), и не проверяя критический путь.

Приведу пример. Мы однажды планировали выпустить новую функцию с поддержкой переменных внутри текста сообщения для персонализации. Другими словами, теперь можно было написать что-то вроде «Привет, {firstName}!», и появлялось имя пользователя. Готовя тестовую стратегию, я выявила возможные риски. Одна часть системы, включающая сложную обработку, показалась мне вероятным источником проблем. Когда функция была готова к тестированию, я сначала проверила эту часть и нашла баг. Как я была горда! Мои приготовления оправдались, мое предчувствие подтвердилось, знания системы и опыт тестирования окупились. Я продолжила изучать эту часть системы и обнаружила ещё несколько проблем. Однако самая важная часть осталась непротестированной — я не проверила, работает ли основная функция новой возможности, отправка сообщения!

С тех пор я всегда начинаю тестирование с проверки главного сценария - и только после этого проверяю, что система остаётся совместимой с предыдущими версиями, что интеграция между разными частями работает, что компоненты реализованы согласно дизайну и корректно обрабатывают данные, и многое другое…

Вы также можете рассматривать разные уровни тестирования — приёмочное, системное, интеграционное и юнит — как слои, переходя от высокоуровневой валидации к более тонким моментам.

Завершённая картина: когда нужно отложить кисть

В живописи И в тестировании важно знать, когда остановиться.

 

Изображение натюрморта. В центре — фиолетовая футболка. Под ним — два цилиндрических сосуда, раскрашенных в синий и фиолетовый цвета. Фон — зелёная драпированная ткань, на которой стоят объекты.

Помните Мону Лизу? Леонардо да Винчи работал над ней почти семнадцать лет до самой смерти и так и не назвал картину совершенной и законченной.

Художники могут трудиться над одной картиной десятилетиями, а тестировщики — бесконечно долго корпеть над одной версией продукта. Чем внимательнее вы рассматриваете реализацию, тем больше у вас может возникать вопросов и сомнений. Кажется, всегда можно задать ещё один вопрос. Но если вам сложно остановиться, возможно, вы сосредоточены на одном маленьком аспекте продукта и забываете о системе в целом.

Секрет тут прост — сделайте шаг назад и сделайте паузу. Это даст вам возможность взглянуть на систему по-новому. Спросите себя: «Достиг ли я того, к чему стремился?»

На службе у других: делимся своим произведением искусства

Каждое произведение искусства имеет свою цель. Никто не тратит время на создание чего-то просто чтобы потом положить результат в ящик и забыть о нём. Мы хотим показать своё мастерство. За каждым творением или продуктом стоит идея, которую мы хотим поделиться с миром.

Высшая цель искусства — это самовыражение и коммуникация, это также эксперимент и новаторство, исследование существующего состояния и его запечатление, чтобы остановить его и показать другим. Тот же принцип применим и к тестированию. Мы проводим эксперименты, чтобы изучить продукт И чтобы поделиться результатами с заинтересованными сторонами.


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

Когда вы смотрите на произведение искусства в галерее, иногда трудно понять смысл всех символов на полотне. Но часто интерпретации и художественная критика часто помогают перевести на общедоступный язык мысли и идеи, вложенные создателем в произведение.

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

Обсудить в форуме