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