[Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений] Нестабильные(Flaky) тесты — одна из основных проблем автоматизированного тестирования (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Умение разбираться с нестабильными тестами критически важно в тестировании, потому что автотесты с плавающими результатами замедляют скорость всей разработки.Если вы не сталкивались с нестабильными тестами, обязательно прочтите эту статью, поскольку в ней делается попытка систематизировать причины возникновения нестабильности в тестах. Если вы сталкивались с нестабильными тестами, посмотрите сколько из них попадает в перечисленные области.Данная статья призвана рассказать как бороться с каждой из причин.За прошедшие годы я не раз сталкивался с нестабильными тестами, но вместо того чтобы рассматривать конкретные случаи, давайте попробуем сгруппировать причины возникновения нестабильности по задействованным при выполнении автотестов компонентам:
- Сами тесты;
- Фреймворк для запуска тестов;
- Сервисы и библиотеки, от которых зависит тестируемая система и тестовый фреймворк;
- Операционная система и устройство с которым взаимодействует фреймворк автотестирования.
На рисунке 1 показан стек оборудования / программного обеспечения, который поддерживает тестируемое приложение или систему. На самом низком уровне находится оборудование. Следующий уровень - это операционная система, за которой следуют библиотеки, обеспечивающие интерфейс с системой. На самом высоком уровне находится промежуточное программное обеспечение, уровень, который предоставляет интерфейсы для конкретных приложений.
Однако в распределенной системе каждая служба приложения и службы, от которых она зависит, могут находиться в другом аппаратном / программном стеке, как и служба, выполняющая тест. Это проиллюстрировано на рисунке 2 как полная среда выполнения теста
Как обсуждалось выше, каждый из этих компонентов является потенциальной областью нестабильных тестовСами тестыСами тесты могут вызвать нестабильность. Типичные причины:
- Неправильная инциализация или очистка;
- Неправильно подобранные тестовые данные;
- Неправильное предположение о состоянии системы. Примером может служить системное время;
- Зависимость от асинхроных действий;
- Зависимость от порядка запуска тестов.
Фреймворк для запуска тестовНенадежный фреймворк для запуска тестов может привести к нестабильности. Типичные причины:
- Неспособность выделить достаточно ресурсов для тестируемой системы, что приводит к ее сбою;
- Неправильное планирование тестов, поэтому они "противоречат" и приводят к сбою друг друга;
- Недостаточно системных ресурсов для выполнения требований тестирования.
Сервисы и библиотеки, от которых зависит тестируемая система и тестовый фреймворкПриложение (или тестируемая система) может быть источником нестабильностиПриложение также может иметь множество зависимостей от других служб, и каждая из этих служб может иметь свои собственные зависимости.В этой цепочки каждый сервис может послужить причиной возникновения нестабильных тестов.Типичные причины:
- Состояние гонки;
- Непроинициализированные переменные;
- Медленный ответ или отсутствие ответа при запросе от теста;
- Утечки памяти;
- Избыточная подписка на ресурсы;
- Изменения в приложении и в тестах происходят с разной скоростью.
Среды тестирования называются герметичными, если они содержат всё, что необходимо для запуска тестов (т.е. нет внешних зависимостей, таких как серверы, работающие в прод окружении).Герметичная среда менее подвержена нестабильности.Операционная система и устройство с которым взаимодействует фреймворк автотестированияНаконец, оборудование и операционная система могут быть источником нестабильности тестов. Типичные причины включают:
- Сбои или нестабильность сети;
- Дисковые ошибки;
- Ресурсы, потребляемые другими задачами / службами, не связанными с выполняемыми тестами.
Как видно из большого разнообразия сбоев, снижение нестабильности при автоматизированном тестировании может быть довольно сложной задачей. В этой статье описаны области и типы нестабильности, которые могут возникать в этих областях, поэтому она может служить шпаргалкой при локализации причины нестабильных тестов.В следующих статьях мы рассмотрим способы решения этих проблем.Ссылки на источники
- Откуда берутся нестабильные тесты? (оригинал/ перевод статьи на хабре)
- Нестабильные тесты в Google и как мы их исправляем (оригинал)
- Мои тесты на Selenium не стабильны! (оригинал)
- Избегайте нестабильных тестов (оригинал)
===========
Источник:
habr.com
===========
===========
Автор оригинала: George Pirocanac
===========Похожие новости:
- [Тестирование IT-систем, PHP, Программирование] Практики при работе с PHPUnit
- [PHP] Не мокайте то, чем вы не владеете (перевод)
- [Тестирование игр, Разработка под Windows] Тулзы ручного тестировщика приложений на базе Windows
- [Тестирование IT-систем, Машинное обучение, Читальный зал, Робототехника] Лучшие экспериментальные протоколы для исследования реального мира (перевод)
- [Высокая производительность, Тестирование IT-систем, Анализ и проектирование систем, Разработка на Raspberry Pi] История про Гену, Чебурашку и тестирование производительности реактивного приложения, работающего на Raspberry Pi
- [Облачные вычисления, Node.JS, Amazon Web Services, Тестирование мобильных приложений, Serverless] CloudWatch и Lambda, или Как я перестал бояться и полюбил AWS
- [Тестирование IT-систем, Go, Тестирование веб-сервисов] Подсказки по написанию тестов в приложениях на Go
- [PHP, Тестирование веб-сервисов] Так как же не страдать от функциональных тестов?
- [Разработка мобильных приложений, Разработка под e-commerce, Карьера в IT-индустрии, IT-компании] «Кадровый голод» или почему IT-компании находятся в постоянном поиске сотрудников
- [Системное администрирование, PowerShell, Лайфхаки для гиков] Автоматизируем ведение большого количества пользователей в AD
Теги для поиска: #_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 (
Тестирование мобильных приложений
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:59
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Умение разбираться с нестабильными тестами критически важно в тестировании, потому что автотесты с плавающими результатами замедляют скорость всей разработки.Если вы не сталкивались с нестабильными тестами, обязательно прочтите эту статью, поскольку в ней делается попытка систематизировать причины возникновения нестабильности в тестах. Если вы сталкивались с нестабильными тестами, посмотрите сколько из них попадает в перечисленные области.Данная статья призвана рассказать как бороться с каждой из причин.За прошедшие годы я не раз сталкивался с нестабильными тестами, но вместо того чтобы рассматривать конкретные случаи, давайте попробуем сгруппировать причины возникновения нестабильности по задействованным при выполнении автотестов компонентам:
Однако в распределенной системе каждая служба приложения и службы, от которых она зависит, могут находиться в другом аппаратном / программном стеке, как и служба, выполняющая тест. Это проиллюстрировано на рисунке 2 как полная среда выполнения теста Как обсуждалось выше, каждый из этих компонентов является потенциальной областью нестабильных тестовСами тестыСами тесты могут вызвать нестабильность. Типичные причины:
=========== Источник: habr.com =========== =========== Автор оригинала: George Pirocanac ===========Похожие новости:
Блог компании Vivid Money ), #_testirovanie_itsistem ( Тестирование IT-систем ), #_testirovanie_vebservisov ( Тестирование веб-сервисов ), #_testirovanie_mobilnyh_prilozhenij ( Тестирование мобильных приложений ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:59
Часовой пояс: UTC + 5