Замкнутое регрессионное тестирование ПО V2V с воспроизведением полевых трасс

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

Подключение корпуса трасс к каждому pull request

Каждое предлагаемое изменение в прикладном уровне V2V запускает задачу CI, которая воспроизводит отобранное подмножество из 400 наиболее ценных трасс — охватывающих городские каньоны, слияния на автомагистралях и плотные встречи на перекрестках — на кандидатной сборке, блокируя слияние, если точность или полнота относительно размеченных эталонных данных падают ниже базового уровня предыдущего релиза.

Разбор регрессии: от неудачной трассы до коммита с установленной первопричиной

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

Исследовать портфель доменов