Пропустити навігацію EPAM

"Мій основний стек - Java, але доводилося використовувати Python і JavaScript": що потрібно знати QA Automation Engineer у 2022 році. Досвід EPAM

Олена Гаращук

Lead Software Test Automation Engineer
Думка експерта
  • JavaScript
  • Automated Testing
  • Java

Часи, коли тестування програмного забезпечення зводилося до банального пошуку багів, давно минули. Вимоги до забезпечення якості продуктів розробки змінюються, і це є потужним стимулом для трансформації QA як дисципліни.

Звіт MarketsAndMarkets прогнозує, що до 2024 року ринок автоматизації зросте більш ніж удвічі проти 2019-го, а його обсяг сягне $28,8 млрд.

Розберімося, на які актуальні тренди автоматизації тестування варто звернути увагу.

Security та penetration testing

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

У чому особливості security та penetration testing? У контексті проєктування системи pentest є частиною security-тестування. Тобто певні аспекти безпеки, такі як проєктування моделі загроз, Secure SDLC, закладаються безпосередньо в архітектуру майбутньої системи. В такому разі Pentest може стати частиною стратегії тестування: покриватись автоматизованими тестами та виконуватись на регулярній основі.

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

Від Test Automation Engineer - до QAOps

Помилкою було б вважати, що спеціалізація QAOps (quality assurance + software operations), яка поєднує в собі автоматизацію процесів тестування та задачі DevOps, є зовсім новою, адже хмарні обчислення з'явилися не вчора.

Бути досвідченим тестувальником-автоматизатором означає бути добре обізнаними у сфері хмарних технологій. 

А це, своєю чергою, означає вміти налаштувати кластер, розгорнути у ньому застосунок і підготувати необхідну для роботи інфраструктуру. Проводячи інтерв’ю з фахівцями на проєкти ЕРАМ, ми звертаємо увагу на їхнє вміння працювати з Docker, Kubernetes і на знання особливостей хмарної інфраструктури. Знання цих технологій дозволяє виконати завдання значно швидше та без залучення DevOps-фахівців, яким щоразу доводиться вивчати особливі деталі проєкту та використовуваного інструментарію.

Автоматизація всього процесу тестування

Цей тренд стосується всього циклу тестування: від створення тест-кейсів до звітності. Поясню на прикладі: фахівці з ЕРАМ нещодавно створили новий цікавий та ефективний інструмент – акселератор Drill4J (інструмент з відкритим вихідним кодом, а це означає, що розробкою можуть скористатися всі, кому вона потрібна в роботі). Він запускається при старті програми та відслідковує частини коду, що викликаються. Таким чином агент автоматично збирає метрики та після закінчення мануальних тестів або прогону автотестів надсилає їх результати на аналітичний портал для формування звіту. Цей інструмент дає змогу відстежити, яку частину коду було покрито виконаними тест-кейсами. Крім того, він автоматично генерує інформацію не тільки про наявність помилки, але і про її параметри, місце та умови, за яких вона була виявлена. Так додаток формує дебаг-репорт для розробника. Це значно спрощує роботу девелоперів та економить час команди.

Штучний інтелект та машинне навчання

Тут мова йде, в першу чергу, про майбутню перспективу. Очікується, що широке застосування штучного інтелекту для автоматизації в майбутньому дозволить оптимізувати тест-стратегії та перейти до безперервного релізного циклу. Але машинне навчання – нішева технологія, яку не можна застосувати до всіх проєктів. Наприклад, у тестуванні API, роботі з базами даних чи будь-якими іншими проєктами, де важлива швидкість виконання, машинне навчання – не панацея. Адже роботу для навчання потрібен час — тільки після нього він зможе виконувати монотонну роботу значно швидше за людину.

Вдалий приклад ефективного використання цієї технології — внутрішній Report Portal нашої компанії.

Впровадження машинного навчання дозволило скоротити час аналізу звітів у середньому із шести годин до 20 хвилин.

Java в автоматизації тестування

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

Багатьох початківців серед Java-автоматизаторів відлякує високий поріг входження (в порівнянні з JavaScript або Python). Втім, потреба докласти більше зусиль на старті компенсується ширшими можливостями в майбутньому. Але майте на увазі, що на певному етапі кар'єри однією мовою вам все одно не обійтися.

Мій основний стек - Java, але працюючи з Azure, доводилося дописувати скрипти на Python, тоді як з Selenium доводиться застосовувати JavaScript.

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

Підписатися на новини

Чудово! Ми вже готуємо добірку актуальних новин для вас :)

Вибачте, щось пішло не так. Будь ласка, спробуйте ще раз.

*Будь ласка, заповніть обов’язкові поля

Вакансії EPAM Ukraine у Київ | Львів | Харків | Дніпро | Вінниця | Івано-Франківськ | Одеса | Чернівці | Хмельницький | Рівне | Ужгород | Тернопіль | Луцьк за напрямком Java | JavaScript | .NET | DevOps | Experience Design | Software Testing | Business Analysis | Python| Big Data | Mobile | Solution Architect | Ruby on Rails у містах за напрямком Java вакансії Київ | Java вакансії Харків | Java вакансії Львів | Java вакансії Вінниця | Java вакансії Одеса | Java вакансії Івано-Франківськ | Java вакансії Чернівці | Java вакансії Хмельницький | Java вакансії Рівне | Java вакансії Ужгород | Java вакансії Тернопіль | Java вакансії Луцьк | JavaScript вакансії Київ | JavaScript вакансії Харків | JavaScript вакансії Львів | JavaScript вакансії Вінниця | JavaScript вакансії Одеса | JavaScript вакансії Івано-Франківськ | JavaScript вакансії Чернівці | JavaScript вакансії Хмельницький | JavaScript вакансії Рівне | JavaScript вакансії Ужгород | JavaScript вакансії Тернопіль | JavaScript вакансії Луцьк | DevOps вакансії Київ | DevOps вакансії Харків | DevOps вакансії Львів | DevOps вакансії Вінниця | DevOps вакансії Одеса | DevOps вакансії Івано-Франківськ | DevOps вакансії Чернівці | DevOps вакансії Хмельницький | DevOps вакансії Рівне | DevOps вакансії Ужгород | DevOps вакансії Тернопіль | DevOps вакансії Луцьк