25 август, 2019

Антон Ангелов, CTO на Automate the Planet, сподели с нас последните технологии в тестването, както и повече за sci-fi книгата, която пише.

С какво се занимаваш основно към този момент?

Главният проект, по който работя, е компанията ми “Automate the Planet”, която разработва test automation framework-a BELLATRIX. Той улеснява писането на автоматични тестове за Web, Android, iOS, Desktop Applications и Web Services. Това не е визуален tool, а сет от програмни библиотеки, които основно разработваме за .NET. Също така се занимаваме с разработка на distributed tests runner MEISSA, който позволява хиляди тестове да се изпълняват на множество машини, като се пускат паралелно на всяка една от тях, контролирайки целия процес. Забелязахме, че все повече хора искат същия tooling за Java, нещо което може би ще е най-логичната и естествена стъпка за нашето разрастване.

Какво беше Automate the Planet, преди да се превърне в компания?

Automate the Planet всъщност стартира като блог, който създадох преди повече от 5 години. Благодарение на цялата популярност около света на автоматичното тестването с Selenium WebDriver, това се превърна в един от най-четените блогове. След време започнах да получавам и покани да бъда лектор на международни конференции. Миналата година бях лектор на Selenium Conference India, което е най-популярната конференция в света за автоматично тестване. Щастлив съм, че предстои да говоря и на Appium Conference, също много мащабно събитие, което се провежда отново в Индия.

Вследствие на презентациите ми на различни събития, миналата година се свързаха с мен от Packt Publishing – една от най-големите издателски компании за техническа литература. Така в момента работя върху пренаписването на книгата “Selenium Design Patterns and Best Practices”. Това преди е било общо взето една от най-популярните книги за писане на автоматични тестове за web. Щастлив съм, че сега аз имам възможността да напиша нейна втора, актуална и напълно нова версия.

Освен писането на техническа книга, ти работиш и по интересна sci-fi история. За какво става въпрос в нея?

Да, в момента пиша една sci-fi книга за тестване и програмиране, която е в стила на “Пътеводител на галактическия стопаджия”. Писането на такива истории е занимание, което извършвам просто за удоволствие. Публикувам всяка глава на английски в блога си, който се чете от 30 000 души/месечно, а на български текстът е във Facebook профила ми. За момента имам 6 публикувани глави, вярвам, че след още толкова, това може да се превърне в книга, която да се разпространява, да кажем, в Amazon.

Интересното в историята е, че действието се развива далеч в Галактиката, като се разказват хумористично зададени казуси. Ситуацията е интергалактическа конференция за тестване, а всяка глава е отделна лекция от конференцията, разглеждат се различни казуси. Новата глава, която пиша в момента, е за това как се тестват вируси и soft skills нужди да бъдеш добър хакер – ето такива интересни и забавни неща.

Какво използваш в разработката на идеите си?

За разработване използвам .NET Core, като основно framework-ът ни е базиран на 3-4 библиотеки, които са спрямо стандартите в автономното тестване – Selenium Webdriver, Appium за Mobile тестване и Winappdriver, което е подобен аналог за тестване на Desktop приложения.

Какъв е трендът в избора на технологии за тестове?

Доскоро тестовете се изпълняваха на виртуални машини, а сега постепенно се преминава към света на Docker containers. Много често при автоматизацията на web проблемът е, че имаме много различни браузъри, които се ъпдейтват – за банков софтуер трябва да поддържаш 5-6 версии назад. Да не говорим, че при mobile е още по-ужасно заради всички версии на Android. Тук на помощ идват Docker containers със симулатори/емулатори на телефони.

Бих споменал и няколко трендинг tools. Например Selenoid – разработва се от руснаци и създава клаудове за Docker containers. Друго нещо, което също в момента интегрираме, са всички популярни готови контроли за различни уеб технологии, например за Blazor – новата технология на Microsoft за web. В момента пуснахме и съпорт за новото поколение Angular контроли.

В компанията проучваме малко по малко и Machine Learning, интересното около Azure, искаме да разработим умни решения за анализ на тестови резултати т.е. когато се изпълнят 1000 автоматични теста и имаме фейл, системата да може да каже дали това наистина е проблем на теста или е някакъв бъг в продукта. Подобни тулове има и сега, например visual тестинг, при който в автономни тествания можеш да си интегрираш техния engine. Така отново при фейл получаваш скрийншот, за да анализираш случващото се.

Миналата година се запознах с колеги от Украйна, които пък разработват интересен framework. В нашия трябва да зададеш локатор на дадения нужен елемент, докато тяхната библиотека чрез Machine Learning автоматично определя най-добрите локатори и ги поддържа. Общо взето следя такъв тип технологии много активно и определено е сфера на работа, в която гледам да навлизам по-скоро.

Кой е най-сложният код, който си писал?

Може би най-сложното нещо, което съм писал до този момент, е Distributed test runner-a ни MEISSA, за който споменах и по-рано. Това беше най-комплексната задача, на която съм попадал, защото имаше много многонишково програмиране на C#. Подобна бе и демонстрацията, която направих в Индия. При нея 100 000 теста на една машина могат да вървят в продължение на седмица, а с 10 машини с 8 ядра могат да се изпълнят за 20 минути. Това цялото нещо, за да се случи, трябва да се пуснат едновременно близо 150 процеса – и не говорим само за процесите, които пускат тестове, но и за управлението на резултатите, грешките, логването на данни. Беше много сложно от гледна точка на разбиране на този комплексен код.

Какъв е твоят съвет, ако искаме да запазим ума си свеж?

Всички си мислят, че щом имаш своя компания, всичко, което правиш е да кодиш по 12 часа на ден. Според мен трябва да цениш почивката си и тя да се използва, за да развиваш самия себе си, а не да играеш само бордови или компютърни игри, или пък да гледаш сериали. Но повечето ми колеги се забавляват само по този начин. Да, и аз го правя понякога, но според мен трябва да се четат книги. Старая се да чета по 2-3 книги на месец, които да са на различна от техническата тематика – социални или психологически. Комбинирам това с писане на sci-fi книга, рисуване или пък готвене. Това много помага да не се превърнеш в бот. 🙂

Интервюто проведе Вяра Стефчева.

Тагове: , , , , ,