Тестирование наукоёмких SDK Виктория Манукянц и Вадим Щемелинин Центр Речевых Технологий
www.speechpro.ru
Где это используется? Озвучивание книг Голосовое самообслуживание Системы шумоочистки Криминалистическая экспертиза
Немного о тестировании в ЦРТ
SDK ( software development kit ) комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ. Что мы тестируем?
Подводные камни Подход к тестированию Требования к обёртке для SDK Скрытый функционал и Unit Testing Кроссплатформенность тестов Поддержка тестов Оценка качества алгоритмов и расчёт метрик Устаревание тестовых выборок Требовательность тестов к ресурсам и т.д... или на чём можно споткнуться
Тестирование SDK Белый? Чёрный?
“Usability” когда интерфейса не видно 1. Интерфейсы есть всегда 1. Интерфейсы SDK можно увидеть написав приложение 1. Тестировщики пишут дорогие приложения Документация
Счастье это... Новенькое SDK Пример использования + xUnit +
Где их взять? Метрики оценки качества алгоритмов
Правильный выбор метрики Клиента интересует результат и метрика должна его отражать
“Простой” пример ГОСТ Р ИСО МЭК 1975-1-2007 False Alarm = Вероятность Ложного Совпадения (ВЛС) Доля сравнений самозванца со степенью схожести не ниже порога принятия решения. Miss Probability = Вероятность Ложного Несовпадения (ВЛНС) Доля сравнений пользователя со степенью схожести больше порога принятия решения. Оценка алгоритма верификации диктора Detection Error Tradeoff (DET) graph или Кривая Компромиссионного Определения ошибки (КОО)
Не автоматизируемые метрики ГОСТ Р 50840-95 “Передача речи по трактам связи. Методы оценки качества, разборчивости и узнаваемости”
Ошибки в расчётах метрик Реализована разработчиком Реализована тестировщиком + Время реализации Мы должны “верить” цифре +Ошибка не останется без внимания +Ошибка не повлияет на результат + Мы “понимаем” цифру Время реализации
Что такое тест качества? Это способ оценки качества (надежности) работы алгоритма после внесения изменений, выраженный в численном эквиваленте В основе: Численная оценка качества алгоритма (метрики) Тестовая выборка (звуковые файлы, текстовые документы, изображения) Тесты качества
Требования и SDK Разные заказчики - разные требования: Пользователь не сотрудничает с системой распознавания речи Пользователь сотрудничает с системой распознавания речи В результате: Увеличение количества тестовых выборок Увеличение времени прохождения всех тестов Увеличение аппаратных ресурсов для проведения тестов
К практической реализации тестирования SDK Генератор тестов
Распределённый запуск
Распределённый запуск Результаты
SDK можно и нужно тестировать Пользовательские интерфейсы заменяются на программные интерфейсы Для оценки качества используются различные метрики Тесты легко автоматизировать Тестировать SDK интересно Подведём итог
Спасибо за внимание!