
Екатерина Кузманова, "Link Mobility България": Без бъгове в софтуера
Инженерът по качество на софтуера се чувства удовлетворен, когато продуктът се окаже “дуракоустойчив” и предпочитан от потребителите.
Разработката на софтуер става все по-сложна, експедитивна и конкурентна, като далеч не се изчерпва само с програмиране.
Както всеки друг пазарен продукт, така и софтуерните продукти, онлайн услуги и др. трябва да покриват определени стандарти за качество. За това отговарят QA инженери - своеобразни специалисти по качеството. За своята професия разказва Екатерина Кузманова, старши QA инженер в "Link Mobility България".
“Като малка рисувах много и исках да стана дизайнер… Което донякъде се случи, защото завърших средното си образование в техникум по облекло, специалност “Проектиране и конструиране на облеклото”. Малко по-късно обаче започнах да отделям доста време на компютърните игри и оттам дойде и интересът към информационните технологии, към които се насочих впоследствие,” споделя за себе си Екатерина.
Пътят, започващ със заседяване пред монитора като тийнейджър (често за ужас на родителите) обаче е в реда на нещата, като много специалисти от ИТ сектора споделят, че са се “запалили по компютрите” именно благодарение на видеоигрите.
“Образованието си започнах в Техническия университет в София, специалност “Компютърни системи и технологии”, след което продължих в НБУ с “Мултимедия и компютърна графика”. Първата ми работа, в сферата на ИТ, беше системен съпорт, след което потърсих ново предизвикателство като QA инженер. Работила съм в различни компании, разработващи проекти в областта на банкирането и телекомуникациите, за десктоп, мобилни и уеб платформи”, разказва Екатерина.
За ролята на QA инженера в софтуерната разработка чува от други хора и решава, че е интересно. По всичко личи че е права - интересно ѝ е вече 10 години.
Започва работа във фирма, в която се изисква френски език, за да се разбира техническата документация на проектите и преминаване на изпит за логическо мислене. Първата ѝ стъпка към новата професия е участие в програма за вътрешно обучение на новите служители.
***Статията е част от специалното издание "Моята Кариера", февруари 2024 г. Дигиталния брой изтеглете оттук >>
Технически умения и работа в екип
Екатерина започва професионалния си път в сферата на графичен дизайн и предпечат, още докато учи, след което се насочва към системната поддръжка, където сред най-ценните придобивки, по собствените ѝ думи, са натрупаният опит в работата в екип в голяма компания, както и шансът да ползва най-новите технологии. Според нея именно това ѝ дава увереност няколко години по-късно да завие в нова посока.
Образованието и опитът ѝ преди това, обаче, със сигурност помагат в новото начинание. По думите ѝ, освен чисто техническия аспект, работата на QA инженера включва изясняване на изискванията по отношение на продукта и разработване на план за тестване, спрямо тях, както и съобщаване за тези откритите проблеми обратно по веригата. Всичко това е свързано с работа с хора.
“Правилното приоритизиране на задачите, с цел спазване на крайните срокове, сътрудничеството с други екипи, когато това се налага, за да се изпълни конкретна задача, са ежедневните ми предизвикателства. Понякога се налага да тестваш нови функционалности, за които липсва необходимата спецификация и тогава трябва да приложиш добрите си комуникативни умения, за да събереш парчетата от пъзела”, подчертава тя.
Ръчни и автоматизирани тестове
Вероятно е редно да обясним какво точно се крие зад съкращението QA.
Тестването за осигуряване на качеството (quality assurance testing или накратко - QA) е жизненоважна стъпка в цикъла на разработка на софтуер. Ефективното тестване на софтуерни продукти разкрива дефекти и несъответствия, които могат да повлияят на реалното използване на софтуера. Когато всичко се извърши както трябва, QA тестването гарантира дълголетие на продукта, което спестява както време и пари на компаниите, така и главоболия на крайните потребители.
Накратко, може да се каже, че основната цел на QA тестването е да се провери дали продуктът отговаря на предварително заложените изисквания и спецификации. Вторична и свързана цел е да се гарантира, че разработчиците коригират всички проблеми и разминавания с планираното преди програмата или услугата да стане достъпна за клиентите.
Според Ектатерина денят на QA инженера, може да се опише така: провеждане на ръчни тестове за нови функционалности, проверка на производителността на софтуера, ежедневно осигуряване на качеството на кода с автоматизирани тестове, документиране на резултатите, както и описание и анализ на открити дефекти (т.нар. "бъгове") и правилната комуникация на тези проблеми в екипа.
Може би е удачно да се каже, че автоматичното тестване няма да замени ръчното тестване. Ръчното тестване се занимава с по-сложни случаи, докато на инструментите за автоматизирано тестване се поверяват по-прости и повтарящи се задачи.
При автоматизираното тестване тестовете се разработват и изпълняват посредством вече създаден софтуер (framework), като Selenium (за тестване на уеб приложения), Appium (с фокус върху мобилните приложения), JUnit (компонентно тестване с Java) и др. Необходима е постоянна актуализация, тъй като всяка малка промяна в потребителския интерфейс на тествания софтуер може да доведе до неуспешно изпълнен автоматичен тестови сценарий. Автоматизацията е предпочитана за сценарии, при които може да има регресия (regression testing), а ръчното тестване при постоянно променящи се изисквания, в началото на разработката.
Широк поглед и внимание към детайла
Добрият QA специалист, обаче, изпъква не само с технически опит. Важно е още да познава добрите практики и видове софтуерно тестване, както и да е добър комуникатор. Помага, когато той разбира целите на бизнеса и цялостния процес по разработка на продукт. Също така разработката на софтуерни продукти е все по-оптимизиран процес. Затова ключово умение е още правилното приоритизиране на задачите и възникналите проблеми, подчертава Екатерина.
“Ролята на QA специалистите е ключова, тъй като в днешния свят на постоянна пазарна конкуренция, подобряването на конкретен продукт, е жизненоважно за неговата успешна продажба, имайки предвид, че ИТ навлезе във всички аспекти на ежедневието ни, като здравеопазване, основно средство за комуникация, чрез социалните мрежи, начин за промотиране на стоки и услуги, към съответните целеви групи, онлайн банкиране, пазаруване, навигация, анализ на данни и т.н.”
ИТ наистина е навсякъде. Тестване на качеството не означава безразборно цъкане на екрана. Добрият QA специалист има познания по SQL (Structured Query Language) и бази данни, за различните техники за тестване на уеб, десктоп и мобилни приложения, познания в работата с тикетинг системи, като JIRA, опит в различните видове тестване като functional, UI, load, stress, performance, regression testing и т.н., както, разбира се базови знания и умения по програмиране.
Трябва да се подчертае, че тестването, само по себе си, не може да гарантира качество. Постигането на качество е отговорност на целия екип, който включва разработчици, бизнес анализатори, архитекти, както и разбира се - тестъри. В този смисъл автоматизираното тестване е критична част от цялостната стратегия по отношение на качеството, но винаги ще е налице нуждата от умни, съзнателни, креативни и отговорни тестъри.
Поглед напред и нагоре
Динамиката е синоним на ИТ сферата и за повечето работещи тя сред мотивите, които ги привлича към нея. Екатерина не е изключение. Допълва, че сред нещата, които ѝ носят удовлетворение, са още “възможността да работиш за различни проекти и в различни екипи с хора, от които има какво да научиш”.
Една от целите ѝ в бъдеще е да натрупа повече опит в автоматизираното тестване. В момента се занимавам основно с автоматизирано тестване на API (Application Programming Interfaces, приложно-програмни интерфейси) с JavaScript, което включва изпращане на заявки (requests) към определена крайна точка (end point) и валидиране на отговора (response-a).
“Идеята ми в бъдеще е да натрупам повече опит в изграждането на testing framework проекти, както и в автоматизацията на мобилни приложения, като използвам съвременни инструменти и техники.”
В ИТ сферата често определят програмистите и тестерите като “врагове”, шегува се Екатерина и допълва, че разработчиците на софтуер всъщност не винаги могат да бъдат добри тестъри.
“Като технически лица на тях често им липсва различната гледна точка към продукта и разбира се, вярват, че техният продукт е перфектен, което е съвсем нормално. Тук идва ролята на QA екипа, който трябва да може да се постави “в обувките” на крайния потребител, да изследва спецификите на продукта с различни сценарии, на различни операционни среди и понякога да е готов да спори, когато му кажат: “при мен работи”, казва специалистът.
Удовлетворена от работата се чувства, когато софтуерната разработка достигне продуктивна среда и във времето се продуктът се окаже достатъчно “дуракоустойчив” и предпочитан от потребителите.
“Тогава знаеш, че си си свършил работата добре”, заключва Екатерина.
Търсени умения за QA инженер
- разбиране на целите на бизнеса и на цялостния процес по разработка на софтуер
- познаване на добрите практики при софтуерното тестване (стандарти,
- дефинирани от International Software Testing Qualifications Board, ISTQB)
- базови знания по програмиране
- познания по SQL (Structured Query Language) и бази данни
- техники за тестване на уеб, десктоп, мобилни приложения и услуги
- познания в работата с тикетинг системи, като JIRA
- опит в различните видове тестване като functional, UI, load, stress,
- performance, regression testing и т.н.
- внимание към детайла
- правилно приоритизиране на задачите и възникналите проблеми
- владеене на английски език на писмено и разговорно ниво
Стартово заплащане
Между 1500 - 2000 лв. нетна заплата, зависи от компанията
