Menu

Nakov.com logo

Thoughts on Software Engineering

Цялостна програма за обучение на QA инженери в СофтУни: научи QA професията и започни работа

Много съм вдъхновен да разкажа на всички, че в СофтУни стартираме за пръв път в България цялостна задълбочена програма за обучение на QA инженери: manual QA + programming and software technologies + QA automation. Това е истински завършена цялостна образователна QA програма: от нулата до кариерен старт като junior QA (zero-to-career QA educational program).

Ето акцентите от новата цялостна QA обучителна програма в СофтУни накратко:

  • Започваш от абсолютната нула и след 5 месеца можеш да започнеш manual QA работа
  • След още 12 месеца ставаш junior QA automation професионалист – една от най-търсените професии в технологичната индустрия
  • Първият курс “QA Basics” е безплатен, за да може всеки да пробва без риск дали QA професията му харесва и му се отдава

Видео: Как да станеш QA инженер и да започнеш работа?

Презентация: Как се става QA инженер?

Най-задълбочената QA обучителна програма!

Това е най-добрата и най-задълбочената QA обучителна програма, за която аз знам. Повярвайте ми: търсил съм години наред и съм се интересувал доста от QA обучения по целия свят, разглеждал съм десетки академии и bootcamps за QA инженери и всичките дават само частични знания. Никога не съм попадал на друга истински задълбочена цялостна практическа образователна QA програма, която дава 100% от уменията за стартиране на работа като младши инженер по автоматизирано тестване на софтуера (junior QA automation engineer).

По разни академийки и сергийки за курсчета (тип Udemy и Coursera) се предлагат най-различни QA курсове по 2-3 месеца, но те са несериозни спрямо крайната цел. Абсолютно недостатъчни са 2-3 или дори 6 месеца учене и практика, за да може един начинаещ да се научи на manual QA + програмиране + софтуерни технологии (концепции + back-end + front-end) + software engineering + QA automation.

Виждал съм и друго: някои се опитват да преподават QA automation без стабилен фундамент в програмирането и софтуерните технологии, но това не работи! Пробвали сме го няколко пъти. Не можеш просто да научиш някого да ползва JUnit, Selenium и Appium, когато той си няма представа как работи едно уеб приложение, нито е запознат с протоколите за комуникация, базата данни, механизмите за автентикация и авторизация и т.н. В основата на QA automation са програмирането и познаването на съвременните софтуерни технологии и процеси за разработка (coding, back-end, front-end, OOP, data structures, string processing, databases, APIs, REST, HTTP, HTML, CSS, DOM, XPath, containers, cloud, source control, Git, CI/CD pipelines, agile development, Scrum и много други).

В резултат на дългогодишен опит в QA обученията и обученията на софтуерни инженери в СофтУни (в които участваха близо 300 000 души в последните десетина години) и научените уроци, стигнахме до извода, че за да станеш добър QA инженер, трябва да преминеш през задълбочена образователна QA програма, която включва програмиране, софтуерни технологии, manual QA и automated QA. Това не става бързо заради големия обем знания и умения, но индустрията търси QA automation инженери с дълбоки познания по програмиране и софтуерни технологии, отвъд владеене на QA automation инструментите.

Моят призив не е “ела да станеш QA за 3 месеца“. Това е подвеждащо и в повечето случаи невъзможно. Кадърен junior QA automation инженер се става за година-две (на бавна скорост, докато си работиш нещо друго или учиш във ВУЗ). Може и по-бързо, ако учиш в интензивна форма, но повечето хора не могат да си я позволят откъм време. За ориентир: QA инженер се става след едни 1000-1500 часа учене и практика.

Учебен план за QA инженери

Като ми каже някой “търся QA курс” или “кажи ми някой курс, който да изкарам и да стана QA” и веднага ми става ясно, че човекът и представа си няма с какво се захваща. Както лекар не се става с един курс по медицина, нито адвокат се става с един курс за юристи, така и QA инженер не се става с един курс за QA! Обемът на познанията и уменията на QA инженерите е огромен и не може да се усвои просто ей-така с един курс (както са примерно шофьорските курсове или курсовете за спасители на плажа). QA инженер се става с години учене и практика, не с месеци! Запомнете го от мен. По-добре подходете сериозно и отговорно, вместо да изкарате някое бързо QA курсче и да се чудите защо не може да си намерите работа след това.

В СофтУни сме лидери в технологичното образование и се целим високо. Ние не предлагаме поредния бърз QA курс, а нещо много по-ценно: цялостна, задълбочена, завършена, добре структурирана, практическа QA образователна програма от нулата до кариерен старт като QA, разработена след задълбочен анализ на пазарните изисквания от софтуерната индустрия и базирана на дългогодишен опит и доказана експертиза в ИТ образованието.

За да отговорим на търсенето на обучения за QA инженери, които да подготвят адекватно учащите за нуждите на технологичната индустрия и покриват напълно обявите за работа за junior QA позиции, в СофтУни създадохме цялостна QA програма с 1.5-годишен учебен план (с ниска интензивност), който се състои от 9 учебни курса, структурирани в 5 модула, които се взимат за 1.5 години (17 месеца). Учебният план описва какво ще учим в годините: учебни предмети и продължителност. Всеки учебен предмет от учебния план си има своя учебна програма, която описва изучаваните теми, упражнения, проекти и изпити (да не се бърка “учебна програма” с “учебен план”).

Модули от “Manual QA” професията

За старт в професията “manual QA engineer” са необходими базови знания и умения по QA (осигуряване на качеството на софтуера) и базово познаване на софтуерните технологии, използвани в съвременната софтуерна разработка. За да изградим тези manual QA умения в пълнота, в СофтУни започваме със следните няколко учебни модула за “Manual QA” професията:

Курсът QA Basics изгражда базови познания по manual QA и софтуерно тестване – запознаване с професията и основните активности, които manual QA инженерите извършват ежедневно на работа.

  • Познаване на основите и принципите на QA професията и процеса на софтуерно тестване (ръчно и автоматизирано), QA процеси, ролята на QA инженерите и QA практиките в жизнения цикъл от софтуерната разработка (SDLC).
  • Базово разбиране на различните типове тестове (balck-box and white-box, manual and automated tests, static and dynamic tests, functional and non-functional tests, regression tests и други) и нива на тестване (unit testing, integration testing, UI testing, end-to-end testing, system testing, acceptance testing).
  • Познаване на концепциите за създаване и изпълнение на тест сценарии и тест кейсове (test scenarios and test cases) и описание на стъпките за извършване на тест (test design), входни и изходни условия и проверки.
  • Ръчно изпълнение на функционални тестове и докладване на резултатите.
  • Познаване на концепцията за бъг (грешка в софтуера). Умения за откриване, анализиране и описване на бъгове. Умения за работа с бъг тракинг системи (Jira, GitHub Issues и други) и проследяване на бъговете в техния жизнен цикъл.

Всичко това се учи в безплатния курс “QA Basics” в СофтУни. С него всеки начинаещ може да се докосне до QA професията, да усвои базови познания и начални умения за работа с test cases и bug reporting и най-вече да разбере за себе си дали QA професията му харесва и дали би я работил с удоволствие години наред.

Курсът Software Technologies Fundamentals дава базови познания по компютърни и софтуерни технологии, софтуерна разработка и методологии за разработка. За да тестваш софтуера в процеса на софтуерна разработка, трябва да разбираш как работи той и какво правят програмистите, DevOps инженерите и останалите участници в екипа.

  • Компютърни системи и технологии, хардуер, операционна система, системен и приложен софтуер.
  • Работа с различни операционни системи: Windows, Linux, macOS, Android, iOS.
  • Компютърни мрежи и Интернет и протоколи за комуникация в Интернет: IP, TCP, HTTP, DNS, SMTP, IMAP, SSH.
  • Запознаване с езици програмиране и платформи за разработка: JavaScript, Python, Java, C#, HTML, CSS.
  • Запознаване с Git и GitHub и концепцията “хранилище за код с контрол на версиите”.
  • Софтуерни архитектури: back-end и front-end технологии, бази данни.
  • Запознаване с концепциите “контейнери“, “облачни платформи и технологии” и DevOps.
  • Запознаване с принципите на софтуерното инженерство и жизнения цикъл на софтуерната разработка (SDLC).
  • Запознаване със съвременните гъвкави методологии за разработка (Agile, Scrum, Kanban).

Курс QA Fundamentals and Manual Testing надгражда наученото в курса “QA Basics” с фокус върху ръчното тестване и някои концепции от QA професията, които не са обхванати в началния курс.

  • Техники за дизайн на тестове (test design): статични и динамични тестове, black-box и white-box техники, разделяне на еднотипни случаи (equivalence partitioning), тестване по границите (boundary value analysis), таблици за взимане на решение (decision tables), анализ на състоянията и преминаването между тях (state transition) и други.
  • Управление на QA и тестовия процес: планиране на тестовете, тестов план (test plan) и график, оценка на усилията (test estimation), стратегия за извършване на тестове (test strategy)
  • Проследяване и контрол на тестовия процес: проследяване на напредъка, тестови метрики и доклади, контрол на тестовия процес, управление на активите, управление на риска.
  • Инструменти за тестване: тест мениджмънт инструменти, инструменти за менажиране на изискванията, контрол на активите и версиите, инструменти за статично тестване на статичен анализ, инструменти за ревизиране (reviews), инструменти за изпълнение на тестове, логване на резултатите и генериране на отчети и други.
  • Практически manual QA проект: включва цялостно планиране и изпълнение на тестовия процес, създаване на тестов план, анализ на риска, дизайн на тестови сценарии и тестови случаи, изпълнение на тестовете (ръчно), докладване на намерените бъгове в бъг тракер система, изготвяне на отчет с резултатите от тестване и други активности.

След завършване на модулите от “Manual QA” професията (след около 5 месеца), по-силните студенти ще могат да си намерят работа като manual QA инженер с тенденция за automation QA.

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

Работа като manual QA + паралелно учене за automation QA е отлична възможност, но поради по-ниското търсене на manual QA, тя е само за най-силните студенти. Фирмите са претенциозни и не назначават на работа всеки, който е чувам за QA и знае какво е бъг и как се логва в bug tracking системата. Изискванията са високи и затова програмата на СофтУни за подготовка на QA инженери е продължителна.

За “manual QA” професията не се издава диплома, тъй като “manual QA” е всъщност е само част от професия, а не е цялостна и завършена професия. Дипломите на СофтУни се дават за доказани задълбочени и завършени набори от умения в най-търсените професии от технологичния свят.

Модули от “Automation QA” професията

“QA Automation” професията изисква задълбочени познания по разработка на софтуер, софтуерни платформи и технологии и концепции и инструменти за автоматизирано софтуерно тестване на различни нива и с различни технологични инструменти:

  • Познания по програмиране: писане на код, среди за разработка, обектно-ориентирано програмиране (ООП), функционално програмиране (ФП), структури от данни (масиви, списъци, речници и други), обработка на текст и регулярни изрази, работа с външни библиотеки, комуникация с Интернет, работа с различни формати за данни (text, JSON, XML, CSV, Excel, PDF).
  • Познания по софтуерни технологии: front-end и back-end софтуерна разработка, бази данни и SQL, ORM frameworks за достъп до бази данни, програмни интерфейси (APIs), протокол HTTP, уеб услуги и REST, потребителски интерфейси, HTML и CSS, моделът DOM в уеб браузърите, адресиране на елементи с XPath и CSS селектори, сървърна уеб разработка и MVC frameworks.
  • Владеене на съвременни DevOps практики: работа с Docker контейнери и cloud платформи, работа със source control системи, Git и GitHub, непрекъсната интеграция и непрекъсната доставка (continuous integration and continuous deployment), изграждане на CI/CD pipelines.
  • Познания по софтуерно инженерство: цикъл на софтуерна разработка (software development lifecycle – SDLC, софтуерни изисквания, софтуерни архитектури, софтуерна имплементация, софтуерно тестване, софтуерна доставка, софтуерна поддръжка), работа с Git, GitHub и сорс контрол системи, branching, pull requests, код ревюта, управление на софтуерни проекти и гъвкави методологии за разработка (agile development, Scrum, Kanban).
  • Задълбочени познания и много практика по автоматизирано тестване на софтуер: писане на unit тестове и mocking на външна функционалност, работа с различни testing frameworks, подходът data-driven testing, писане на integration тестове с различни инструменти и технологии, изграждане и поддръжка на тестова среда за изпълнение на автоматизирани тестове (dev среда, test среда, staging среда и production среда), API testing с Postman или програмен HTTP client, Web service testing, тестване на потребителски интерфейси и Web UI testing, тестване на мобилни приложения (mobile testing), работа с testing cloud platforms, технологии, инструменти и подходи за цялостно тестване на софтуерни системи от край до край (end-to-end testing).

Ето как в СофтУни покриваме всичко изброено по-горе за около 1 година (в неинтензивна форма, на бавна скорост, като за работещи хора), чрез трите професионални модула от специализацията за “Automation QA” инженери:

Може би всичко това ви се струва твърде много за junior QA, нали? Всъщност фирмите имат огромни изисквания, дори към junior QA кандидатите. Такъв е пазарът. В годините изискванията за старт в QA професията плавно нарастват. По-добре да сте подготвени на максимум, вместо да се оплаквате, че фирмите не ви дават работа. Трябва да се адаптирате към пазара, а не той към вас.

Колкото повече от изброените по-горе концепции, инструменти и технологии владеете, толкова по-голям е шансът да започнете първата си QA работа! Моят съвет е да се стремите към максимума, така че дори да не го достигнете, пак да сте на ниво. Това е целта на цялостната QA automation обучителна програма на СофтУни: да ви даде цялостна, задълбочена подготовка за QA професията, с много практика, така че да стартирате QA работа с лекота. Ако отделите достатъчно време и внимание и следвате старателно нашата QA обучителна програма, със сигурност ще научите QA професията и ще стартирате технологична кариера като QA специалист.

В модула “Programming for QA” курсистите усвояват основите на програмирането, структурите от данни, ООП и писането на компонентни тестове (unit tests). Той е разделен на два курса:

  • Programming Basics and Unit Testing: обхваща основите на програмирането, работа със среда за разработка, писане на код, конструкции за управление, if-else, цикли, методи (функции), писане на компонентни (unit) тестове, работа с unit testing frameworks, тестване на проста програмна логика, работа с базови структури данни като масиви и списъци, компонентно тестване на класове и структури данни, както и принципи и концепции за автоматизирано тестване и automated testing frameworks.
  • Programming Fundamentals for QA: надгражда базовите умения по програмиране на QA automation инженера с по-сложни концепции от програмирането, работа с речници и асоциативни масиви, ламбда функции и поточна обработка на данни, стрингове и регулярни изрази, работа с класове и обекти, обектно-ориентирано програмиране (ООП), наследяване, интерфейси и йерархии от класове, клас диаграми и тестване на всичко това. В този курс се включва и запознаване на концепцията за “сорс контрол системи”, хранилища за код, работа с Git и GitHub, взаимодействие в екип и контрол на версиите в софтуерната разработка.

В този модул ще работим с езика C#, платформата .NET и средата за разработка Visual Studio, както и с automated testing библиотеки и технологични рамки от .NET екосистемата, като NUnit, SpecFlow, RestSharp и други. Специално обръщам внимание, че учим QA automation концепции и езикът за програмиране няма съществено значение. Избрахме C#, защото е лесен за учене, добре структуриран, и много подходящ за начинаещи. В Бъдеще можете лесно да ползвате Java, Python или JavaScript вместо C#, за да пишете автоматизирани тестове по аналогия на каквото сме учили със C3.

В модула “Back-End Test Automation” студентите се запознават с back-end разработката (бази данни, ORM технологии, сървърни уеб технологии, Web APIs, Web apps, MVC) и техники и инструменти за автоматизирано back-end тестване (integration and API testing). Модулът се състои от два курса:

  • Back-End Technologies Basics: запознава бъдещите QA automation инженери с технологиите за back-end (сървърна) разработка, бази данни и SQL, ORM frameworks, работа с данни и файлови формати (XML, JSON, YAML, Excel, Word, PDF, ZIP), работа с back-end Web MVC frameworks и изграждане на прости web apps, работа с Docker, containers и cloud среди.
  • Back-End Test Automation: дава практически умения за тестване на back-end приложения, уеб услуги, integration testing, API testing, Web service testing, data-driven testing, behavior-driven development и BDD testing, тестване за производителност (performance testing), тестване на сигурността (penetration testing), непрекъсната интеграция (CI) и изграждане на CI/CD pipeline.

В модула “Front-End Test Automation” студентите се запознават с front-end разработката и UI технологиите (HTML, CSS, JavaScript, DOM, AJAX) и техники и инструменти за автоматизирано UI тестване (като Selenium и Appium). Модулът се състои от два курса:

  • Front-End Technologies Basics: запознаване с уеб front-end технологиите (HTML, CSS, JavaScript, DOM), unit testing в JavaScript, запознаване с HTTP, AJAX и REST, изграждане на single page apps с REST-базиран back-end, автоматизирано тестване в браузъра, запознаване с технологии за изграждане на desktop apps и mobile apps.
  • Automated UI Testing: задълбочено практическо изучване на Web UI testing, Selenium WebDriver и подхода POM (Page Object Model). Тестване на desktop и mobile apps с Appium. Цялостно тестване от край до край (end-to-end testing) на софтуерни системи. Изграждане на CI/CD система за автоматизирано тестване на Web, mobile и desktop приложения.

Защо да уча за QA?

  • Професията “QA инженер” е доста търсена професия. Към октомври 2022 г. в LinkedIn има 523K отворени QA позиции. Според подбрани обяви в dev.bg в българската софтуерна индустрия към октомври 2022 г. има около 350 отворени QA позиции. За сравнение, това е повече отколкото се търсят C# програмисти, Python програмисти, C++ програмисти или PHP програмисти. Единствено Java и JavaScript се търсят повече от QA в България.
  • Топ заплащане – заплащането за QA automation engineer е подобно на Java developer и JavaScript developer. Според Glassdoor и PayScale към октомври 2022 г. средната заплата на QA engineer в България е около 2000 лв. / месец. При senior QA automation средната заплата е 4000 лв. (към октомври 2022 г.) При по-опитните QA специалисти (например QA team lead) заплащането може да достигне и 5-цифрени суми.
  • Бърз кариерен старт: само 5 месеца след старта на обучението в СофтУни можете да започнете работа като junior QA (manual testing) инженер. Имайте предвид, обаче, че manual QA се търси все по-малко и за да започнете QA работа с лекота, трябва да овладеете QA automation професията, която изисква много повече време и усилия (още 1 година на бавно темпо).
  • QA се става по-лесно от програмист: овладяването на QA професията е много по-бързо и по-лесно от програмист. За да станеш junior software developer, ще ти отнеме 2 години учене и практика на ниска скорост или поне година интензивно учене. При QA професията може да започнеш работа само след няколко месеца, а степента на сложност е доста по-ниска отколкото при back-end и front-end програмистите.

Защо QA Automation?

Ако някой е решил да става QA инженер, трябва да знае, че това на практика означава QA automation специалист, което в най-общи линии означава програмист, който пише автоматизирани тестове. Защо QA automation, а не manual QA? Много е просто. Вижте обявите за работа. Към 10/2022 г. над 75% от отворените позиции за QA инженер изискват QA automation, т.е. автоматизация на процеса по осигуряване на качеството на софтуера чрез програмиране.

В днешно време когато някой каже “QA engineer“, се подразбира “QA test automation engineer“. Софтуерната индустрия изисква автоматизация в софтуерното производство. Съвременните подходи за софтуерна разработка използват DevOps практики, инфраструктура като код, контейнери, cloud технологии и автоматизирани системи за непрекъсната интеграция и непрекъсната софтуерна доставка: CI / CD pipelines. В ядрото на тези continuous integration & continuous delivery системи стои автоматизираното тестване на софтуера: unit tests, integration tests, UI tests, end-to-end testing. Съвременните QA инженери са отговорни за качеството на софтуера и процеса на разработка и изграждат и поддържат QA инфраструктурата и CI/CD процесите.

Как да стана QA инженер?

Най-лесният път да станеш кадърен QA инженер и да започнеш работа като QA, е през цялостната програма за практическо обучение на софтуерни инженери в СофтУни:

https://softuni.bg/qa/curriculum

Запиши се да учиш QA сега! Стартирай с безплатен QA курс в СофтУни. Опитай дали е за теб, дали ти харесва, дали ти се отдава.

Без риск: пробвай безплатно. Ако ти хареса, продължаваш. Ако не ти хареса, поне си пробвал и няма често да си казваш “ех, навремето можеше и аз да стана един QA като ей-този мой приятел и щеше да ми се подреди добре живота…“. От тебе зависи! Инвестирай в себе си!

https://softuni.bg/qa/apply

Другият вариант е да станеш QA инженер сам, като се обучаваш по книги, онлайн ръководства, курсове в YouTube или Udemy. Възможно е, но ще ти отнеме много повече усилия и ще ти е много по-трудно. Хубаво е да си намериш някой да те води по пътя (опитен QA / приятел / колега), защото материята е обемна и трябва да учиш и практикуваш отделните умения в определена последователност. Ако учиш сам, намери си онлайн QA общности, в които да се присъединиш. Практикувай test automation и трупай история в GitHub профила си (научи повече от статията “Как да започна първата си ИТ работа?”).

Защо да кандидатствам в QA програмата на СофтУни?

  • Няма риск: започваш с входния QA Basics курс, който е напълно безплатен. Пробваш без пари. Ако ти хареса продължаваш.
  • Звезден преподавателски състав: ще ти преподават топ преподаватели-практици от IT индустрията, със значителен практически опит в QA професията и отлични лекторски умения.
  • Учебен план без алтернатива: СофтУни предлага най-задълбочения учебен план за изграждане на реални практически умения в QA професията, с отлично разработени учебни материали, задачи, домашни и проекти.
  • Активна учебна QA общност: със записването си в QA обученията в СофтУни, ставаш част от огромна и будна общност за споделяне на знания и опит, където общуваш с колегите си всеки ден.
  • Менторство: ползваш индивидуална помощ от ментор в усвояване на учебния материал. Имаш въпрос -> пишеш -> получаваш отговор.
  • Топ работодатели: СофтУни указва кариерно съдействие за стартиране на работа в над 100 водещи технологични компании.
  • 17K вече започнаха работа: над 17 000 студента вече придобиха технологична професия в СофтУни и започнаха работа в ИТ сектора. разгледайте техните профили в SoftUni LinkedIn Alumni.

Какво чакаш? Запиши се да учиш за QA още сега, безплатно! Стани QA инженер и започни работа в технологична компания. Инвестирай в себе си. Овладей QA професията: която ще ти даде интересна работа, непрестанно развитие, удовлетвореност, високи доходи и висок стандарт на живот. Организираме нов безплатен QA курс на всеки няколко месеца.

Инвестирай в своите умения, за да имаш топ професия за много години напред!

Comments (1)

One Response to “Цялостна програма за обучение на QA инженери в СофтУни: научи QA професията и започни работа”

  1. 1v1 lol says:

    It proved to be Very helpful to me and I am sure to all the commentators here!

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT