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

Про "моргающие" тесты: 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): "бойтесь иллюзии точной формулировки" "заказчик - ребенок, выдаем ему игрушку как можно ча

Переключите тумблер или умные люди дурного не посоветуют

Навеяно интересными вопросами про TDD после  вчерашнего выступления . Uncle Bob : " Flipping the Bit " Подробнее постараюсь перевести чуть позже, пока только это: Как определить, что у коллеги (или у вас) ТУМБЛЕР переключен?  Если ваши ответы на вопросы ниже совпадают с приведенными - то все хорошо :) Мантра: Сможете ли вы выполнить работу быстрее используя TDD? ДА Существуют ли какие-либо задачи, которые вы можете выполнить быстрее без TDD? НЕТ Я понимаю, что TDD может помочь в долгом проекте, а что если у вас короткая задача? Будете использовать TDD? Да, потому что TDD быстрее даже в короткой перспективе Что если времени реально не хватает, и босс стоит над душой, будете ли вы использовать TDD? ДА В любом случае? ДА Есть ли случаи, когда вам не нужно использовать TDD? НЕТ Представьте себе что вы на звездном корабле Enterprise ( Star track ) и осталась всего секунда до взрыва антиматерии. Все что вам нужно, чтобы избежать этого, поменять один IF. Будете ли вы и