Хто такий тестувальник. Огляд зсередини від Євгена Шидловського

Редакція dev.ua запустила цикл матеріалів про IТ-спеціальності. Кожну з них детально описує досвідчений фахівець.

Ми пишемо про це для того, щоб всі — від школярів до джуніорів — могли вибрати спеціальність в IТ, оцінити власні перспективи чи просто удосконалити навички, які вже мають.

Сьогодні про професію розповідає Євген Шидловський, провідний інженер-програміст (lead software test automation engineer) в EPAM і викладач курсу «Тестування ПЗ» в IT-Academy.

Хто такий тестувальник. Огляд зсередини від Євгена Шидловського

Редакція dev.ua запустила цикл матеріалів про IТ-спеціальності. Кожну з них детально описує досвідчений фахівець.

Ми пишемо про це для того, щоб всі — від школярів до джуніорів — могли вибрати спеціальність в IТ, оцінити власні перспективи чи просто удосконалити навички, які вже мають.

Сьогодні про професію розповідає Євген Шидловський, провідний інженер-програміст (lead software test automation engineer) в EPAM і викладач курсу «Тестування ПЗ» в IT-Academy.

Євген Шидловський в професії понад сім років. До того, як стати тестувальником, 10 років працював військовим лікарем. У складі медичної бригади брав участь в місії ООН в Лівані. Після курсів в IT-Academy потрапив на стажування в лабораторію EPAM і через 11 днів отримав оффер. У компанії пройшов шлях від функціонального тестувальника до керівника команди автоматизаторів.

Тестувальник (або фахівець з тестування програмного забезпечення) — це людина, яка перевіряє роботу додатків і шукає в них всілякі помилки та уразливості.

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

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

У своїй роботі тестувальник постійно взаємодіє з представниками замовника, бізнес-аналітиками, розробниками та дизайнерами.

Вся команда націлена на створення «правильного» продукту, але тестувальник — людина, яку найбільше цікавить саме якість продукту.

Які бувають тестувальники

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

На ринку праці найчастіше зустрічається функціональний (мануальний, manual QA engineer) тестувальник. Це людина, яка вигадує тести й «вручну» перевіряє програми на баги й уразливості.

Автоматизатор (test automation engineer) пише код, який автоматизує процеси тестування.

Ці дві спеціальності найбільш поширені, і далі ми будемо говорити здебільшого про них.

Іноді в окрему роль виділяють security-тестувальника — людину, яка займається перевіркою систем безпеки. BI (business intelligence) — тестувальник, який працює з великими обсягами даних. У деяких компаніях є цілі відділи performance-тестування — контролю продуктивності ПЗ і навантажень на додатки. Usability-тестувальники перевіряють, наскільки продукт зручний у використанні та привабливий для користувача.

Є тренд на змішання різних спеціальностей і практик тестування. Компаніям вигідно, щоб фахівець вмів виконувати різні завдання.

Хто такі QA і QC

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

Традиційно під QA (Quality Assurance) розуміють щось глобальне: забезпечення всього процесу розробки, починаючи від вибору методології та фахівців і закінчуючи загальним контролем якості.

QC (Quality Control) — так іноді називають середньостатистичного фахівця з функціонального тестування, який перевіряє, наскільки розробка продукту відповідає всім вимогам.

Зустрічається ще третє поняття — Testing, або процес тестування продукту.

В якомусь сенсі QA, QC і Testing — всього лише різні етапи роботи, які виконує тестувальник. У деяких великих компаніях є QA-відділи, де фахівці не займаються функціональним тестуванням взагалі: вони добре знають стандарти замовника і стежать за тим, щоб вся команда працювала за цими стандартами.

У вакансіях на ринку праці функціонального (мануального) тестувальника можуть називати і QA, і tester, і test engineer. Це різні назви для однієї й тієї ж професії.

Є також поняття «тестувальник-універсал». У професійному середовищі ми називаємо таких людей «міксами». Це тестувальники, які вміють майже все: знають теорію і різні види тестування, вміють придумувати й оформляти тести, володіють мовами програмування та автоматизують процеси. Сьогодні спостерігається великий попит саме на таких фахівців. З власного досвіду можу сказати, що наявність «міксу» в команді різко підвищує ефективність роботи.

Також існує таке поняття, як TestOps (по аналогії з DevOps). Іноді вживаються терміни DevTestOps і DevTestSecOps. Це фахівець, який крім тестування ще займається підтримкою всієї інфраструктури: розгортає та обслуговує сервери, автоматизує тести й процес складання програми.

Зміст роботи тестувальника

Типова послідовність роботи функціонального (мануального) тестувальника має приблизно такий вигляд.

— Вивчити специфікацію продукту (програми).

— Розробити методи для перевірки продукту.

— Провести перевірку продукту.

— Зробити висновки за підсумками перевірки.

— Перерахувати знайдені вразливості й недоліки продукту в офіційному документі (найчастіше — англійською мовою).

Головний обов’язок автоматизатора — на основі готових тестів написати код, який буде автоматично робити те ж саме, що робить мануальщик вручну. Важливо, щоб автомати затор вмів кодити, але і не забував методи функціонального тестування. Адже до того, як створити код, потрібно придумати й ефективний тест для перевірки додатку.

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

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

Тестувальник і код

Середньостатистичному тестувальнику мова програмування в принципі не потрібна. Можна успішно займатися функціональним тестуванням 10 років і не написати жодного скрипта. Мова обов’язково потрібна для автоматизованого тестування. Автоматизатор — розробник, який пише код для тестування іншого коду.

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

Курси з тестування на Coursera, вартість від $39 на місяць.

Де і як навчитися професії тестувальника

Розповім на прикладі своєї роботи. Я навчаю тестувальників в IT-Academy. Наш курс триває 9 тижнів або 27 занять. За цей час можна отримати базову підготовку, достатню для початку роботи в якості тестувальника. Але це дуже інтенсивний курс.

Я завжди кажу, що правильний підхід під час навчання — не спати, мало їсти, нічим більше не займатися і 9 тижнів вивчати матеріали.

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

У тестувальники приходять люди з найрізноманітніших професій, і крім теоретичних знань в обов’язковий скіл-сет повинні входити посидючість і уважність до деталей.

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

На ринку можна знайти безліч курсів — очних і дистанційних, платних і безкоштовних.

У багатьох великих IТ-компаніях є внутрішні (як правило, безплатні) курси з тестування. Однозначно потрібно пробувати потрапити туди, особливо якщо хочете працювати в компанії-організаторі таких курсів. Мінус подібного навколокорпоративного навчання — воно часто буває вузькоспрямованим і не зовсім підходить за своїм змістом середнім вимогам ринку. Платні курси, яких безліч, частіше дають ширшу програму підготовки.

Книги та посилання

Роман Савін. «Тестування Дот Ком, або Посібник із жорсткого поводження з багами в інтернет-стартапах». Дуже маленька і проста книга. Написана доступною мовою. Одне з кращих джерел для початку.

Святослав Куликов. «Тестування програмного забезпечення. Базовий курс». Об'ємна праця, де зібрано багато різноманітного матеріалу. Буде дуже корисна в якості довідника.

Lee Copeland. A Practitioner’s Guide to Software Test Design. Одна з кращих книг по тестуванню. Хороша як самовчитель.

Software Testing Udacity — спробувати безплатний онлайн-курс.

Testing Challenges — «помацати руками» цікаві завдання для тестування.

Багато посилань на навчальні ресурси представлено в списку на сайті на сайті IT-Academy.

Кар'єра і зростання

Тестування поряд з бізнес-аналізом або технічним письменством — дійсно одна з найменш складних точок входу в IT (хоча цей шлях теж не з легких).

Тестувальникові не обов’язково володіти глибокими технічними навичками, знати мови програмування або навіть мати математичний склад розуму. Хоча ситуація змінюється, а вимоги до кандидатів ростуть. Кажуть, 10-15 років тому IT-компанії брали в тестувальники мало не людей з вулиці. Років 7 тому (коли я сам приходив у професію) новачкові вже треба було міцно володіти теорією. Сьогодні на співбесідах частіше перевіряють базові технічні навички: роботу з базами даних і мережами, адміністрування.

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

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

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

Звичайно, в умовах кризи позиція тестувальника стає вразливою. Без розробника неможливо написати ПЗ, а без тестувальника якось можна. Мені здається, в цій ситуації найкраще захищені «мікси» — ті самі універсали, про яких я говорив вище. Вони здатні швидко перебудовуватися з одних завдань на інші. Якщо проєкту стануть не потрібні мануальщики, то «мікс» завжди може перемкнутися на автоматизацію процесів і навпаки.

Курси, щоб стати тестувальником

Спеціалізація Software Testing and Automation

Курс-симулятор Тестувальник програмного забезпечення

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

Навантажувальне тестування

QA Lead

Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
По темi
Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
Хто такий Audio Engineer в геймдеві. Огляд зсередини від Віталія Кезіка
Хто такий Audio Engineer в геймдеві. Огляд зсередини від Віталія Кезіка
По темi
Хто такий Audio Engineer в геймдеві. Огляд зсередини від Віталія Кезіка
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової
По темi
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової

Хочете повідомити важливу новину? Пишіть у Telegram-bot.

А також підписуйтесь на наш Telegram-канал.

Читайте також

Зеленський: Частка IT-галузі у ВВП України за два-три роки збільшиться до 10%. Що для цього потрібно?
Зеленський: Частка IT-галузі у ВВП України за два-три роки збільшиться до 10%. Що для цього потрібно?
Зеленський: Частка IT-галузі у ВВП України за два-три роки збільшиться до 10%. Що для цього потрібно?
"Написав код для соцмережі і вирішив втекти з IT". Історія дипломованого програміста, який розчарувався у професії
"Написав код для соцмережі і вирішив втекти з IT". Історія дипломованого програміста, який розчарувався у професії
Олександр Федотов 15 років тому писав програми, розробляв соціальні мережі. Але вирішив не пов’язувати своє життя з кодами, натомість вирішив за краще зайнятися маркетингом у консалтинговому агентстві «Ольшанський і Партнери» — компанії, яка є співорганізатором найбільшо]їIT-конференції Східної Європи iForum. Ось його історія.
Вони втекли в IT з різних професій. 7 історій: від гіда, геолога-підривника, фізика-ядерщика, лікаря, лінгвіста й археолога
Вони втекли в IT з різних професій. 7 історій: від гіда, геолога-підривника, фізика-ядерщика, лікаря, лінгвіста й археолога
Вони втекли в IT з різних професій. 7 історій: від гіда, геолога-підривника, фізика-ядерщика, лікаря, лінгвіста й археолога
Увійти в IT — можливість, яка сьогодні дана буквально кожному бажаючому. Ми вже писали про студентів, які потрапили у сферу IT буквально зі шкільної лави, і про дорослих співробітників IT-компаній, які працюють в галузі по чверті століття. Однак чимало цікавих історій про людей, які відмовлялися на користь IT від професій, які отримували потом і кров’ю упродовж багатьох років. У сфері інформаційних технологій працюють колишні лікарі, геологи, гіди… dev.ua розповідає їхні історії.
В Україні запустилась нова продуктова IT-компанія
В Україні запустилась нова продуктова IT-компанія
В Україні запустилась нова продуктова IT-компанія