Прокачайся в код-рев’ю: для перших 50 учасників — курс безкоштовний

час читання: 4 хв

Хто такі тестувальники та чим вони займаються

Як влаштований процес тестування, що саме перевіряють QA-фахівці та якими інструментами користуються? Відповіді на ці та інші запитання — у новій публікації блогу Anywhere Club.

Автор статті — Software Testing Team Leader EPAM Олександр Бєлозор.

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

Детальніше про професію

Рівні QA-фахівців

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

  1. виконують технічні завдання,
  2. вибудовують робочі процеси та стежать за ними,
  3. проводять відбір кандидатів, навчання, комунікацію зі стейкхолдерами.

Якщо говорити про рівень підготовки та компетенції конкретного фахівця, зазвичай виділяють Junior, Middle та Senior QA. Співробітників рівня Senior з низкою додаткових менеджерських завдань умовно можна поділити на Lead QA,Testing Team Lead, Test Manager. Давайте розберемо докладніше:

  • Junior QA — тестувальник-початківець, у якого горять очі, але мало досвіду. Іноді він соромиться ставити уточнювальні запитання: через це на виконання завдань може витрачатись більше часу, ніж хотілося б.
  • Middle QA вже накопичив певний досвід у тестуванні додатків і зазвичай встигає вчасно виконувати свої завдання. Однак, за моїми спостереженнями, такі фахівці часто переоцінюють свої сили, тож усе ще потребують контролю з боку ліда або менеджера.
  • Senior QA — на мій погляд, це ідеально збалансований співробітник. У нього є необхідні теоретичні знання і багатий практичний досвід. Цей фахівець уже може займатися не тільки тестуванням, а й відповідати за невеликий стрім у межах проєкту з командою з кількох Junior або Middle QA.
  • Lead QA несе відповідальність за якість продукту. Крім тестування він активно взаємодіє з командою, розподіляє ресурси, планує, описує та впроваджує процеси забезпечення якості, спілкується із замовником або стейкхолдерами на проєкті. Lead QA — це ментор, який передає знання молодшим співробітникам, навчає їх, а також проводить асесменти.
  • Testing Team Lead — фахівець із тестування з чудовими комунікативними якостями та вмінням працювати в режимі багатозадачності. Він керує командою і планує майбутнє завантаження співробітників на проєкті.
  • Test Manager бере участь у пресейлі та апсейлі, стежить за загальним скоупом роботи для співробітників, але при цьому може займатися і проєктними активностями.
Як стати успішним QA-інженером?

Як влаштований процес тестування

Фахівці з тестування не тільки перевіряють ПЗ на відсутність багів, а й відповідають за якість продукту. Усе починається з пресейлу: вже на цьому етапі кожен фахівець знайомиться з ідеєю або майбутнім продуктом, ставить уточнюючі запитання, бере участь у мозкових штурмах, а потім дає експертну оцінку. Наступний етап — тестування вимог або документації. QA детально вивчає специфікації та обсяг робіт. Зазвичай уже в специфікаціях є якісь невідповідності та помилки, але виправити їх доволі просто і дешево, тому цим етапом не варто нехтувати. Далі відбувається детальне дроблення сторі та завдань, за якими відбувається розробка тестових сценаріїв, чек-листів, створення тест-с’ютів.

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

Тестування ПЗ — це досить тривалий процес, але Lead QA завжди може визначити межі фінального тестування, щоб уникнути надлишкового тестування і переконатися, що програмний продукт відповідає заявленій якості. І навіть після закінчення проєкту основна ідея може розширюватися: QA-фахівці разом із командою розробки пропонують подальші шляхи розвитку проєкту (продукту), оскільки команда вже спрацьована і всі потрібні інструменти налаштованЯк влаштований процес тестування

Тестування безпеки

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

Більш детальним тестуванням безпеки та пошуком вразливостей займаються QA-фахівці з експертизою в галузі penetration-тестування (тестування на проникнення), які працюють з інструментами тестування безпеки.

Автоматизоване тестування

Автоматизоване тестування — одна з методик тестування за допомогою спеціальних інструментів. Його основна перевага полягає в тому, що в короткі терміни можна покрити досить великий скоуп тестових сценаріїв, починаючи від Unit і API та закінчуючи Е2Е-тестами. Мінусом такого тестування є те, що ці тести схильні до так званого «ефекту пестициду», коли під час регулярних перевірок одних і тих самих сценаріїв не виявляються нові баги. Тому потрібна постійна підтримка в актуальному статусі всіх версій застосунків, інтеграції та самих тестів після змін.

У команді автоматизатори, як правило, доповнюють ручних тестувальників і навпаки.

Хто такий QA Automation Engineer і як ним стати?

Інструменти тестування

Для того, щоб ефективно організувати процес тестування, є різні інструменти. Варто зазначити, що навіть ручні тестувальники вже не проводять тестування вручну, а користуються інструментами для інтеграційного тестування — Postman, Swagger, SoapUI. До них можна додати допоміжні тули, наприклад HTML Viewer, JSON Formatter, Notepad++ та інші. Я рекомендую пройти додаткові курси, оскільки це допоможе швидко розібратися в тому ж Swagger, навчитися робити правильні запити в Postman та об’єднувати все в колекції. Таким чином тестувальники можуть перевіряти back-end до розробки front-end.

Для підготовки тест-кейсів також можна застосовувати різні інструменти, від простого Excel-файлу до просунутих додатків. Дуже зручно, коли всі в команді тестування і, якщо необхідно, QA-команда на стороні замовника користуються одними тулами.

Висновок

Інженер із забезпечення якості — важлива одиниця команди розробки. Він знаходить помилки в ПЗ на різних етапах, бере участь у мозкових штурмах і тим самим допомагає поліпшити програмний продукт. Фахівці різних рівнів роблять внесок у розвиток як окремого проєкту, так і компанії в цілому. Бувають проєкти, які відмовляються від тестування: це економить якусь частину бюджету, але може призвести до репутаційних ризиків, якщо в кінцевому продукті багато недоліків. Сьогодні на висококонкурентному ринку розробки ПЗ значну перевагу мають саме ті компанії, які створюють QA-відділи та інвестують у розвиток тестування та своїх співробітників.