Инструмент рандомизированного тестирования API библиотек


Инструмент рандомизированного тестирования API библиотек

Начало проекта – 2018 год. Окончание проекта - 2018 год. Заказчик - Samsung.

В рамках работ для компании Samsung в 2018 году разработан инструмент автоматического рандомизированного тестирования библиотек на языке Java. Инструмент построен на распределенной архитектуре, которая позволяет производить тяжеловесные вычисления на стационарном компьютере, а производить вызов функций библиотек как на стационарном компьютере, так и на мобильном устройстве. Возможности инструмента позволяют производить как полностью автоматическое рандомизированное тестирование, так и настройку процесса тестирования. В частности, инструмент может:

- ограничивать значения аргументов функций бибилиотеки;
- задавать набор мутаций для значений аргументов функций;
- ограничивать последовательности вызовов функций.

Инструмент реализован с использованием техники инструментирования Java-библиотек для получения информации о покрытии и аварийных ситуациях при исполнении кода. В качестве генератора псевдослучайных данных используется фаззер, разработанный в ИСП РАН. По результатам обнаружения аварийного завершения работы функции библиотеки генерируется исходный код для демонстрации ошибки и отладки библиотечной функции.

Исполнитель

Системное программирование

Перейти к списку всех проектов