Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018)

Материал из 0x1.tv

Докладчик
Игорь Власенко.jpg
Игорь Власенко

Система «Логовед» предназначена для разбора логов сборки и FTBS логов beehive и сбора статистики, автоматизации починки пакетов по информации из лога неудавшейся сборки, и автоматизации ряда других работ QA. На базе заложенных в него принципов разработано новое современное и универсальное решение, интегрированное с другими средствами автоматизации и предназначенное для решения широкого круга задач.

Видео

on youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018).pdf

Thesis

Система «Логовед» предназначена для автоматизации починки пакетов, разбора логов сборки и автоматизации работ по QA. Прототипом системы «Логовед» послужили скрипты разборки и обработки логов и починки пакетов для системы автоматизации сборки библиотек perl «cpanbuilder», которые частично использовались и с инструментами поддержки библиотек perl в Сизифе «watchscripts/perl». На их плечах уже почти 5 лет поддержка более 26 тысяч пакетов perl-* в репозитории autoimports.

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

Сердцем системы «Логовед» является «Logoved DB», база знаний сообщений об ошибках и предупреждений и библиотека для работы с ней. Сообщения об ошибках и предупреждения в простейшем случае хранятся как регулярное выражение, но может быть и набор регулярных выражений, и подпрограмма, и внешний скрипт-фильтр. В базе хранятся не только различные сообщения об ошибках но и во многих случаях действия, которые нужно предпринять для исправления ошибки (к примеру, для редактирования srpm пакета – ссылка на скрипт для библиотеки RPM::Source::Editor). Поэтому «Logoved DB» и называется базой знаний.

«Logoved DB» может быть использован и напрямую, например, в системе тестирования приложений путём их установки и запуска в виртуальной машине, для распознавания их сообщений в консоли.

Однако наиболее важно применение этой системы для обработки логов сборки пакетов (и пересборки в beehive), как удачных (для поиска предупреждений и мелких ошибок) так и неудачных логов, для помощи в починке пакетов. Отсюда и название системы, Логовед.

Для обработки логов сборки/пересборки пакетов для корректного применения к ним данных из «Logoved DB» мало найти соответствующее сообщение, необходимо знать его контекст. В процессе сборки в зависимости от этапа сборки одно и то же сообщение может быть признаком build error, warning, или же вообще должно быть проигнорировано как, к примеру, сообщение «Package gtk+-2.0 was not found in the pkg-config search path» на этапе выяснения BuildRequires пакета в hasher для подготовки chroot.

Для уточнения контекста сообщения «Logoved DB» нужен посредник, парсер логов hasher. Для «Logoved DB» таким парсером выступает подсистема «Logoved-Stream» (Доступна в виде отдельной независимой библиотеки). «Logoved-Stream» позволяет разбить лог сборки на отдельные секции, а также определять, успешно ли завершилась конкретная секция.

Текущими задачами для Логовед являются:

  1. Разбор FTBS логов пересборки репозитория (Sisyphus, branch, autoimports) и генерация отчёта со статистикой.
  2. Починка не(пере)собирающихся пакетов в распознанных случаях (где есть обработчик).
  3. Сбор предупреждений из логов собравшихся пакетов для вывода в repocop, в некоторых случаях — починка таких пакетов.
Система Логовед для автоматизации QA (Игорь Власенко, OSSDEVCONF-2018)!.jpg

Примечания и ссылки

Plays:31   Comments:0