Від Python до пайки: аналізуємо топскіли для Embedded QA

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Вітаю, спільното! Я Влад Величко, зі своїх 13 років у QA останні три працюю з Embedded-напрямом у SQUAD. Маю сертифікації ISTQB (Foundation Level, Advanced Test Analyst, Advanced Test Manager), а ще — досвід роботи на позиціях Support Lead та Project Manager.

Ділюся з вами дослідженням про найпопулярніші скіли Embedded QA, яке ми робили в SQUAD. У жовтні ми презентували результати на офлайн-події єТЕМА (запис можна переглянути на нашому YouTube-каналі), а в цьому матеріалі я наведу свіжі дані за третій квартал 2024 року.

Методологія дослідження та збір даних

Перед нами постали запитання: як залишатися в топі професійних профільних знань, які навички зараз мають найбільший попит та як зрозуміти, що потрібно розвивати? Отож ми взялися це дослідити.

Передусім потрібно було вирішити, де і що ми шукаємо, адже платформи IT-вакансій в Україні та США — різні. Наші локальні всім відомі: Djinni, DOU, LinkedIn. Серед топових американських платформ — той самий LinkedIn, Dice, Indeed, StackOverflow.

Оскільки нам необхідно було відокремити вакансії розробників від вакансій тестувальників, ми розглянули пошукові запити. Спочатку спробували «Embedded QA», але знайшли дуже маленьку кількість вакансій. Тож вирішили себе перевірити: ввели в пошук лише слово «Embedded» — й отримали вакансії Embedded QA, Embedded Tester, Test Engineer, QA/Quality Assurance Engineer.

Правильні запити допомагають нічого не пропустити, звузити результати пошуку та зменшити кількість нерелевантних вакансій. І ще один очевидний момент: деякі вакансії на платформах повторюються, тому потрібно пильнувати й відсіювати дублікати.

Сумарно вийшло близько 200+ вакансій. QA-позицій виявилося значно менше, ніж здавалось на перший погляд. Вакансій розробників було в рази більше. Проте, на мою думку, цього вистачило, щоб побачити загальну тенденцію на ринку.

Наступний етап — найвеселіший: переглядати те, що нафільтрували. Ви навіть не уявляєте, чого я там начитався. Знайшов, зокрема, й омріяну мною з дитинства позицію QA-космонавта.

Отже, діяв я таким чином: перечитував вакансії та їхні вимоги, а потім робив собі короткий конспект, записуючи посилання, компанію, позицію і необхідні навички. Тут хочу ще раз звернути увагу, що вакансії на різних платформах дублюються. Оскільки робота тривала не один день, а пам’ять у мене — як у браузера Google Chrome (має властивість закінчуватись), я проводив пошук за назвою компанії задля уникнення повторів. Якщо ж такі траплялися, то порівнював вакансії. Деякі компанії дійсно мали кілька різних пропозицій.

Після опрацювання всіх вакансій ідемо за конспектом і робимо табличку: скіл vs посилання. Рахуємо повтори кожної навички за посиланнями та сортуємо за їхньою кількістю.

Загальні результати дослідження та потреби ринку

Коли ми аналізували статистичні дані з обох ринків, найперше стала очевидною гостра потреба не просто в мануальних QA-інженерах, а в спеціалістах General QA.

Якщо коротко, General QA — це універсальний фахівець, який має ширшу експертизу. Можна сказати, QA 2.0. Він здатен виконувати не тільки мануальне, а й автоматизоване тестування: запускати готові скоупи, робити мінорні фікси й додавати автотести.

Перші три позиції переліку топових навичок підтверджують наше спостереження: мова програмування Python, розуміння CI/CD-процесів та досвід автоматизованого тестування.

Усі ми знаємо, що автоматизація на проєкті суттєво заощаджує час на регресійне тестування, дозволяє уникнути повторних ручних прогонів, які зазвичай затяжні. Завдяки автоматизації тести можна виконувати швидше і частіше, що забезпечує ефективніший контроль якості та прискорює процес розробки й виходу продуктів на ринок.

Далі за списком у нас класичні навички Embedded-тестувальника: розуміння роботи RTOS (операційних систем реального часу), включно з управлінням завданнями, таймінгами та синхронізацією. Знання Linux-дистрибутивів (наприклад, Yocto або Buildroot) дозволяє налаштовувати середовище, аналізувати логи та виконувати діагностику. Bash-скриптинг необхідний для автоматизації рутинних процесів, як-от запуск тестів чи збір даних. А володіння мовами C і C++ дає змогу глибше аналізувати код, писати низькорівневі тести та знаходити приховані проблеми.

До топу також потрапили навички, пов’язані з апаратним забезпеченням: взаємодія між залізом і софтом, знання мікропроцесорів та їхньої архітектури, вміння використовувати різні апаратні інструменти для тестування і читати електронні схеми.

Крім основних технічних знань, увагу приділяють і менш поширеним, але не менш важливим навичкам на кшталт обробки відео й зображень, RESTful API тощо. Це говорить про те, що спеціалісти в Embedded QA часто мають працювати на стику різних дисциплін і володіти широким спектром технічних знань.

Розглянемо глибше ці навички на ринках України та США.

Порівняння ринків України та США

Якщо коротко, все дуже схоже: ми відповідаємо світовим тенденціям і майже не відрізняємося від країн, які задають тренд. Навички, які мають попит у США, популярні й у нас. І це стосується не тільки QA-домену, а й IT загалом. Але є і певні відмінності.

Вакансії в США здебільшого орієнтовані на внутрішній ринок, тоді як українські, як правило, спрямовані на міжнародні ринки та аутсорс. Працюючи на зовнішні ринки, українські спеціалісти набувають досвіду в різноманітних проєктах, що може підвищити їхню цінність на ринку праці. Адаптивність і здатність до комунікації з командами з різних країн дає українським тестувальникам додаткову перевагу в міжнародній площині. Водночас у США кар’єрний шлях може бути чіткіше окресленим, але з меншими можливостями розвитку.

На відмінності у сфері Embedded QA впливає війна: стрімкого розвитку набуває miltech і все, що він передбачає, а саме — підвищені вимоги до знання апаратної частини, забезпечення надійності та безпеки комунікацій. Стають необхідними навіть такі навички, як пайка. Потреба в ремонті та підтримці апаратних компонентів у польових умовах вимагає від фахівців вміння швидко й ефективно виконувати такі завдання.

З цікавого у вакансіях, що не відобразиш на графіку:

  • США. Часто серед вимог до кандидата ледь не на першому місці — вища освіта в галузі комп’ютерних наук або інженерії.
  • Україна. У сфері QA формальна освіта не є визначальним фактором. Перевагу мають практичні навички, реальний досвід і безперервне навчання, особливо через тренінги та онлайн-курси.

Це показує, що для українських QA-фахівців важливіше бути в курсі актуальних технологій і методологій, ніж мати академічний ступінь. Таким чином акцент на практичному досвіді дає тестувальникам змогу швидше адаптуватися до змінних вимог ринку і залишатися затребуваними.

Підіб’ємо підсумки. Обидва ринки мають схожі тенденції та вимагають подібних навичок, але наші спеціалісти володіють, крім високого рівня професіоналізму, здатністю швидко адаптуватися. Та використовують нестандартні підходи попри нестабільність в умовах війни.

Актуальні ключові напрями Embedded QA

Для зручності ми обʼєднали та класифікували навички з основного списку за напрямами:

  • Automation skills
  • Networking / Connectivity skills
  • Hardware-related skills
  • QA domain & General skills

Розглянемо їх докладніше.

Automation skills

До них належать:

  • Уміння проєктувати та впроваджувати фреймворки автоматизації в тестування.

У деяких вакансіях йдеться про побудову процесу автоматизації з нуля або інтеграцію певного інструменту в проєкт, що вже існує.

  • Знання мов програмування, таких як Python, C/C++ або Java, які використовують для розробки автоматизованих тестових скриптів.

Як ми побачили зі статистики, вимога знати Python та С/C++ трапляється дуже часто. Але першість за Python. Java і С# — менш популярні. До речі, ще до дослідження ми у SQUAD взялися вивчати Python для власних внутрішніх потреб. Тоді це рішення було більш інтуїтивним. Зараз, коли є результати дослідження, маємо обґрунтування.

  • Розуміння, що таке Continuous Integration і Continuous Delivery та які їхні інструменти: Git, Jenkins, Make, CMake тощо.

Networking / Connectivity skills

Базові знання мереж:

  • Концепції багаторівневих моделей OSI та TCP/IP: що описують, які дані на різних рівнях.
  • Основні протоколи, такі як TCP (Transmission Control Protocol), UDP (User Datagram Protocol), HTTP/HTTPS, DNS, DHCP, FTP та інші.
  • Відмінності між дротовими (Ethernet) і бездротовими (Wi-Fi) мережами, їхня конфігурація та стандарти (наприклад, 802.11 для Wi-Fi). Вміння побудувати та налаштувати мережу.
  • Основи маршрутизації. Куди і як іде трафік. Як працюють мережеві пристрої. Тегований трафік і таке інше.
  • Безпека: використання VPN та firewall. Правила фільтрування та блокування трафіку, відкриті й закриті порти.
  • Інструменти: використання мережевих сніферів та аналайзерів. TCPdump/Wireshark тощо.

Connectivity:

  • Тестування окремих протоколів підключення та знання їхніх стандартів. Наприклад: Wi-Fi базується на стандарті IEEE 802.11. Потрібно знати основні версії, частоти, специфіку роботи (фізика), плюси й мінуси, де який краще використовувати.
  • Тестування пристроїв з паралельним/одночасним підключенням через декілька протоколів. Це процес перевірки й оцінки роботи пристроїв, які можуть підключатися та взаємодіяти з іншими пристроями або мережами через різні комунікаційні протоколи одночасно.
  • Connectivity-тести з використанням багатьох виробників і моделей роутерів. Interoperability. Наприклад: під час тестування Wi-Fі-підключення потрібно переконатися, що тестовий пристрій може під’єднатися до роутерів усіх виробників (адже в їхніх прошивках і протоколах підключення є певні особливості та нюанси).

Hardware-related skills

Тепер розглянемо апаратну частину. Щоб задовольняти запити ринку, фахівцям Embedded QA необхідні:

  • Базове розуміння електроніки й схемотехніки, принципів роботи радіочастотних (RF) схем, а також уявлення про поширення сигналів та модуляцію.
  • Розуміння роботи системи на чипі: від апаратної архітектури до операційної системи.
  • Глибоке знання мікроконтролерів, таких як STM32, Realtek, та досвід роботи з архітектурою Cortex.
  • Розуміння периферійних пристроїв (UART, SPI, I2C тощо) та їхньої інтеграції в системи.
  • Досвід роботи із SDK: Nordic nRF5/nRF Connect.
  • Вміння використовувати осцилографи, logic analyzers, мультиметри та лабораторні блоки живлення.
  • Базові навички пайки.

QA domain & General skills

Ну і, нарешті, останнє, але не менш важливе — «домен тестування». Бо хай які панують світові тренди, без бази нічого не вийде.

Сюди належать знання основ тестування (теорія та основні процеси), різні типи тестування (функціональне, регресійне тощо), методології розробки (Agile, Waterfall) і стандарти. А ще — процеси управління тестуванням, аналіз вимог, техніки тест-дизайну, написання тест-кейсів та знання життєвого циклу розробки (SDLC). Не менш важлива тестова документація: тест-плани, звіти й баг-репорти.

До базових вимог ми зарахували й знання з RTOS та Embedded Linux-дистрибутивів та RESTful API тестування (Postman, GET, POST, PUT, DELETE тощо).

Отож ми маємо список навичок — ідемо далі.

Пріоритезація навичок для компанії

Сформований список ми адаптували у SQUAD згідно з нашими потребами і пропустили через призму власних проєктів. Це дозволило точніше підлаштувати навички під наявні завдання та почати використовувати здобуті знання на практиці. Відповідно, для іншої компанії список може відрізнятися.

Результати дослідження ми розділили на два списки навичок. Деякі з них ми вже маємо, деякі потребують розвитку та покращення, а опанування інших — у процесі або заплановано. Менш важливі, на нашу думку, або дуже специфічні скіли відклали на потім, у другий список, як можливість для майбутнього розвитку.

Наведу приклад. Незважаючи на те, що в загальному топі лідирують С/C++, а Java — трохи нижче в списку, ми їх депріоритезували й підняли Java. Вона нам потрібна для проєктів, які вже в роботі. Важливо не тільки здобути нові знання, а й утримати їх. Якщо їх не використовувати, то вони просто забудуться.

Відтак ми провели голосування серед лідів нашого департаменту, щоб відсортувати скіли за важливістю. Нижче на зображенні — найзначущіші для нас навички. Чому всього 15? Бо треба з чогось починати. Навичок багато, але хапатися за все й одразу — значить не зробити нічого.

Побудова skill set матриці команди

Отож дослідження проведено, список навичок є. Наступний крок — оцінити, де ми знаходимось на шкалі сучасного Embedded QA. Для цього ми використали не новий, але перевірений часом інструмент — skill set матрицю.

Але чому саме її? Як ми будували skill set матрицю команди та оцінювали наших інженерів і інженерок? Та як, зрештою, ефективно використовувати здобуті знання в майбутньому?

Відповіді на ці питання можна знайти вже у виступі моєї колеги Каті Подлеснюк, QA Manager. Вона детально аналізує і демонструє, як це виглядає на практиці та скільки всього корисного можна взяти з цих знань.

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному4
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі