*Тeкстът е предоставен от Milestone Systems Bulgaria
Основана през 1998 година, Milestone Systems е сред лидерите в разработката на софтуер за IP видео наблюдение и мениджмънт. Основният продукт на Milestone Systems, XProtect® е проектиран с отворена архитектура и е съвместим с повече IP камери, енкодери и цифрови видеорекордери от всеки друг производител. Иновационно, Milestone предоставя отворена платформа, която има способността да се интегрира с най-добрите съвременни решения за видео анализ.
Видео мениджмънт софтуера на Milestone Systems е сложна мултикомпонентна система, която включва в себе си множество модули и технологии, като Windows, Web, iOS и Android клиенти, множество сървърни приложения и бази от данни. Това прави автоматизираното тестване предизвикателство като в същото време е един от най-важните процеси в компанията.
Тук ви представяме Test Automation Platform групата в Milestone Systems, която отговаря за изпълнението на тази задача. Разговаряме с Иван, Senior Engineering Manager на българския екип, Петър, Principal Test Automation Engineer, Николай, Software Developer, Никола, Software Engineer и Иво, Principal Software Engineer, които разказват повече за работата и значението на групата и екипа, за целия цикъл на производство на софтуера на Milestone Systems.
Разкажете ни малко повече за екипа, структурата и фокуса ви?
Test Automation Platform групата се състои от седем български и седем датски инженери, разделени на три, географски смесени, технологично фокусирани SCRUM екипа. Екипите в групата отговарят за предоставянето на цялостна платформа за хибридно интеграционно тестване на продуктите на Milestone Systems. Платформата се използва от софтуерните инженери на Milestone за разработка и изпълнение на автоматизирани тестове, както и за анализ на резултатите. Платформата за автоматизирано тестване, която разработваме и поддържаме покрива всички фази на тестовия процес, а именно:
Първа фаза е на подготовката (Arrange), която включва автоматизирано заделяне на ресурс – виртуален и физически хардуер, инсталацията и настройките на операционните системи и мобилните устройства, както и инсталацията и настройките на различните компоненти на Milestone софтуера, които ще се тестват за интеграционна съвместимост. За разработката и поддръжката на тази част от платформата отговаря Backend екипа в групата. Някои от компонентите и системите, които ползваме тук са: Windows, Linux, AWS cloud, System Center VMM, Google Android emulator, Apple Xcode simulator и др.
Следва фазата на изпълнение на автоматизирания тест (Act & Assert). Тази фаза се състои от избор на подходящи тестове за изпълнение – по график или при промяна в код-базата на продукта, както и самото изпълнение. За тази част от автоматизираното тестване отговаря Execution екипа от групата. Този екип разработва и поддържа също и Test Automation Framework-a на компанията, който позволява изпълнението на хибридни тестове посредством единно API (C#.NET).
Например, искате да тествате дали Milestone iOS mobile client (върху Apple телефон) работи успешно с Milestone Android mobile client (Android телефон) и двата клиента се свързват със Milestone XProtect, работещ на Windows Server, правят и проверяват необходимите настройки, получават видео и аудио потоци с необходимото качество и всичко това е отразено в сървърната част – за това ви е необходимо единствено познание по C# и Test Automation Framework-a на компанията. Цялата сложност на множеството от външни компоненти е сведена до опростени C# извиквания към Milestone TAF (Test Automation Framework). Този екип подбира също и подходящи инструменти, които да бъдат използвани в Milestone TAF. Някои от тях са: Appium, Selenium, FlaUI, Jenkins, TFS, и др.
Последната фаза включва събиране и автоматизация на обработката на резултатите – този етап се покрива от Data Insights екипа в групата. След приключването на тестовете, резултатите от тях, както и данните от различните участници в тестовия цикъл – натоварване на средата – мрежа, процесори, памет, дискове, журнали от инсталацията и изпълнението на тестваните продукти и операционни системи, виртуализация и др., се събират в голяма база от данни. Впоследствие върху тези данни се извършва автоматизиран анализ, който помага на инженерните екипи бързо да намират причините за получените резултати от автоматизираното тестване и да валидират качеството на съответния компонент. Инструментариумът, който се използва от този екип, включва C#, AWS Open Search, Microsoft SQL Server и др.
Разкажете ни за някое предизвикателство, което сте имали като екип?
Последното голямо предизвикателство пред екипа беше свързано с подмяната на един от основните компоненти на тестовия framework, наложено от преминаването на системата към .NET6. При първоначалното проектиране, тестовата система в Windows частта бе стъпила върху Ranorex. За съжаление, този инструментариум към момента не поддържа .Net6+. Също така при него липсва гъвкав лиценз, който да позволява изпълнението на голямо количество тестове в паралел. Решението беше да преминем към друг инструментариум.
Тъй като Ranorex беше основен компонент в Windows частта, подмяната му изискваше частична промяна в архитектурата – въвеждане на допълнителен софтуерен слой както и рефакторинг на голям по обем код. След планиране, установихме че няма да можем да се справим сами в необходимия срок. Тук ни помогна Milestone културата на взаимопомощ и сътрудничество. Организирахме се и с помощта на другите екипи в компанията работата е вече наполовина свършена.
Как тествате функционалността, която разработвате?
Всяка нова функционалност се разработва от екипите в групата в отделен branch. Изискването (DoD(Definition of Done)), за да бъде едно user-story приключено, е заедно с продуктовия код да има разработени и Unit Tests за него. Освен тях, преди merge към основния branch, се изисква и допълнителен тест на новата функционалност – най-често изпълняван от разработчика ръчно.
Попитахме някои от членовете на екипите по какво работят в момента:
Петър: В момента рефакторираме и обновяваме Appium проекта на компанията. Това е и може би най-предизвикателното нещо, по което съм работил до сега, тъй като включва в себе си използването на различни тестови сценарии и среди. Проблемите, с които се сблъскваме ежедневно, са разнообразни, което изисква да се мисли винаги „outside the box”.
Иво: В момента работим по няколко проекта, от които най-интересните са две миграции. Първата е свързана с подмяната на API, което използваме за десктоп автоматизирано тестване. А втората се опитва да реши проблема с постоянно нарастващата код база и има за цел да гарантира бъдещото развитие на проекта за автоматизирано тестване на компанията.
С кои други екипи работите най-често?
Николай: Най-често работим с QA инженерите от екипите на компанията, IT Support, както и с Build екипа в Milestone Systems. Работата ни с всички тези екипи е фокусирана върху това да предоставим добра и удобна среда, в която всеки да може да върши работата си ефективно и лесно.
Иво: Най-много комуникация имаме с екипите, които са базирани в София, и се занимават с разработката на мобилните приложения и уеб клиента. Но не е необичайно, да работим и с екипи, които са базирани в Дания. На практика работим с всички екипи в компанията, защото всички разработват автоматизирани тестове.
Кое е общото ви хоби?
Николай: Всеки един от нас има различни хобита, но когато става въпрос за неща, които да правим заедно, определено едно от тях е да ходим в планината, както и да караме колела. Отскоро се запалихме и по стрелба, което е една идея по-нетрадиционно, но пък доста ни допада.
Лесно ли свикват новите хора с екипа и динамиката му?
Николай: Моите наблюдения са, че новите хора се вписват бързо. Петьо например, още с първите си дни в екипа, вече имаше много добри идеи какво може да се подобри, намери общи интереси с целия екип, което естествено подобрява работния процес, и като цяло човек трудно може да каже, че е при нас от едва няколко месеца.
Как бихте описали динамиката във вашия екип?
Иван: Първо дискутираме промените, които е нужно да направим. После се захващаме за работа и намираме решение, което е оптимално и работи за всички. Естествено, някои решения изискват повече от една дискусия, но когато целта ни е ясна, много лесно можем да стигнем до консенсус.
Никола: Бих казал че сме екип, който е интересен сам по себе си, събрали сме се динамични и интересни личности, които създават перфектната синергия за отлична работа.
И няколко думи за бъдещето. Стратегията на Milestone през следващите години е амбициозна и включва много новости в технологиите и решенията. Ние, в Test Automation Platform групата, планираме използването на последни версии инструменти и тестови похвати, за да подсигурим бъдещето на автоматизираното тестване в организацията.