Инструменты тестирования ОС
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