Порадьте яку мову програмування обрати для переходу в automation testing?
Працюю майже 2 роки Manual QA. Хочу перейти в автоматизацію, трохи знаю Java і писала автотести на ній (навчальний проєкт). Хотіла б автоматизувати не тільки UI, а й API. Чи є сенс продовжувати вчити Java та автоматизувати на ній, або краще обрати якусь іншу мову? Дякую за пораду.
19 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівВраховуючи Ваш наявний досвід і навчальний проєкт на Java, є сенс продовжувати вивчати Java, оскільки вона є домінуючою мовою у великих корпоративних проєктах та має потужні
фреймворки (Selenium для UI та Rest Assured для API)
Раз ви вже в ІТ то по досвіду колег, які так само як ви переходили при чому стартуючи в QA навіть з позицій офіс-менеджерів (тобто секретарок) та HR-рок має сенс вчити саме те, що використовується у вас у компанії якщо це Java — тоді вчить саме Java — в разі чого буде в кого спитати. Далі намагайтесь перейти на AQA саме в середені компанії. Самі припахуйтесь щось автоматизувати, якусь рутину по роботі на текучому проекті і показуйте тімліду тишком-нишком, що от ця штука прибирає стільки то рутини що дає можливість робити скажімо смоук тест в чотири рази швидше ніж в ручну, а якщо скажуть то і показуйте замовнику. Те що це використовують десь на сусідньому проекті це факт який додає більше довіри і дає можливість легше це продати. Замовники між іншим, обожнюють різні кольорові графіки та радіатори з : cucumber.io, rest-assured.io/чи fitnesse.org. Це їм надає візуальний контроль за якістю проекта, та як за ним слідкують спеціалісти, можуть навіть кікнути конкуруючого вендора. Таким чином самі не помітите як станете AQA.
Далі вже можете вчити усе, що вам заманеться або буде використовуватись на проекті.
На мою думку Pyton, вже освоюю ось такий курс https://allasstore.com/shop/python-povnyj-kurs-z-python-django-data-science-ta-ml/
Хотілося б ще почути думку що перспективніше на сьогоднішній день й чому: Python/Playwright чи JS/TS/Playwright?
На ДОУ, схоже, зараз приблизно рівна кількість вакансій автоматизатора на Java, Python, Swift, JavaScript/TypeScript, але на JavaScript/TypeScript їх трохи більше.
Якщо на поточній роботі вже на чомусь автоматизують, то краще ту мову і вчити. А якщо планувати міняти роботу, то можливо, JavaScript/TypeScript у трохи привабливіша перспектива.
В плані скадності вивчення все приблизно однаково, особливо якщо йдеться лише про тести.
в 2023 році найкращим вибором для автоматизації є JS/TS + Playwright.
інше не раджу розглядати. (хіба Java + Selenide ще тримає добру частину ринку, але найбільші можливості є у звʼязці вище)
так, існує, але питання в тому, яку частину ринку автоматизації займає мобайл чи десктоп?
Ну... як на мене не так й складно написати щось на Python: virtualbox, easyocr, opencv. Відкриваємо віртуалку, встановлюємо наш софт (якщо необхідно), встановлюємо необхідний софт (якщо необхідно), далі запускаємо нашу програму, робимо скріни з екрану, роспізнаємо там текст (easyocr) або іконки/зображення (тут OpenCV або нейромережа), кидаємо дії користувача у вигляді тексту або кліків, чекаємо появи тексту/зображення на екрані, ...
Як на мене це може легко масштабовано ну будь які типи застосунків.
автоматизація за допомогою порівняння скрінів — дуже нішева річ, яка не використовується на більшості проектів, тому навряд це підійде новачкам
Ну... це було колись у минулому, але зараз великий прогрес у галузі нейромереж, багато коду, щоб навіть новачки могли їх використовувати. Тому я думаю, что скоро мають з’явитися і такі фреймворки. То того ж якщо є мотивація, то чому б й не спробувати написати свій?
Якщо мене спитати, що простіше, лізти у нутрощі HTML, CSS та JS або AI, то, як на мене, AI виглядає набагато простіше.
Чому не Python + Playwright?
таким самим питанням можна задатись і щодо дотнету.
хоча пайтон і значно більшу частку ринку займає, але все ж найпопулярнішим є опція, яку я вказав спочатку, що автоматично дорівнює більшій ксті вакансій, що в свою чергу автоматично дорівнює більшому комʼюніті, яке в свою чергу автоматично дорівнює більшій ксті фреймворків, ліб та й просто взагалі відповідей на питання, як вирішити ту чи іншу задачу
Тоді мені не зовсім зрозуміло чому найпопулярнішою опцією є JS/TS/Playwright а на Джинні вакансій на Python автоматизацію в три рази більше. То може краще вчити Python + Playwright??? Чи з годом TS/Playwright витіснить Python?
ts
Тут є дуже багато факторів, які можуть повпливати на вибір:
1) Ви плануєте переходити в межах поточної компанії/проекту
Тоді це залежатиме від того, на чому саме пишуть автотести у на Вашому проекті або на проекті куди ви можете свічнутись в якості автоматизатора. Якщо компанія невелика, то варіантів там теж не буде багато, зазвичай обирається 1 основний стек, з яким всі і працюють
2) Ви орієнтуєтесь на стан ринку
Тоді, звісно, переходити на JS + Playwright, Cypress або ін. js-фрейморк — зараз це найтрендовіша річ і вакансій наче як найбільше, точно більше за джаву
3) Вам цікавий певний конкретний домен\продукт\область
Тоді відштовхуватись від нього, напр. стандартний web/mobile — знову ж таки JS, хочеться чось складнішого/іншого типу апок для смарт ТВ, медіаплеєрів, мережевних пристроїв і т.п. — тоді раджу python, в нас є як мінімум 2 великих аккаунти в наших топ-5 аутсорсерах де він використовується для автотестів
Ви можете вивчати Java через тестування, писати unit-тести які покривають JDK
юнит тесты и автоматизация это несколько разные вещи... не?
Я вивчав PHP через написання unit-тестів, таку ж пораду зустрічав у книжках для вивчення нових мов програмування, тому unit-тести це просто моя рекомендація з вивчення Java.
Unit-тести та автотести це різні речі.