Тестирование наукоёмких SDK

22
Тестирование наукоёмких SDK Виктория Манукянц и Вадим Щемелинин Центр Речевых Технологий

description

Презентация Вадима Щемелинина и Виктории Манукянц на SQA Days-16 14-15 ноября 2014, Санкт-Петербург, Россия www.sqadays.com

Transcript of Тестирование наукоёмких SDK

Page 1: Тестирование наукоёмких SDK

Тестирование наукоёмких SDK

Виктория Манукянц и Вадим ЩемелининЦентр Речевых Технологий

Page 2: Тестирование наукоёмких SDK

www.speechpro.ru

Page 3: Тестирование наукоёмких SDK

Где это используется?

Озвучивание книг

Голосовое самообслуживание

Системы шумоочистки

Криминалистическая экспертиза

Page 4: Тестирование наукоёмких SDK

Немного о тестировании в ЦРТ

Page 5: Тестирование наукоёмких SDK

SDK (software development kit) — комплект средств разработки,

который позволяет специалистам по программному обеспечению

создавать приложения для определённого пакета программ,

программного обеспечения базовых средств разработки, аппаратной

платформы, компьютерной системы, игровых консолей,

операционных систем и прочих платформ.

Что мы тестируем?

Page 6: Тестирование наукоёмких SDK

Подводные камни,

● подход к тестированию;

● требования к обёртке для SDK;

● скрытый функционал и Unit Testing;

● кроссплатформенность тестов;

● поддержка тестов;

● оценка качества алгоритмов и расчёт метрик;

● устаревание тестовых выборок;

● требовательность тестов к ресурсам;

● и т.д….

или на чём можно споткнуться

Page 7: Тестирование наукоёмких SDK

Тестирование SDK

Белый? Чёрный?

Page 8: Тестирование наукоёмких SDK

Юзабилити, когда интерфейса не видно

1. Интерфейсы есть всегда.2. Интерфейсы SDK можно

увидеть, написав приложение.

3. Тестировщики пишут дорогие приложения.

Документация

Page 9: Тестирование наукоёмких SDK

Счастье — это...

Новенький SDK

Пример использования

+

xUnit

+

Page 10: Тестирование наукоёмких SDK

Что такое тест качества?

Это способ оценки надежности работы алгоритма после внесения изменений, выраженный в численном эквиваленте

Оценка наукоёмких алгоритмов

Page 11: Тестирование наукоёмких SDK

Где их взять?

Метрики оценки качества алгоритмов

Page 12: Тестирование наукоёмких SDK

«Простой» пример

ГОСТ Р ИСО МЭК 1975-1-2007

False Alarm = Вероятность Ложного Совпадения (ВЛС)Доля сравнений самозванца со степенью схожести не ниже порога принятия решения.

Miss Probability = Вероятность Ложного Несовпадения (ВЛНС)Доля сравнений пользователя со степенью схожести больше порога принятия решения.

Оценка алгоритма верификации диктора

Detection Error Tradeoff (DET) graph

илиКривая Компромиссионного Определения ошибки (ККОО)

Page 13: Тестирование наукоёмких SDK

Правильный выбор метрики

Клиента интересует результат, и метрика должна его отражать

Page 14: Тестирование наукоёмких SDK

Неавтоматизируемые метрики

ГОСТ Р 50840-95 “Передача речи по трактам связи. Методы

оценки качества, разборчивости и узнаваемости”

Page 15: Тестирование наукоёмких SDK

Ошибки в расчётах метрик

Реализована разработчиком

Реализована тестировщиком

+ Время реализации– Мы должны «верить» цифре

Ошибка не останется без вниманияОшибка не повлияет на результатМы «понимаем» цифруВремя реализации

+

+

+–

Page 16: Тестирование наукоёмких SDK

Тестовая выборка

Page 17: Тестирование наукоёмких SDK

Требования и SDK

Разные заказчики — разные требования:

Пользователь не сотрудничает с системой распознавания речи

Пользователь сотрудничает с системой распознавания речи

В результате:● увеличение количества тестовых выборок;● увеличение времени прохождения всех тестов;● увеличение аппаратных ресурсов для проведения тестов.

Page 18: Тестирование наукоёмких SDK

К практической реализации тестирования SDK

Генератор тестов

Page 19: Тестирование наукоёмких SDK

Распределённый запуск

Page 20: Тестирование наукоёмких SDK

Получившаяся система

Результаты

Page 21: Тестирование наукоёмких SDK

● Выбрали свой подход к тестированию SDK

○ Нашли интерфейс

○ Сформировали требования к тестам

● Разобрались в оценке качества алгоритмов

○ Рассмотрели основные “подводные камни” метрик

○ Победили увеличивающийся объём тестовых данных

Подведем итоги

Тестировать SDK интересно!

Page 22: Тестирование наукоёмких SDK

Спасибо за внимание!