Про кар’єру, лінь та автоматизацію тестування
Привіт всім! Мене звати Олексій Остапов, Я 15 років займаюсь автоматизацією тестування, викладаю тестування, веду блог про тестування, часто повторюю слово тестування, бо, як ви могли здогадатись — я люблю тестування. Це не просто робота — це покликання, це пристрасть, це хобі. Я дійсно отримую задоволення від своєї роботи. І всім вам бажаю знайти вашу пристрасть.
Нещодавно мене запросили провести мотиваційну лекцію для студентів на KNU JOB EXPO на тему автоматизації тестування, тож я провів 😁 І чом би не поділитись краплинкою мотивації з усією спільнотою?
Я завжди відчував, що автоматизація, то моє. Як? Бо я капець який лінивий. А автоматизація — це круто! Це можливість змусити когось, в нашому випадку комп’ютер, зробити мою роботу за мене. Такі фанатики, як я, часто кажуть:
- навіщо витрачати 10 хв на роботу, якщо можна витратити 10 годин на її автоматизацію?
- Або як нещодавно сказав один з клієнтів нашої компанії — "я готовий працювати вдвічі тяжче, щоб залишатись лінивою людиною
Нещодавно я отримав заслужене підвищення. Тепер я — голова практики автоматизації тестування в Infopulse (головний автотестер, велике цабе 😂).
Так от, я подумав, що моя поточна позиція — це вершина автоматизації. Я пізнав дзен. Бо автоматизація — це дати команди комп’ютеру зробити якусь роботу за мене. А я можу давати доручення людям, які дають команди комп’ютеру робити роботу.
Але давайте перейдемо до суті.
Нажаль, існуючий IT-ринок сформував тренд, що автоматизація тестування, це саме автоматизація виконання тест кейсів. Тобто є QA інженери, вони тестують застосунки, щоб перевірити їх якість. Наприклад. Умовний Youtube. Виходить нова версія сервісу, і тест інженери Google перевіряють:
- клікнути на підписки — відкриється список
- Клікнути на відео — почнеться показ
- Клікнути на вподобайку — поставиться вподобайка. Саме одна, а не 2-3-5,5, π вподобайок
А є автотест інженери, які програмують дії QA інженерів по перевірці якості. Тобто пишуть програму, яка клікне на підписку, відео, вподобайку. І саме по собі це не погано, бо, в теорії, має рятувати QA інженерів від рутини — ви тільки уявіть, як це жахливо — заходити на ютуб кожен день, дивитись відео і ставити лайки. Ух.
Проблема в тому, що новачки в тестуванні загалом і конкретно в автоматизації думають, що це єдиний напрямок роботи. Що як вивчили мову програмування, то тільки для того, щоб умовному селеніуму чи плейрайту казати, які кнопочки в браузері клікати. Але ж це не так. Сама суть автоматизації — автоматизувати будь-яку роботу. І саме це я роблю. І це я пропагую:
- Треба придумати дані для теста — не придумуйте з голови — напишіть генератор!
- Більш того — я іноді використовував той же селеніум і плейрайт, інструменти для тестування, щоб занести дані в систему, що я тестую, бо доступа до API чи бази не було. Наприклад — треба вам зареєструвати на сайті 1000 користувачів — не руками ж їх вбивати?
- Требе зібрати логи з різних серверів, бо колектор логів ще не підключили — не збирайте руками — напишіть програму, що зробить це за вас
- Треба протестувати інтеграцію 2 програм, а у вас є лише одна — напишіть мок (програму, що вдаватиме з себе іншу програму) самостійно і тестуйте інтеграцію
- Треба тестування API чи навантаження — пишіть код. Це зручно!
- Треба готувати тестові звіти — напишіть скрипт, що буде робити красивий документ за вас
- Вам пишуть багато питань, листів, відволікають від роботи? — напишіть бота, що відповідатиме за вас!
Мій девіз — автоматизувати можна все. І я дійсно намагаюсь автоматизувати все, що роблю бо це капець як цікаво і весело! Головне — проявити фантазію.
Але є одне але, про яке я маю вам повідомити. Коли я став менеджером, одним з моїх обов’язків стало рахувати гроші. В тому числі — ціну автоматизації. І мої розрахунки мають дуже невтішні результати. Автоматизувати — невигідно. Є такий спеціальний параметр, ROI (return of investments) — кількість днів, які мають пройти, щоб гроші, вкладені в роботу автоматизаторів окупились і почали приносити дохід, тобто економити на ручному труді. Так от, коли ми говоримо про розробку ПЗ — автоматизація тестування майже ніколи не окупається. Це весело і круто, але ні.
Я це зрозумів особливо добре, коли мав необхідність викопати яму на 8 кубічних метрів, і найняти 2х копачів з лопатами обійшлося вдвічі дешевше, ніж найняти екскаватор.
Логічне питання — навіщо її роблять? Чому так багато відкритих вакансій? Бо автоматизація робиться не для того, щоб економити. Автоматизація дозволяє швидше отримати результати. Уявіть:
- Для тесту вам треба зареєструвати 1000 користувачів. Задача на тиждень роботи. Скрипт зробить це за кілька годин
- Треба виконати 1000 ручних тестів — команда тествання робитиме це 2 тижні реального часу. Тобто, розробники напишуть код, а потім 2 тижні чекатимуть, поки їм повідомлять, що код неякісний, багів багато, треба переробити (⚠️ я утрирую, але суть саме така). Автоматизація зменшує період очікування, вона дає раннє інформування. Розробник написав нову частину програми і вже через кілька годин знає, чи не накосячив десь. В цьому магія!
Але здебільшого, коли раннє інформування не потрібно, і робота одноразова — повірте моєму досвіду — краще ручної праці людство ще нічого не винайшло — беріть і тестуйте руками.
Що ж треба вивчити, щоб стати автоматизатором, то ось мій топ 10 порад:
- Вам це має подобатись. У вільний час, вечорами, коли донька вже спить, я сідаю і пишу програми просто для розваги. Не змушуйте себе, якщо душа не лежить до програмування. Багато з тих, хто казали, що хочуть займатись автоматизацією — насправді не хотіли нею займатись ¯\_(ツ)_/¯
- Будьте лінивими, але відповідальними. Тобто робота має бути виконана добре, з мінімальними вашими зусиллями
- Вчіть англійську. Вся документація до всіх мов програмування та інструментів написані англійською. Цю мову ви маєте знати!
- Далі — програмування. Вчіть скриптові мови — Python, JS. Вони прості і створені для автоматизації роботи
- Але програмування — це не просто мова. Це логічні принципи, алгоритми. Мені, щоб почати писати новою мовою програмування потрібно лише кілька годин, щоб ознайомитись із синтаксисом і набором бібліотек. Мова — не головне. Створити алгоритм дій в ствоїй глові — знайчно важливіше
- Постійний саморозвиток — ви класний інженер, коли постійно вчите щось нове. Одне з питань, що я питаю на співбесідах — якою версією мови ви пишете? Чи цікавитесь змінами в новіших версіях? Мені важливо, щоб програми писала людина-інженер, яка знає і любить те, що робить, а не біо-робот, якого запрограмували писати на пайтон версії 3.6 однотипні скрипти, і нічого іншого він не вміє
- Не намагайтесь осягнути все і одразу. Мова програмування, як ви вже зрозуміли — не головне, а от інфраструктура, набір бібліотек, що доступний для цієї мови — рішає. Мені, щоб зробити веб сайт на пайтон, треба 15 хвилин. Написати автотест — 10 хвилин. Бо вже написано десятки інструментів. Джава — відверто посередня мова програмування, але вона має дуже потужну спільноту, що написала так багато бібліотек, що вміють все на світі. Тому така популярна. Те саме — PHP. Над цією мовою сміються і вже десятки разів хоронили, але в світі все ще 80% всіх сайтів працюють на WordPress, який написано на... PHP.
- Тож виберіть один напрямок розвитку, погугліть, які бібліотеки дозволяють вам робити задумане і вивчайте їх. Поступово. Я займаюсь автоматизацією 15 років, знаю багато, але ще більше не знаю. Не треба намагатись бути одразу мною. Будьте собою
- Не робіть приклади з туторіалів. Бо вони майже завжди — відстій. Знайдіть реальну корисну роботу до душі і робіть її. Автоматизуйте вашу роботу. Створіть сайт. Мій друг, коли ми вчились в універі, написав за допомоги інструменту автотестування бота для браузерної гри, що майнив йому ресурси і відбивав атаки ворогів, поки друг спав. Ото мотивація була вивчити програмування!
- Робіть перерви. Вчитись — важко. Це було важко, коли я був студентом, бо гормони, вечірки, важко зосередитись. Тепер мені за 30, і мозок вже не такий гнучкий. Тож вивчати нові технології — складно. І чим вони новіші, тим складніші. І хоч всі декларують, що тепер, з нашим новим фреймворком, зробити <робота_name> стало ще простіше ©, насправді вимагають ще глибшого розуміння нюансів роботи. Я працюю годину-дві, потім беру паузу, на годину, день, і продовжую, коли готовий. Бачив багатьох людей, що брались за якийсь двотижневий інтенсив і згорали. Михайло Чуб, мій колега і голова практики тестування в Infopulse поділився ще однією цитатою клієнта компанії — pressure creates diamonds. Дійсно так. Але є одне але — тиск створить з вас діамант, якщо ви — вуглець. В інших випадках вас просто розчавить. Тож любіть себе ❤️
Тепер варто поговорити про непомітного слона в кімнаті. Чат GPT та інші генеративні моделі ШІ. Чи варто вчити програмування, якщо ШІ скоро буде це робити краще за нас?
Я працюю в тестуванні 15 років, і кожен рік чую, що роботи нас замінять. 2 роки тому я проводив дослідження найкращих в світі інструментів для автоматизації тестування на базі ШІ. І всі інструменти, без виключення, не змогли запропонувати нічого краще, ніж банальний селеніум, інструмент для автоматизації веб застосунків, код для якого генерується з вже готових шаблонів коду. Тобто розробники не придумали нічого краще, ніж спробувати замінити роботу автотестувальника, який намагається замінити роботу звичайного QA інженера.
Так, я досліджував і просто можливості чат GPT, просив його написати тести і код, і він із ймовірністю 50 відсотків згенерує непоганий шаблон коду. Але шаблон вам все одно доведеться адаптувати вручну. А у половині випадків — ви отримаєте сміття. І тут важливо мати знання та навички, щоб зрозуміти, що саме в кожному конкретному випадку підсовує вам чат. А для цього треба знати програмування і далі по списку.
Висновок — в найближчі роки/десятиріччя ШІ нас не замінить, бо це асистент, що має спростити нашу роботу. Винайдення циркулярної пили не замінило столярів. Воно створило нішу для людей, що вміють користуватись циркулярною пилою. Тому наша задача, як допитливих інженерів, опанувати черговий інструмент і використовувати собі на користь.
Удачі у навчанні і самовдосконаленні!
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів