(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(95489336, "init", { defer: true, clickmap:true, trackLinks:true, accurateTrackBounce:true }); ym(95489336, 'hit', window.location.href);

Экзамен на экономию: как тестировщики Doubletapp сэкономили ресурсы заказчика

Мы разработали сервис для организации и проведения онлайн-тестов и экзаменов уровня мини-MBA у топ-менеджмента в крупных банках. Рассказываем, как команда Doubletapp помогла не только получить работающее приложение и ликвидный продукт — библиотеку прокторинга, но и существенно снизить затраты благодаря тестированию.

Задача

Изначально заказчик сформулировал задачу так: у нас есть мобильное приложение, приведите его в рабочий вид. Одновременно клиент поручил нам написать библиотеку прокторинга* под каждую мобильную платформу и на ее основе разработать новое приложение — вначале как MVP, чтобы посмотреть библиотеку в деле. Библиотека предназначена к продаже как отдельный продукт, в ней должна быть уже простроена бизнес-логика, чтобы можно было лишь спроектировать визуальную часть и получить готовое работающее приложение.

Запрос по функционалу библиотеки: записи видео с фронтальной камеры и экрана чанками, а также последующая загрузка этих чанков на сервер; управление состоянием сессии, отправка всех запросов, связанных с началом и закрытием сессии, пингами, месседжами, фотографиями, комплитом и прочим.

*Библиотека прокторинга — инструмент, обеспечивающий одновременную запись с экрана мобильного устройства, его фронтальной камеры и звука с микрофона. Запись ведется непрерывно, а уже готовые отрезки (чанки) отправляются на сервер. После окончания экзамена и обработки на сервере получается цельная запись.

Решение

Траектория проекта: в первую очередь разработчики Doubletapp поставили на ноги приложение клиента и зарелизили обновленную версию. Затем началась работа над библиотекой прокторинга и MVP для проверки возможностей библиотеки.

Приложение из MVP быстро переросло в отдельный продукт: сейчас в нем ведется запись видео с обеих камер устройства и передача его на сервер заказчика, контролируется течение сессии и загрузка всего контента. В последней версии добавили функционал для распознавания лица с помощью инструментов ML: приложение отслеживает, есть ли лицо в камере, и если нет, то блюрит экран. Проработали интерфейс — он стал интуитивно понятнее и удобнее для студента, находящегося в экзаменационном стрессе.

Про разработку

(если хотите сразу про экономных тестировщиков — листайте дальше)

Мы работали над приложением для прокторинга: наблюдатель (проктор) непрерывно контролирует, как студент выполняет тест, при этом на устройстве ведется запись с экрана и запись с фронтальной камеры.

1. Из-за особенностей Android регулировать частоту кадров пришлось с помощью решения на OpenGL, 30-секундные файлы перед отправкой сжимали на устройстве и последовательно отправляли на бэкенд для дальнейшей обработки.

2. Студент во время прохождения теста не имеет права открывать другие приложения (понятно же почему, да?). Чтобы отправлять чанки, написали собственный скрин-рекордер для iOS, потому что системный не работал с режимом одного приложения.

3. В какой-то момент заказчик пришел с требованием разработать конференц-связь типа WebRTC. Мы планировали отдавать стриминг с девайса (с камеры, с экрана) на бэкенд и там обрабатывать, чтобы проктор подключался к бэкенду и контролировал процесс. Но заказчик настаивал — обработка чанков должна вестись именно на девайсе. А приложение уже довольно тяжелое.

Мы столкнулись с тем, что у нас запись работает с двух каналов, у нас сжатие параллельно идет, у нас отправка всего этого на бэкенд, плюс еще нужно учесть медленный интернет (а требование было, чтобы мы поддерживали скорость до одного мегабита), и поверх всего этого еще прикрутить WebRTC — стриминг и с веб-камеры, и с экрана, и плюс еще аудио, и чтобы это все как-то вместе работало.

И мы написали ядро под Android для обработки этих видеопотоков на OpenGL, чтобы у нас это все в одном месте один раз обрабатывалось, чтобы мы сами управляли частотой кадров и так далее, и нам удалось в два — в два с половиной раза снизить нагрузку на устройство.

Про тестирование

Работа тестировщиков — не тушить пожары, а предотвращать их. Вложимся в тестирование на всех этапах — сэкономим средства заказчика и ресурсы всей команды.

QA-инженеры работали по четырем направлениям: обеспечивали качество на всем протяжении работ, снижали затраты, укрепляли доверие к продукту, а также улучшали взаимодействие с пользователями.

Чтобы обеспечить качество, контролировали соответствие ТЗ требованиям, предъявляемым к ПО, пересмотрели и отформатировали внутренние процессы, которые могут повлиять на скорость работ и качество.

Для снижения затрат при тестировании ТЗ уделили много внимания четкости и полноте заявленных требований, согласованию их на старте работ, протестировали дизайн-макеты. Тестировали сначала библиотеку прокторинга (реализацию записи экрана, фронтальной камеры и микрофона с последующим сжатием и отправкой данных на сервер), а только потом уже UI, т.е. более-менее финальный продукт.

Команда тестирования в этом кейсе прибегла к интересному подходу — специалисты решили протестировать отдельно внутреннюю часть приложения и найти проблемы на ранних этапах — в самом коде. Для тестирования разработчики собрали приложение в виде экрана буквально с двумя кнопками. В этой предельно простой версии QA-инженеры «протыкали» на настоящих устройствах основные функции библиотеки и сэкономили ресурсы команды и заказчика.

Укрепляли доверие к продукту — тут все понятно. Тестировщики — это умный щит на страже интересов заказчика и пользователей. Сработали хорошо — продукт качественный, функционирует как задумано. Доверять можно.

Что касается взаимодействия с пользователями, тут ситуация двоякая. С одной стороны, приложение переработали, провели юзабилити-тестирование, убедились что студентам понятен интерфейс и можно без лишнего стресса сдавать свои экзамены. А с другой стороны — контроль над процессом стал строже и качественнее, некоторые хитрецы расстроились. Так готовьтесь лучше!

Дополнительно по теме читайте статью Дмитрия Крылаткова о тестировании продукта на безопасность

Итог

Команда Doubletapp вдохновенно поработала, заказчик получил не только работающее приложение вместо своего неудачного, но и отдельный ликвидный продукт — библиотеку прокторинга.

Сегодня сдача экзамена — это онлайн-трансляция, то есть видео не просто отправляется на сервер для последующей проверки, а идет синхронная сессия, где проктор наблюдает и контролирует вживую, как проходит экзамен, что происходит на экране студента, его ли лицо находится перед камерой.

Специалисты Doubletapp закрыли потребность заказчика в качественных специалистах и продолжают поддерживать приложение и улучшать его по запросу заказчика.

Для пользователей в новой версии приложения мы оставили тот же таргет, но при этом работа стала быстрее и стабильнее, интерфейс — удобнее и понятнее.

Больше технических деталей и подробности работы над продуктом читайте в портфолио Doubletapp на сайте.

Есть вопросы или нужна консультация – свяжитесь с нами.

0
Комментарии
-3 комментариев
Раскрывать всегда