Go to Top

Автоматизирано тестване, перспективи за кариерно развитие!

В днешните времена, когато всичко е бързо – от развитието на софтуера до пазаруването по интернет, ако сте ръчен софтуерен тестер или сте се замислили за QA кариера, е все по-важно да имате поне някои основни познания за автоматизираното тестване. Нормално е да възникнат въпроси от къде трябва да започнете, когато предприемате първите (или следващите) стъпки по пътя си да станете по-опитни в автоматизираното тестване.

Обикновено тези въпроси са от рода на „какъв инструмент за тестване да избера да науча първо?“, „Да се самообучавам или да се запиша на курс по автоматизирано тестване?“ или „Какъв език за програмиране трябва да науча?“.  Няма един верен или най-верен отговор на тези въпроси. Зависи от вашите индивидуални способности, предпочитания и интереси. Статията тук представлява/представя една добра пътека за обучение по автоматизирано тестване на всеки, които иска да стане добър (или по-добър) професионалист в тази област.

От практиката и според мнението на опитни и успешни инженери или QA Automation Engineer, какъвто е термина на английски, успешния професионалист трябва да има солидни познания в различни области.

Тестване на софтуер

Автоматизираното тестване се изпълнява чрез скриптове и софтуерни инструменти, които помагат на тестерите да извършват по-ефективно своите дейности по тестване на софтуера. Така че, ако искате да научите как да бъдете специалист по автоматизация на тестовете, ще трябва да имате солидно разбиране за това какво е софтуерното тестване (ръчно или автоматизирано) и как се извършва. Само тогава може да вземете информирано решение за това с кои части от спектъра на софтуерните дейности бихте искали да се захванете.

Ако трябва да определим кой от двата подхода е по-добър и по-ефективен, едва ли има правилен отговор. И двата вида тестване, са приложими в различни случаи, в зависимост от различни фактори като бюджет, изисквания на проекта, ресурси, времеви график, цели, експертиза и структура на проекта.

И в двата метода – automation и manual, се обхващат специфични типове тестове като integration testing, system testing, performance testing и load testing. Въпреки това, някои от тези видове тестове са по-добре изпълними при ръчен подход, а други – с автоматизация.

За препоръчване е да се запознаете с курсовете, които предлага Компютърно образователен център Progress като курсът по „Софтуерно тестване“ или обучението по „Автоматизирано тестване“, където се предлагат чудени възможности за хора, които искат бъдеще в кариерата на софтуерен тестер (или QA експерт).

Разработка на софтуер

При автоматизираното тестване, тестовият процес се извършва посредством софтуер и скриптове. Така, че може да се каже, че само по себе си то е разработка на софтуер, тъй като създавате софтуер, който да ви помогне да тествате по-добре и по-ефективно. За тази цел, трябва да разбирате и да имате познания за параметри, методи, променливи и контролни структури.

Още по-добре би било, ако сте в състояние да четете и разберете кода на приложението, така че да можете да обсъдите неговата функционалност с разработчиците, които са го създали, или да намерите основната причина за дефекта, който е докладван от тестващия софтуер или скриптове.

И ако искате вашият тестов код за автоматизация да бъде добре структуриран и поддържан, вероятно е добра идея да познавате добре четирите основни принципа  на обектно ориентираното програмиране – ООП (капсулиране, наследяване, полиморфизъм и абстракция) и как прилагането им може да ви помогне да създадете по-високо качество на автоматизация на тестовия код.

Дори когато всъщност не се налага да пишете кода за автоматизация на теста, знаейки как да приложите ООП модели и принципи, бихте могли да създадете по-добър код за автоматизирано тестване, който е по-лесен за поддръжка в последствие.

Повечето съвременни езици за програмиране са ООП езици, така че наистина няма голямо значение точно кой от тях трябва да научите. Java е от най-добрите избори, но и да знаете друг, например С# или Python, ще бъде изненадващо лесно да превключите от един на друг. Разликата е в синтаксиса и особеностите на IDE, което се ползва за съответния език.

Стратегия за автоматизация на тестовете

Често причината за провалили се проекти е липсата на солидна стратегия за автоматизация на тестовете. И въпреки че „стратегия“ може да звучи като „много документация и срещи“, не е нужно да е така. Добро начало би било да намерите отговор на тези въпроси:

  1. Защо искаме да приложим автоматизирано тестване (какъв проблем се опитваме да решим)?
  2. Какво ще автоматизираме (кои тестове и видове тестове)?
  3. Кой ще създаде и поддържа автоматизираното тестване (и има ли подходящите умения)?
  4. Кога ще се създадат и проведат нашите тестове (и как да се уверим, че има достатъчно време?)
  5. Как ще приложим нашите тестове (това включва, но определено не се ограничава до това кои инструменти ще бъдат използвани)?

Ако искате да избегнете неуспехите, които сте имали в миналото, силно ви съветвам да отделите време и първо да намерите начин да намерите отговори на по-горе зададените въпроси и след това да действате по съответния начин.

Инструменти за автоматизация на тестове

Ако искате да станете наистина добър специалист по автоматизирано тестване, би било изключително полезно за вас да научите и знаете повече от един език за програмиране и повече от един инструмент за софтуерно тестване. Практиката и личния опит показват, че когато научим добре по един език и инструмент, научаването на всеки следващ отнема все по-малко време и усилия.

курс по автоматизирано тестване

Колкото и да изглежда престижно да бъдете „експерт“ по Selenium WebDriver и Java, въпреки че тяхното познаване е абсолютния минимум за професионалистите, бъдете по-гъвкави и научете още поне по един език и инструмент. Никога не знаете какво ще изисква следващият ви проект или работа.

Има много курсове, фокусиращи се върху инструментите за тестова автоматизация и програмните езици.   Единственото нещо, което мога да препоръчам, когато избирате  курс, е да разберете (попитайте!) дали курсът също покрива основните принципи и модели на ООП, или просто ви учи да извършвате трикове с определен инструмент за автоматизация. Ако се затруднявате сами да вземете решение, не се колебайте за потърсите информация и съвет от  www.progressbg.net.

Инженеринг на автоматизация на тестовете

Не на последно място, смятам, че обучителния път на добрия специалист по автоматизирано тестване трябва да мине през запознаване и опит с инструменти и концепции, които надхвърлят създаването на автоматизирани проверки. Автоматизираното тестване е много по-широко понятие от „просто“ тези проверки. Някои примери за инструменти и концепции, с които също трябва да се запознаете са:

  • Build tools and packages/ dependency managers (Maven или Gradle за Java или NPM за Node.js)
  • Системи за контрол на версиите – Version control systems – VCS (Git, TFS, Bitbucket, GitHub, …)
  • Платформи за непрекъсната интеграция –  Continuous Integration platforms (Jenkins, GitLab, …)
  • Инструменти за виртуализация и за за симулации на API – Mocking / stubbing / service virtualization tools (WireMock, Hoverfly, …)

Списъкът може да бъде продължен. Във всеки даден проект за автоматизирано тестване е вероятно да се наложи да използвате поне един от тези видове инструменти и следователно има смисъл да се запознаете с тях.

Доста са нещата, от които трябва да разбира един специалист по автоматизирано тестване. Но не сме твърдели, че този кариерен път е лесен или нещо, което ще научите след ден-два. По-скоро ще бъде пътуване през целия живот…, но си струва! Погледнете в обявите за работа и сами ще се уверите.

 

Leave a Reply

ЧАСТ ОТ НАШИТЕ ДОВОЛНИ КЛИЕНТИ

ВИЖ ПОВЕЧЕ