Тестирование – это искусство

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

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

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

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

Стоя возле чистого холста: создание стратегии

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

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

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

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

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

Имплементация: добавление слоев и сохранение фокуса

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

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

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

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

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

Натюрморт, слой за слоем

Работа с холстом

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

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

С тех пор я всегда начинаю тестирование с проверки основного сценария. И только после этого я проверяю, что система обратно совместима, что части приложения интегрированы, что компоненты реализованы в соответствии с проектом и обрабатывают данные так, как должны, и так далее.

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

Готовая картина: когда отложить кисть

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

Картина готова?

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

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

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

Делитесь своими работами

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

На мольберте

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

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

Источник


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас