Причины проблем с автотестами: локаторы, рассинхронизация, тестовые данные, окружение

«Опросив в рамках своего подкаста более 500 тестировщиков, я выделил четыре наиболее часто упоминаемые причины проблем в автоматизации. Эти причины релевантны всегда, независимо от языка и фреймворка.

Локаторы

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

Настоятельно рекомендую стандартизировать идентификацию объектов, используя более надежные атрибуты, такие как ID и другие неизменные. Имея надежную стратегию локаторов — повышается надежность и эффективность автотестов, что обеспечивает более надежные и точные результаты.

Geetha Achutuni рассказывала, что успешной стратегией ее команды стало добавление уникальных атрибутов к элементам страницы. Это упрощает поиск элементов и значительно увеличивает надежность.

Помимо использования уникальных атрибутов, она предлагает еще два способа совершенствования стратегии локаторов:

1. Отдавайте предпочтение стандартным локаторам, таким как ID, name, CSS selector. Они как правило более надежны, чем XPath.

2. Воздержитесь от использования link text в качестве локатора. Поскольку текст ссылки может изменяться, что может привести к многочисленным ошибкам. Вместо этого используйте href-атрибут.

Синхронизация

Вторым по важности условием хорошего автотеста является правильная синхронизация.

Алан Ричардсон ака Злой Тестировщик выделил четыре основополагающих действия, которые должны быть в каждом потоке автоматизации:

  1. Навигация. Процесс перемещения по приложению.
  2. Опрос. Получение информации со страницы.
  3. Манипулирование. Действия, такие как щелчок мышью или внедрение JavaScript.
  4. Синхронизация. Ожидание определенных событий.

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

Несколько гостей моей передачи перечислили методы синхронизации, используемые в инструментах автоматизации:

  • Проверка наличия элемента.
  • Подтверждение отсутствия элемента.
  • Ожидание появления элемента.
  • Ожидание исчезновения элемента.

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

Это позволяет обойтись без печально известной команды ‘sleep’, которую следует использовать в исключительно редких случаях.

Тестовые данные

Эффективность тестов зависит от качества тестовых данных. Тестовые данные — это краеугольный камень процесса. Без них ваши тесты будут «висеть в пустоте».

В своей книге «Великолепная автоматизация» [прим.: эту книгу Колантонио можно скачать в нашей Библиотеке QA, на английском] я подчеркиваю важность стратегии работы с тестовыми данными. Тестовые данные, состоящие из входных значений или условий, должны быть разнообразными и исчерпывающими, чтобы гарантировать всестороннее тестовое покрытие.

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

В одном из выпусков моего подкаста Хью Прайс (Huw Price) высказался за проактивный подход к тестовым данным, подчеркнув, что они должны быть продуманы еще до начала разработки:

«Если понаблюдать за нашими наиболее успешными клиентами, то их команды начинают работу над данными с самого начала, выясняя у пользователей требования к тестовым данным. Затем вдумчиво формируют динамический набор данных для тестирования и разработки. Такой проактивный подход неоценим. Он вполне достижим с помощью существующих технологий, и требует лишь небольшого изменения подхода». ~Хью Прайс, управляющий директор компании Curiosity Software.

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

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

Кьяра Коломби в нашей беседе на тему «Генерация тестовых данных» подчеркнула, что:

«Не следует возлагать на разработчиков или тестировщиков бремя генерирования или анонимизации данных. Учитывая обширность и комплексность данных, неразумно ожидать от команд гарантированного обеспечения конфиденциальности и безопасности данных в тестовых окружениях. Стоит потратить время и деньги на приобретение специализированного инструмента. ~Кьяра Коломби — Эпизод 405».

Окружения

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

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

Техлиды должны реалистично подходить к тестовым окружениям. Окружения должны идеально моделировать use-кейсы, изолированные системы, отражающие условия на проде, а также поддерживать мониторинг вызовов функций и взаимодействие с тестовыми данными. Возможным выходом является применение специализированных внешних on-demand тестовых окружений.»


Источник. Это известный в мире QA Джо Колантонио, писатель книг и ведущий местами интересных подкастов, на которые желательно подписаться и слушать в фоне, если с английским ОК. Если не ОК — начать хотя бы с того что есть такой канал English for QA.


?Библиотека QA — собираем все книги там

Айти Собес — задачки на сообразительность

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

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

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

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

Мы в Telegram

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

? Популярное

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

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

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

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

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

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

live

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