JavaRush /Java блог /Random UA /Як почати займатися автоматизованим тестуванням, частина ...

Як почати займатися автоматизованим тестуванням, частина 1

Стаття з групи Random UA
Пропонуємо вам ознайомитися з російською адаптацією статті Тіма Ебі (Tim Ebie), засновника https://testdemy.teachable.com/ , QA-платформи для онлайн-тестування програмного забезпечення, створеної для допомоги тим, хто починає свій шлях в автоматичному тестуванні
Як почати займатися автоматизованим тестуванням, частина 1 - 1
Ми спостерігаємо за сплеском інтересу та зростанням кількості веб-додатків на ринку. Разом з ними виникає дедалі більше робочих місць, які потребують програмування, технічних умінь та різних навичок автоматизації. Як наслідок, ручні тестувальники, щоб залишатися затребуваними, бачать необхідність переключитися з чистого ручного тестування у сфері контролю якості (QA) та придивляються до автоматичного тестування. Перехід від ручного до автоматизованого тестування - це розумний вибір, оскільки багато QA-позицій потребують масиву технічних навичок, пов'язаних з написанням коду. Для тих, хто не любить змін, така зміна може завдавати дискомфорту. Інші розробники, навпаки, розглядають цей час змін як можливість перевести свою кар'єру і навички на новий рівень і підвищити свою затребуваність. Кожен раз, коли вимоги зростають, можливості розширюються. Розробники з правильним набором навичок можуть "скочити в поїзд", і побудувати відмінну, добре оплачувану кар'єру. Якщо ви шукаєте можливості переходу від сфери ручного тестування до автоматизації, або навіть розглядаєте перехід з іншої сфери розробки програмного забезпечення, є сенс зробити кілька кроків, які допоможуть вам досягти успіху.

Крок 1: оцінка ринку

"Звичка номер два" з книги доктора Стівена Кові "7 звичок високоефективних людей" (Dr. Stephen A. Covey, 7 Habits of Highly Effective People ) говорить: "Починайте з думки про закінчення" ("Begin with the end in mind") . Вірю, що цей принцип справедливий, коли йдеться про старт в автоматизованому тестуванні. Почніть із ринкової оцінки потреб тих, хто наймає інженерів з автоматизації. Як тільки ви отримаєте розуміння технічних потреб наймачів, ви зможете набути відповідних навичок. Непогано для початку переглянути описи вакансій на будь-якому сайті (наприклад, Indeed.com , Dice , Monster , LinkedIn і т.п.).
Як почати займатися автоматизованим тестуванням, частина 1 – 2
Ось приклади пошукових слів, які можна використовувати для формування ринкової оцінки:
  • інженер з автоматизації тестування (Test Automation Engineer);
  • розробник автоматизації (Automation Developer);
  • автоматизоване тестування/тестувальник (автоматизоване тестування) (Automation Testing/Automation Tester);
  • QA інженер з автоматизації (QA Automation Engineer);
  • інженер з розробки програмного забезпечення для тестування (Software Development Engineer in Test (SDET)).
Щоб зрозуміти хід думки роботодавців та їх реальні очікування від кандидатів, у процесі пошуку пам'ятайте наступні питання:
  • які саме навички та технології вони згадують?
  • бачите ви окремий набір або "блок" умінь чи технологій для цих навичок?
  • скільки років досвіду потрібно, якщо потрібно взагалі?
  • чи є окремі галузі, схильні наймати більше інженерів з автоматизації, ніж інші?
  • на яку зарплату можна розраховувати?
  • чи є цікаві для нас засоби чи технології в основному продуктами відкритого доступу чи комерційними продуктами?
А зараз давайте придивимося ближче до кількох описів вакансій, щоб відчути, чого шукає ринок. Не забувайте, що ці вакансії знаходяться в США. Якщо ви живете не в США, ознайомтеся, будь ласка, із засобами пошуку роботи у вашій країні. Розробник автоматизації програмного забезпечення / Software Automation Developer I:
  • має чітке розуміння мов об'єктно-орієнтованого програмування ;
  • знайомий з Jenkins , Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
  • у роботі тісно пов'язаний із розробниками, бізнес-аналітиками та іншими тестувальниками, щоб визначати компоненти автоматизації тестування , які будуть використовуватися для перевірки вимог до розробленого ПЗ.
Як почати займатися автоматизованим тестуванням, частина 1 – 3
QA-тестувальник (автоматизоване тестування):
  • зберігає автоматизовані тести у відповідних системах контролю версій – TFS, GitHub тощо;
  • слід визначеним стандартам автоматизації та стандартам DevOps для автоматизації, а також процесам безперервної інтеграції та розгортання;
  • досвід роботи із засобами ALM (TFS, Jira, HP QC) та засобами автоматизації тестування (переважно Selenium WebDriver) .
Інженер з автоматизації забезпечення якості - QA ( Quality Assurance Automation Engineer ):
  • досвід роботи з Selenium WebDriver ;
  • навички програмування на Python, Java або подібних мовах;
  • досвід мобільного тестування / Appium .
Розробник програмного забезпечення для тестування:
  • оновлення та розширення тестового середовища та інструментів тестування в C#, TypeScript, JavaScript … ;
  • сильні навички програмування в C# або Java, та/або JavaScript разом з чітким розуміння концепцій об'єктно-орієнтованого програмування ;
  • досвід роботи з Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
Як почати займатися автоматизованим тестуванням, частина 1 - 4
Ось кілька ключових висновків, які з цих описів вакансій. Гібридні/змішані ролі:приділіть пильну увагу назвам вакансій та тому, як ці компанії бачать автоматизоване тестування ПЗ. Це можна зрозуміти за назвами ролей, які вони вказують (Розробник автоматизації ПЗ, Розробник ПЗ для тестування (Software Automation Developer, Software Developer in Test) і т.п. Помітабо шаблон? Ці компанії більш-менш посилаються на QA-інженерів як на розробників ПЗ Для ручних тестувальників це означає, що настав час вчитися писати код, щоб перетворити ручні тест-кейси на автоматизовані тестові скрипти. ПЗ, і вивчити, як будувати автоматизовані тест-кейси, щоб підтримувати ці життєві цикли. інакше відстане. З розвитком Agile-методологій та проектів, на базі Agile, все більше організацій змішують QA та розробників в одній особі. Тож вам час підготуватися до нових обов'язків. Особи, які мають базову підготовку у світі тестування ПЗ і одночасно добре розуміються на навичках розробника ПЗ — на вагу золота. Технології з відкритим кодом / Мови програмування: зверніть увагу на технології та мови програмування, виділені в описах жирним шрифтом. Ці технології та мови цільові, вам потрібно їх вивчити, щоб бути затребуваним на ринку. Виберіть одну високо затребувану технологію та почніть формувати свій набір навичок відпрацьовуючи їх та беручи участь у реальних практичних додатках та проектах. Це пришвидшить ваше навчання. Якщо ви не впевнені, з якої мови програмування починати , давайте трохи зсуваємо поле.

Крок 2: Опанування об'єктно-орієнтованої мови програмування (OOP)

Слід визнати: більшість ручних тестувальників бояться програмування. Сама думка про те, щоб залізти "під капот" і подивитися, як насправді працюють системи та програми, лякає багатьох "ручних" тестувальників. Саме цей страх головним чином є причиною того, чому вони стали ручними тестувальниками.
Як почати займатися автоматизованим тестуванням, частина 1 – 5
Програмування це основа автоматизованого тестування.Якщо ви хочете увійти в автоматичне тестування, вам потрібно вміти програмувати і чим краще ви програмуєте, тим успішніше ви будете в автоматичному тестуванні або розробці автоматизації. Тому, якщо ви хочете залишатися конкурентоспроможним у цьому постійно змінюваному світі розробки та технологій, ви повинні наважитися перемогти цей страх і стати затребуваним розробником автоматизованого тестування. Добре те, що під мінімальним керівництвом більш досвідченого колеги, застосувавши завзятість та наполегливість, постійно практикуючись (як у нас на JavaRush), ви точно можете покращити свої навички програмування. Наступне логічне питання: яку мову програмування вчити? Виходячи з нашої ринкової оцінки, ми знаємо, що роботодавці хочуть наймати людей "з чітким розумінням мов об'єктно-орієнтованого програмування" . І, відповідно до нашого аналізу, можна побачити кілька мов об'єктно-орієнтованого програмування, на які вони посилаються. Наприклад, Java, C#, JavaScript, та Python. Починати можна з кожного з них. Якщо ви починаєте вивчати ООП-мову, ось кілька понять, які слід добре засвоїти, щоб краще орієнтуватися в автоматизованому тестуванні:
  • об'єктно-орієнтоване програмування (класи, об'єкти, екземпляри, успадкування, атрибут тощо);
  • Модулі, Стандартні бібліотеки (будь-якою мовою, якою ви зупинабося);
  • структури даних (словники, списки, кортежі тощо);
  • типи даних (рядки, символи, цілі числа, з плаваючою комою, логічні або булеві типи, NoneType і т.п.);
  • змінні;
  • обробка помилок/виключень;
  • арифметичні оператори/ порядок пріоритету;
  • порівняння, логічні булеві оператори;
  • процедури/функції/методи;
  • потік управління: If-затвердження, for-цикли, while-цикли і т.п.
  • читання/Запис у файли;
Програмування це основа автоматизованого тестування. Вчіться програмувати - і ви навчитеся автоматизувати.

Крок 3: Опанування засобів автоматизації

Я не втомлююся повторювати: що краще ви можете програмувати, то краще ви зможете автоматизувати. Якщо ви почали вивчати мову програмування, наступний крок – вивчити, як використовувати засоби автоматизації. Оскільки більшість компаній схиляються до засобів автоматизації з відкритим доступом (або безкоштовного програмного забезпечення), а не до комерційних ліцензійних продуктів з міркувань економії.
Як почати займатися автоматизованим тестуванням, частина 1 - 6
Прекрасний засіб, який можна знайти у відкритому доступі – це Selenium WebDriver. Selenium має кілька мовних прив'язок (Python, Java, C#, Ruby, PHP, JavaScript тощо), так що вивчення однієї з цих мов програмування стане прекрасною основою для побудови солідної кар'єри в автоматизації. Декілька ключових понять, якими потрібно опанувати, щоб будувати надійні, функціональні та ефективні автоматизовані тест-кейси:
  • шаблони проектування: об'єктна модель сторінки;
  • пошук елементів веб-сторінки за допомогою різних локаторів (CSS Selector, XPATH, ID, Name тощо);
  • перемикання Windows/iFrames;
  • рефакторинг;
  • модульне тестування;
  • тестування у хмарі/паралельне тестування;
  • перевірка даних;
  • тестування на різних веб-браузерах (Firefox, Internet Explorer, Chrome, Safari, Opera тощо);
  • неявні та явні очікування;
  • ланцюжки дій
Якщо ви вибрали об'єктно-орієнтовану мову програмування та в оцінці ринку зробабо ставку на засоби автоматизації, наступний логічний крок… Що б ви думали?

Крок 4: Практика, Практика та ще раз Практика

Що б ви не робабо, ніколи не кидайте. Вивчати щось нове – це завжди виклик. Але кожен виклик можна перемогти достатньою кількістю практики та самовідданості. Скільки часу займе вивчення нових навичок та технологій, повністю залежить від вас і того, як багато ви практикуватиметеся, і скільки самовідданих зусиль докладете, щоб опанувати ці навички.
Як почати займатися автоматизованим тестуванням, частина 1 – 7
Будь-який професійний спортсмен скаже, що він або вона досягла висот на своєму шляху завдяки роботі, зусиллям своїх тренувань. Говорять, Майкл Джордан жорстко грав, але ще жорсткіше тренувався. Цей підхід повинен запозичити кожен, хто збирається займатися автоматизацією - практикуйтеся, практикуйтеся, тренуйте ваші нові навички, поки вони не стануть вашою другою натурою. Це єдиний шлях покращити вміння та бути затребуваним тестером. Один з хороших способів тренувань - активно вивчати мову програмування та засоби автоматизації одночасно, "граючись" з ними. Іншими словами, пишіть маленькі програми або скрипти автоматизованого тестування, ламайте їх, змінюйте і дивіться, як тепер це працює. Навчайтеся з того, що ви зробабо, і спробуйте знову. Практикуйтеся граючи, роблячи та навчаючись. Робіть так,

Час починати

У новій справі найголовніше почати. Весь час, коли ми прокрастинуємо або не можемо почати, причина в тому, що ми не маємо "дорожньої карти" або плану гри, що допомагає намітити курс.
Як почати займатися автоматизованим тестуванням, частина 1 - 8
Хоча спроба радикально змінити напрямок вашої кар'єри може здатися лякаючою, цінуватись і бути ринково привабливим необхідно. Вам потрібно розвивати нові навички, щоб залишатися на вершині постійно змінного світу розробки програмного забезпечення і бути тим, кого насправді шукають роботодавці. Починайте з малого: оцініть вимоги ринку, вивчайте об'єктно-орієнтоване програмування та засоби автоматизації, та постійно практикуйтеся. І ви підготуєтеся до нових можливостей працевлаштування раніше, ніж зрозумієте це самі. Джерело: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ