Тестирование наукоёмких 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 интересно
Подведём итог
Спасибо за внимание!
Тестирование наукоёмких SDK