QAMania | Дизайн-ідея для тестування з відеоПривіт, друзі! Вже майже минув рік, ...

Logotipo de la comunidad de telegram -
2024-07-14

Número de suscriptores:
4308
Fotos:
241 
Videos:
12 
Enlaces:
661 
Categoría:
Tecnologías
Descripción:
Ламповий блог про тестування, пишемо про те, що нам цікаво та власний досвід. А ще в нас є 🌐 https://qamania.org 📺 https://youtube.com/@QAMania

Canal QAMania - @qamania - №866

💡 Дизайн-ідея для тестування з відеоПривіт, друзі! Вже майже минув рік, як я змінив свою роль з керівника на інженера, і не можу не помітити, що мій блогерський запал майже згас. Попри те, що я виконую багато цікавих інженерних задач, об’єктивно розумію: вони навряд чи зацікавлять широкий загал. Але кількома гідними ідеями все ж поділюся.Мав задачу покрити автотестами таку фічу: ПЗ отримує відео з камери, ШІ його аналізує і, якщо бачить певні об’єкти в кадрі, перемикає деякі фізичні перемикачі. Людина-оператор у режимі налаштування ПЗ має вручну підтвердити коректність перемикання.У тестовому режимі відео з камери — це просто зациклений відеофайл, а фізичні перемикачі замокані.Тобто в режимі автотесту всі події передбачувані. Але є проблема — доступу через код до моків перемикачів не передбачено, а автотесту потрібно точно знати, в який момент підтвердити перемикання.Як завжди, у такої задачі може бути кілька правильних рішень. Одне з них — попросити команду розробки додати інтерфейс до системи, щоб отримувати повідомлення про перемикання й використовувати його в тесті. Але беклог забитий, усі зайняті, а я — мамин інженер і можу придумати елегантний воркераунд 🤷‍♂️Тож що я зробив? Маючи доступ до відеопотоку камери ПЗ, я:➡️ Отримав список кадрів з відео, де з’являються об’єкти, у вигляді масивів байтів (оскільки відеофайл незмінний, то й масиви байтів повторюються кожного циклу)➡️ Обчислив хеш кожного масиву➡️ Додав хеші до очікуваних результатів тестівУ результаті:1️⃣ тест запускається2️⃣ чекає потрібного кадру3️⃣ коли кадр з’являється — натискає перемикачі4️⃣ ПЗ записує файл підтвердження5️⃣ тест перевіряє, чи збігаються дані у файлі, надані ШІ та операторомЗгодом, для відеопотоків з великою частотою кадрів, щоб не пропустити потрібний, я оптимізував код: зберігаю в черзі хеші всіх кадрів за останню секунду й перевіряю, чи є в цій черзі потрібний мені.У підсумку — маю працюючий тест: швидкий, оптимізований щодо пам’яті, легко підтримуваний. У разі зміни відео — можна швидко отримати нові хеші й продовжити тестування.Більше того — у наступну ітерацію я масштабував цей тест на всі версії ПЗ і зекономив купу часу на ручному тестуванні.А ви тестуєте щось, пов’язане з відео? Які у вас є хитрощі?
2140
25-07-09 12:38