Инструменты тестирования ОС

Linux Test Project (LTP):

набор тестов для проверки ядра Linux: - системные вызовы - файловые системы - стабильность - нагрузка С полным набором тестов можно ознакомится в репозитории проекта в github

Тесты LTP можно запускать на ВМ, железе, удаленно или локально.

LTP наборы могут интегрироваться в CI/CD пайплайны и прогоняются на новых сборках, чтобы автоматически отлавливать регрессии

LTP это open source проект, который активно используется и развивается сообществом, поэтому его часто берут как основу для системного тестирования Linux

openQA

Это open source инструмент для автоматизированного тестирования операционных систем, разрабатываемый и активно поддерживаемый командой suse linux.

Он используется для тестирования популярных дистрибутивов Linux (например, openSUSE, Debian) и позволяет проверять систему целиком:

Что он умеет: - тестирование установки ОС  из ISO образа - создание qcow2 образов с предустановленной ОС с подготовленной тестовой средой - работа с дисками, сетевыми настройками - UI-тесты на уровне всей системы (тестирование desktop приложений, установщика) - запуск консольных команд и проверка их результата - работа с разными ролями (сервер / desktop / minimal) - тестирование разных конфигураций (файловые системы, разметка, сети) - параллельные тесты и сценарии

Работает через реальные сценарии:

поднимает виртуальную машину, загружает систему и взаимодействует с ней как пользователь

- ищет элементы на экране - кликает - вводит команды - проверяет состояние системы

В результате:

можно автоматически прогонять тесты на новых сборках, ловить регрессии и понимать, на каком шаге всё сломалось (со скриншотами и логами) Да он также сам делает удобные отчёты со скриншотами шагов в UI и подробными логами консоли.

Из минусов можно назвать: - openQA требователен к ресурсам, так как тесты запускаются в виртуальных машинах и имитируют полноценную работу системы - тесты в openQA пишутся на Perl Для кого-то это может быть минусом, так как язык не самый популярный сейчас и порог входа может быть выше

Проект живой и поддерживаемый и в последней версии документации есть информация о том что разработка тестов также поддерживается на языке python

openQA отлично подходит для тестирования системы целиком, но для тестирования пакетов rpm/deb и репозиториев я бы использовал более легковесный фреймворк, например на стеке pytest - qemu/libvirt - allure