К основному контенту

Про "моргающие" тесты: GTAC 2016 - How Flaky Tests in Continuous Integration (Gmail)

Тесты "моргают" и в Гугле. Интересный доклад. Радует, что у нас используются похожие методы определения и борьбы с "моргунчиками", хотя сравнение объемов и масштабов может вызвать лишь сочувственную, по отношению к нам, улыбку.



"Моргающие" тесты - неизбежность (1.5% от запусков)
Интересная дока из доклада https://pdfs.semanticscholar.org/02da/46889ee3c6bc44bfa0fc45071195781b99ce.pdf


На каждое изменение запускается 3.5М тестов. Все результаты в базу и там уже хранятся данные за 2 года.


Не позднее, чем через 2 (хотя иногда 3) часа разработчик узнает о том как прошли тесты по его изменению

Каждый фейл анализируется с предыдущим по целому ряду параметров (все берется из базы результатов), чтобы понять действительно ли это "моргание" в том же самом месте или что то новое.

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

Результаты анализов планируется использовать для быстрого определения "моргающего" теста, в т.ч. без его перезапуска

Наблюдения:

  • Чем чаще тест переключается из "зеленого" в "красный", тем с большей уверенностью мы можем считать его "моргающим" (разработчик не может так часто ломать код)
  • Если у тестов совпадает история, то скорее всего причина не в "моргании", а в поломанном коде.

Анализ по корреляции изменений в исходниках:

Корреляция "поломок" по авторству изменений исходников (чем выше процент, тем меньше шансов, что тест отвалился из-за "моргания")


Чем больше людей меняет файл, тем меньше шансов на то, что fail был из-за "моргания".

В конце 15 минут интересных вопросов-ответов.

PS если кому то интересно, то они ищут еще желающих проанализировать их данные.
PS2 остальные доклады на сайте конфы и в плейлисте.
PS3 рекомендую эти "Using Test Run Automation Statistics to Predict Which Tests to Run" и "Need for Speed - Accelerate Automation Tests From 3 Hours to 3 Minutes"

Комментарии

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub.

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

Проверять работоспособность тестируемого объекта (system uder test - SUT) можно двумя способами: оценивая состояние объекта или его поведение.

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

Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT.

Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы.

Теперь подробнее.

Gerard Meszaros использует термин Test Double (дублер), как обозначение для объекта, который зам…

План "Б" или как прикольно провести субботний день

Всем привет.
Вчера состоялась конференция "План Б". Организаторами выступили ребята из Яндекса, за что им большое спасибо. Судя по приблизительным подсчетам в мероприятии участвовало около 200 человек.

Основной темой конференции было планирование, планирование всего: проектов, разработки, тестирования, дизайнеров и даже организации музыкального фестиваля.
Сначала думал написать отчет в обычном своем стиле: кто и что говорил, но почитав твиттер по #pbconf понял, что просто потеряю время :) Поэтому кому оооочень интересно узнать подробности следуйте за птичкой и вы все узнаете (тэг #pbconf попал в top-30 твиттера)
Здесь приведу лишь те вещи, которые мне запали в мозг
Роман Чернин о продуктовой разработке: "нет заказчика, нет требований, нет сроков -> как принимать решения? ответ: заводим себе Product Manager-а"
Оля Павлова (@op): "бойтесь иллюзии точной формулировки" "заказчик - ребенок, выдаем ему игрушку как можно чаще" "не забываем, …

Полезные ресурсы для молодых (и не только) тестировщиков

Уже 3 месяца провожу собеседования тестировщиков.
Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем то экзотическим и забавным.

Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.