Компания AMD открыла исходные тексты системы Tapper, разработанной в дрезденском Центре разработки операционных систем (amd64.org). Система Tapper создана для обеспечения работы инфраструктуры, ориентированной на выполнение всех аспектов тестирования программного обеспечения, операционных систем и технологий виртуализации. Используя Tapper группы по контролю качества программного обеспечения могут организовать проведение всего жизненного цикла тестирования, от планирования и выполнения тестовых заданий, до генерации отчетов. Код Tapper доступен под лицензией BSD. Проект написан на языке Perl с использованием стандартных CPAN-модулей.

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

Для формирования результатов тестирования используется стандартный протокол TAP (Test Anything Protocol). Алгоритм проведения тестов можно оформить на Shell, Perl и Python. Результирующие данные могут быть сохранены в соответствии с определенной пользователем моделью объектно-реляционного маппинга данных, по умолчанию поддерживаются MySQL и SQLite. Загрузка тестовых окружений может быть организована с использованием PXE, GRUB, TFTP, NFS. Проект Tapper может использоваться совместно с фреймворком autotest.kernel.org, используемом для тестирования работоспособности различных компонентов Linux-ядра.

Ключевые особенности Tapper:

  • Автоматизация
    • Загрузка тестовых окружений по сети и их конфигурирование;
    • Инсталляция с использованием готовых образов установленной системы или установка штатными средствами с задействованием таких технологий, как kickstart и autoyast;
    • Поддержка тестирования систем внутри виртуализированных окружений Xen и KVM, а также проверка работоспособности в сочетании с различными типами дистрибутивов (RHEL, SLES, Debian)
    • Возможность подстановки нужных пакетов, программ и файлов на заданный хост или в заданное виртуальное окружение;
    • Контроль за исполнением тестовых скриптов на заданном хосте или виртуальном окружении;
    • Гибкая обработка таймаутов для всего цикла тестирования.
  • Планирование
    • Оптимизация тестирования при нехватке машин для выполнения большого числа сценариев тестирования;
    • Возможность смешивания очередей проведения тестов для различных областей тестирования с разной пропускной способностью;
    • Выбор хоста для проведения тестирования с учетом заданных параметров (размер ОЗУ, число процессороных ядер, тип производителя и т.п.);
    • Автоматическое перестроение очереди при непрерывном тестировании;
    • Использование сценариев, охватывающих несколько хостов;
  • Веб-интерфейс
    • Поддержка высокоуровневой оценки результатов тестирования и возможность охвата всех результатов в одном окне;
    • Обзорные списки состояния тестирования и детализированные отчеты.
    • Подсвечивание статуса выполнения теста цветом (зелёный, желтый, красный);
    • Возможность фильтрации результатов по времени, тестовым заданиям, хостам, статусу выполнения;
    • RSS-лента для слежения за выполнением тестов;
    • Контроль запуска тестовых наборов;
  • Оценка результатов
    • Программируемый API для взаимодействия с web-фронтэндом;
    • Поддержка выполнения сложных запросов к базе данных с результатами тестирования, комбинируя SQL и XPath-запросы. Подробнее об интерфейсе для формирования запросов можно прочитать в данной презентации;
  • Планирование проведения тестов
    • Возможность определения плана выполнения тестов, комбинируя разнообразные возможности Tapper;
    • Средства для управления иерархией спецификаций с определением тестовых планов;
    • Поддержка взаимодействия с ПО TaskJuggler для автоматического планирования и генерации отчетов;
  • Возможные области применения
    • Тестирование ядра (стресс-тестирование, оценка работоспособности функций, выполнение перезагрузки);
    • Тестирование систем виртуализации (KVM, Xen);
    • Тестирование комбинации результатов работы на физических хостах и под управлением систем виртуализации;
    • Тестирование дистрибутивов и компиляторов;
    • Оценка производительности.


Источник: http://www.opennet.ru/opennews/art.shtml?num=30296