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).
  • Базово разбиране на различните типове тестове (black-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 (5)

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

  1. Eriberto Mayer says:

    I appreciate the advice you have given and the information you have supplied. In order to learn more, I’ll try to better grasp it. Play games at tiny fishing if you are finding games.

  2. Simon says:

    Shout out to Julianna from chi-nese for the Bulgarian-English translation. Благодаря ви за съветите!

  3. Pilgrimage Tour says:

    I’m overjoyed to have your post since it will be at the top of my list of favorite blogs. And Feel Free To Visit Us: Pilgrimage Tour Packages

  4. Janeth says:

    The level of complexity is much lower than that of back-end and front-end programmers compare to figuring out how hard is it to repair drywall. I hope it makes sense.

  5. Anonymous says:

    You will be taught by top teaching practitioners from the IT industry, with significant practical experience in the QA profession, sheetrock repair, and excellent lecturing skills.

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT