[Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений] Нестабильные(Flaky) тесты — одна из основных проблем автоматизированного тестирования (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
26-Апр-2021 12:31

Умение разбираться с нестабильными тестами критически важно в тестировании, потому что автотесты с плавающими результатами замедляют скорость всей разработки.Если вы не сталкивались с нестабильными тестами, обязательно прочтите эту статью, поскольку в ней делается попытка систематизировать причины возникновения нестабильности в тестах. Если вы сталкивались с нестабильными тестами, посмотрите сколько из них попадает в перечисленные области.Данная статья призвана рассказать как бороться с каждой из причин.За прошедшие годы я не раз сталкивался с нестабильными тестами, но вместо того чтобы рассматривать конкретные случаи, давайте попробуем сгруппировать причины возникновения нестабильности по задействованным при выполнении автотестов компонентам:
  • Сами тесты;
  • Фреймворк для запуска тестов;
  • Сервисы и библиотеки, от которых зависит тестируемая система и тестовый фреймворк;
  • Операционная система и устройство с которым взаимодействует фреймворк автотестирования.
На рисунке 1 показан стек оборудования / программного обеспечения, который поддерживает тестируемое приложение или систему. На самом низком уровне находится оборудование. Следующий уровень - это операционная система, за которой следуют библиотеки, обеспечивающие интерфейс с системой. На самом высоком уровне находится промежуточное программное обеспечение, уровень, который предоставляет интерфейсы для конкретных приложений.
Однако в распределенной системе каждая служба приложения и службы, от которых она зависит, могут находиться в другом аппаратном / программном стеке, как и служба, выполняющая тест. Это проиллюстрировано на рисунке 2 как полная среда выполнения теста
Как обсуждалось выше, каждый из этих компонентов является потенциальной областью нестабильных тестовСами тестыСами тесты могут вызвать нестабильность. Типичные причины:
  • Неправильная инциализация или очистка;
  • Неправильно подобранные тестовые данные;
  • Неправильное предположение о состоянии системы. Примером может служить системное время;
  • Зависимость от асинхроных действий;
  • Зависимость от порядка запуска тестов.
Фреймворк для запуска тестовНенадежный фреймворк для запуска тестов может привести к нестабильности. Типичные причины:
  • Неспособность выделить достаточно ресурсов для тестируемой системы, что приводит к ее сбою;
  • Неправильное планирование тестов, поэтому они "противоречат" и приводят к сбою друг друга;
  • Недостаточно системных ресурсов для выполнения требований тестирования.
Сервисы и библиотеки, от которых зависит тестируемая система и тестовый фреймворкПриложение (или тестируемая система) может быть источником нестабильностиПриложение также может иметь множество зависимостей от других служб, и каждая из этих служб может иметь свои собственные зависимости.В этой цепочки каждый сервис может послужить причиной возникновения нестабильных тестов.Типичные причины:
  • Состояние гонки;
  • Непроинициализированные переменные;
  • Медленный ответ или отсутствие ответа при запросе от теста;
  • Утечки памяти;
  • Избыточная подписка на ресурсы;
  • Изменения в приложении и в тестах происходят с разной скоростью.
Среды тестирования называются герметичными, если они содержат всё, что необходимо для запуска тестов (т.е. нет внешних зависимостей, таких как серверы, работающие в прод окружении).Герметичная среда менее подвержена нестабильности.Операционная система и устройство с которым взаимодействует фреймворк автотестированияНаконец, оборудование и операционная система могут быть источником нестабильности тестов. Типичные причины включают:
  • Сбои или нестабильность сети;
  • Дисковые ошибки;
  • Ресурсы, потребляемые другими задачами / службами, не связанными с выполняемыми тестами.
Как видно из большого разнообразия сбоев, снижение нестабильности при автоматизированном тестировании может быть довольно сложной задачей. В этой статье описаны области и типы нестабильности, которые могут возникать в этих областях, поэтому она может служить шпаргалкой при локализации причины нестабильных тестов.В следующих статьях мы рассмотрим способы решения этих проблем.Ссылки на источники
===========
Источник:
habr.com
===========

===========
Автор оригинала: George Pirocanac
===========
Похожие новости: Теги для поиска: #_testirovanie_itsistem (Тестирование IT-систем), #_testirovanie_vebservisov (Тестирование веб-сервисов), #_testirovanie_mobilnyh_prilozhenij (Тестирование мобильных приложений), #_avtomatizatsija (автоматизация), #_testirovanie (тестирование), #_qa, #_automation, #_qa_automation, #_flaky_tests, #_flaky, #_blog_kompanii_vivid_money (
Блог компании Vivid Money
)
, #_testirovanie_itsistem (
Тестирование IT-систем
)
, #_testirovanie_vebservisov (
Тестирование веб-сервисов
)
, #_testirovanie_mobilnyh_prilozhenij (
Тестирование мобильных приложений
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 02-Июн 17:18
Часовой пояс: UTC + 5