Тестирование в CCTV:
частные случаи и глобальные проблемы
Александр Васильев, ITV | AxxonSoft
План доклада
•
Актуальность темы
•
Видеонаблюдение для самых маленьких
•
Что же такое Axxon Next?
•
Проблемы, их причины и решения
•
Выводы и мораль
Актуальность темы
Много докладов про:
•
Менеджмент (test / team / time)
•
Мобилки и web / облака
•
Автоматизацию
Мало докладов про:
•
D
esktop приложения
•
Ручное
тестирование
Совсем нет докладов про:
•
CCTV – Closed-Circuit TeleVision – Видеонаблюдение
Всё в наших руках
Автотестов пока нет потому что:
•
Кадровая политика
•
Нет времени
•
Другие причины
•
Технические причины (о них – далее)
Зато есть автоматизация рутинных операций:
•
Публикация сборок для внешнего доступа
•
Сбор метрик по отделу (скорость тестирования и т.д.)
Инструментарий ручного тестирования
Система видеонаблюдения
Аналоговые камеры => аналоговый сигнал
Коаксиал
Система видеонаблюдения
DVR (Digital Video Recorder) – видеорегистратор
Коаксиал
LAN
DVR
Система видеонаблюдения
IP-камеры => цифровой сигнал по LAN
Коаксиал
LAN
DVR
Система видеонаблюдения
NVR (Network Video Recorder) – цифровой DVR,
видео по LAN
Коаксиал
LAN
NVR
DVR
NVR
Система видеонаблюдения
Современная система CCTV
LAN
VPN
Облако
СХД
Мобилки
Камера в
интернете
Домашний
компьютер
NVR
Система видеонаблюдения
LAN
VPN
Облако
СХД
Мобилки
Камера в
интернете
Домашний
компьютер
Axxon Next
Особенности
Особенности Axxon Next
•
Пререквизиты и сложная архитектура
•
Распределённая система
•
Специальное оборудование
•
Работа в сети
•
Ресурсоёмкость
Особенности разработки
•
Разработкой Axxon Next руководит гендир
•
Мы почти не проектная компания
Пререквизиты и сложная архитектура
Сторонний софт, «пререквизиты»:
Сторонние решения внутри Axxon Next:
Пререквизиты и сложная архитектура
Наш софт (с отдельным инсталлятором):
•
Driver Pack
– интеграция камер с софтом
•
Detector Pack
– видео- и аудиоаналитика
Наши технологии:
•
NGP
– Next Generation Platform, ядро сервера
•
Business Layer
– прокладка между сервером и клиентом.
Главная головная боль.
~180 вендоров
~ 1500 устройств
Пререквизиты и сложная архитектура
Сложная архитектура приложения:
GUI
NGP
Axxon Next
Business
Layer
Driver
Pack
Клиент, C#
Сервер, C++
Mercurial
OpenGL
.NET
TAO
PostgreSQL
Detector
Pack
VC++ Redist
Распределённая система
Сервер
+
Клиент
Самый простой случай:
Более распространённая ситуация:
Распределённая система
Клиент
Домен
Клиенты
Сервер
Более распространённая ситуация:
Распределённая система
Домен
Клиенты
Мультидомен
Специальное оборудование
Дополнительные возможности камер
Специальное оборудование
Датчики
Реле
Микрофон
Динамик
PTZ
Специальное оборудование
Многомониторная система
Видеостена
Работа в сети
IP-видеонаблюдение подразумевает
•
Высокую пропускную способность
1 канал 720p / 25 fps / h264 ~ 8 Mbit/s
•
Работу в разных подсетях
•
Конфликты IP-адресов
•
Потери пакетов
•
NAT
•
VPN
•
Broadcast/Multicast/Unicast
•
…
Ресурсоёмкость
Экспорт из архива
Аудиоаналитика
Отображение
Работа с БД
Запись в архив
Видеоаналитика
Декодирование
Ресурсоёмкость
SaaS / Web-приложения
Производитель софта
Потребитель софта
Desktop / CCTV
Производитель софта
Потребитель софта
Как это
тестировать?!
Ресурсоёмкость
Небольшая конфигурация для примера:
•
15 каналов h264 / 1280х720 / 25 fps
•
2 недели архива по 12 часов в день
•
Core i7 4790
Требуемые ресурсы:
•
Пропускная способность: 115 Mbit/s
•
Загрузка процессора, отображение:
40 – 50%
•
Загрузка процессора, детектирование:
30 – 40%
•
Требуемый объём архива:9.06 Tb
Ресурсоёмкость
Всегда есть клиент, у которого больше.
•
Камер
•
Серверов
•
Гигабайт и гигагерц
Примеры по количеству камер:
•
Bank Melia Iran (Иран)722
•
YPF (Аргентина)
800
•
Emperors Palace Casino (ЮАР)500
•
Mudo Chain (Турция)1920
Ресурсоёмкость
Разработкой Axxon Next руководит гендир
Отсутствуют функциональные спецификации
•
Затруднено написание тест-планов
•
Забитые баги закрываются как некорректные
•
Неизвестен объем запланированного функционала
Разработкой Axxon Next руководит гендир
Спецификация есть:
PM
Разработкой Axxon Next руководит гендир
Спецификация есть:
PM
Спека
Тестер
Разработчик
Разработкой Axxon Next руководит гендир
Спецификация есть:
Спека
Тест-дизайн
Софт
Баг
Тестер
Разработчик
Разработкой Axxon Next руководит гендир
Спецификации нет:
PM
Разработкой Axxon Next руководит гендир
Спецификации нет:
PM
Dev Lead
Тестер
Разработчик
Софт
Разработкой Axxon Next руководит гендир
Спецификации нет:
Тестер
Разработчик
Dev Lead
Софт
Разработкой Axxon Next руководит гендир
•
Фактически нет взаимодействия с разработкой
•
Максимизирована скорость разработки
•
Нечёткие сроки всего
1
2
3
4
5
6
7
8
Мы – не проектная компания
Для крупного заказчика мы – проектная компания
Примеры: Домодедово, Байконур, Безопасное подмосковье, МВД
•
Индивидуальный подход к разработке
Создаём персональные версии с уникальными фичами
Добавляем новые фичи в релиз-кандидат
Объём новой функциональности в версии не фиксирован
•
Индивидуальный подход к сопровождению
Отправляем инженеров QA на объекты (например, в Аргентину)
Отлаживаемся на объекте, предоставляем кастомные модули
Мы почти не проектная компания
Сложности тестирования Axxon Next
1.
Непредсказуемые сроки стабилизации
2.
Отсутствие автоматизации
3.
Практически нет удалённого тестирования
4.
Нехватка аппаратных ресурсов
5.
Отсутствие необходимого оборудования
6.
Отсутствие спецификаций
7.
Неравномерная загрузка группы
8.
Блокеры в финальной итерации
Причины сложностей и их решения
1. Непредсказуемые сроки стабилизации
Причины:
•
Сложная архитектура => много пересечений в коде =>
наведение новых багов при исправлении старых
•
Мы почти не проектная компания => новые фичи
реализуются в любое время => наводятся баги
Причины сложностей и их решения
1. Непредсказуемые сроки стабилизации
Решения:
•
Динамическое распределение ресурсов отдела
•
Гибкое планирование сроков стабилизации
Причины сложностей и их решения
2. Отсутствие автоматизации
Причины:
•
Сложная архитектура => сложный код тестов =>
квалификация и время на написание / поддержку
•
Аппаратное подключение/отключение устройств =>
дорогая / сложная автоматизация
•
Программные интерфейсы постоянно меняются => много
времени на сопровождение автотестов
Причины сложностей и их решения
2. Отсутствие автоматизации
Решения:
•
Отлаженный механизм ручного тестирования
•
Автоматизация не всегда эффективнее
•
Обучение автотестеров внутри отдела
Причины сложностей и их решения
3. Практически нет удалённого тестирования
Причины:
•
Аппаратное подключение/отключение устройств =>
невозможно сделать удалённо
•
Малая мощность компьютера / ширина канала =>
удалённая проверка неудовлетворительна
Причины сложностей и их решения
3. Практически нет удалённого тестирования
Решения:
•
Работа в дружном коллективе
•
Гибкий график, лояльное начальство
Причины сложностей и их решения
4. Нехватка аппаратных ресурсов
Причины:
•
Нагрузочное тестирование => большая конфигурация =>
не хватает компьютеров
•
Сложный баг у клиента на большой системе => нет
компьютеров для воспроизведения у нас
Причины сложностей и их решения
4. Нехватка аппаратных ресурсов
Решения:
•
Использование виртуализации
•
Оптимистичный взгляд на мир
Причины сложностей и их решения
5. Отсутствие необходимого оборудования
Причины:
•
Нужно проверить отсутствующее устройство =>
удалённый доступ, но его недостаточно
•
Баг у клиента: сложная сеть/редкое железо/мощные ПК
=> не можем воспроизвести => отлаживаемся на объекте
Причины сложностей и их решения
5. Отсутствие необходимого оборудования
Решения:
•
Применяем эмуляцию устройств и сетей
•
При возможности отлаживаемся на объекте
Причины сложностей и их решения
6. Отсутствие спецификаций
Причины:
•
Спецификации отменены => нет описания фич =>
затруднен тест-дизайн и написание планов
•
Фича интегрируется по устной договорённости =>
отсутствует информация о деталях
Причины сложностей и их решения
6. Отсутствие спецификаций
Решения:
•
Плотное взаимодействие с разработкой
•
Система запросов по функционалу в багтрекере
Причины сложностей и их решения
7. Неравномерная загрузка группы
Причины:
•
Планирование разработки гибкое => резкие изменения в
плане => неравномерное число задач
•
Требуется срочная внеплановая проверка => срываются
сроки итерации
Причины сложностей и их решения
7. Неравномерная загрузка группы
Решения:
•
Динамическое распределение задач по отделам
•
Гибкое планирование работы отдела QA
Причины сложностей и их решения
8. Блокеры в финальной итерации
Причины:
•
Переделки во всех компонентах продукта => наводятся
критические баги
•
Новые фичи добавляются перед релизом => наводятся
критические баги
Причины сложностей и их решения
8. Блокеры в финальной итерации
Решения:
•
Гибкое планирование итераций и их количества
•
Индивидуальная работа с клиентами
Выводы
Проблемы вне отдела QA:
•
Непредсказуемые сроки стабилизации
•
Отсутствие спецификаций
•
Неравномерная загрузка группы
•
Блокеры в финальной итерации
Обоснование:
•
Сейчас индивидуальный подход экономически выгоднее
•
С ростом компании управление разработкой улучшится
Решение для QA:
•
Адаптироваться к текущей модели ведения бизнеса
•
Улучшать взаимодействие с разработкой
•
Надеяться на нормализацию ситуации в будущем
Выводы
Проблемы внутри отдела QA:
•
Отсутствие автоматизации
•
Практически нет удалённого тестирования
•
Нехватка аппаратных ресурсов
•
Отсутствие необходимого оборудования
Обоснование:
•
Сложная архитектура ПО и интеграция с устройствами
•
Кадровые риски и высокая цена необходимого персонала
Решение для QA:
•
Автоматизация и удалённое тестирование – не самоцель
•
Подготовка кадров внутри отдела
•
Применение виртуализации / эмуляции и т.п.
Заключение
•
Рассмотрены особенности системы
видеонаблюдения Axxon Next
•
Описаны сложности тестирования, к которым
приводят эти особенности
•
Приведены методы решения проблем,
применяемые на практике
•
Дан краткий анализ текущего состояния дел и
прогноз
Тестирование в CCTV: частные случаи и глобальные проблемы