Codeless-підхід для автоматизації тестування: як порахувати ROI

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Привіт, мене звати Дмитро. Я вже 10 років працюю в компанії MindK, зараз обіймаю позицію Head of QA. Як і багато хто з вас, ми постійно шукаємо нові підходи, які могли б покращити процес розробки. У цій статті я розповім про один з таких експериментів.

Codeless, low-code або no-code підходи обіцяють значно спростити автоматизацію тестування без необхідності знань програмування. Та попри весь гайп, існує дуже мало детальної інформації про реальні проєкти. Майже всю її можна поділити на дві умовні групи. Перша — це дифірамби від маркетологів, які працюють на codeless-платформи. Друга — це розбір обмежень або недоліків нового підходу від адептів традиційних цінностей автоматизації.

Аби докопатись нарешті до істини, ми своїми руками на пару місяців запустили no-code експеримент на одному з активних проєктів. На ньому вже був фултайм-автоматизатор. Тож новий підхід мав допомогти в розширенні скоупу тестування.

Загалом ми вже понад вісім років автоматизуємо тестування на багатьох проєктах. Спочатку був тех стек Java, потім перейшли на JavaScript, а згодом — на TypeScript у зв’язці з Playwright.

У цій статті не буде порівнянь функціональних аспектів традиційного і codeless-підходів, їх плюсів, мінусів, ризиків чи обмежень. Натомість зосередимось на більш важливому показнику — рентабельність інвестицій (ROI).

Крім того, поділюсь шаблоном Google Sheets, який допоможе самостійно оцінити ROI для ваших проєктів.

Навіщо автоматизація тестування

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

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

Автоматизація збільшує ефективність і покриття тестування. Вона забезпечує швидку перевірку широкого діапазону сценаріїв і edge-кейсів, які могли б пропустити під час ручного тестування. Також автотести дозволяють мати тестове середовище з CI/CD практиками, які є обов’язковими для сучасної розробки.

В підсумку переваги автотестів можна об’єднати в чотири групи:

  • Економія коштів і ресурсів. Замість рутинного полювання за регресійними багами тестувальники можуть зайнятись більш важливими ​​та цікавими задачами.
  • Швидкий зворотний зв’язок про стабільність системи. Автотести є частиною CI/CD процесу та можуть бути запущені в будь-який потрібний момент.
  • Вища стабільність з меншою кількістю дефектів на проді. Це також зменшує вартість підтримки та робить приємно кінцевим користувачам.
  • Ефективність і швидкість релізів. Автотести дають швидший зворотний зв’язок і більш часті цикли тестування, скорочуючи час виходу на ринок.

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

Що таке ROI і як його рахувати

Рентабельність інвестицій (ROI) є фундаментальною концепцією в бізнесі. Вона допомагає оцінити реальний прибуток від конкретної інвестиції, надаючи чітке уявлення про її загальну цінність.

Формула ROI доволі проста:

ROI = (чистий прибуток / загальна вартість інвестицій) x 100%

Чистий прибуток — це загальна вигода, отримана від продукту, мінус загальна вартість інвестицій:

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

Загальна вартість інвестицій — це загальна вартість автоматизації тестування на проєкті:

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

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

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

Assumptions

Точність розрахунків залежить від певної кількості важливих припущень. Вони впливають як на сам аналіз, так і на його кінцеві результати. Можна виділити такі основні їх групи:

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

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

Наші припущення для розрахунків

  • Абсолютно новий проєкт у домені Healthcare. Розрахунок ROI проводиться за перший рік розробки.
  • Планується автоматизація UI end-to-end (E2E) сценаріїв із використанням API для менеджменту тестових даних.
  • Фултайм залученість Senior TA інженера для традиційного (надалі «TA», бо «Test Automation») та middle QA інженера для codeless (надалі «NC TA», бо «no-code») підходу впродовж усього періоду розробки.
  • QA/TA інженери мають достатній досвід роботи з обраними технологіями.
  • Для роботи з тестовою документацією для потреб автоматизації не потрібно залучати інших тестувальників.
  • Планується автоматизувати одну ітерацію ручного регресійного тестування та дві ітерації smoke-тестування на місяць.
  • У Healthcare-домені автотести мають не лише замінити ручну роботу, але й покращити стабільність і надійність системи.
  • Обсяг регресійного тестування буде розширюватися щомісяця, оскільки ми будемо розробляти нові функції в нашому продукті.
  • Перший реліз планується через шість місяців. Після цього support-команда почне обробляти запити від кінцевих користувачів та фіксити виявлені дефекти.
  • TypeScript і Playwright тех стек для традиційного TA і використання однієї з SaaS-платформ для NC TA.
  • Одноразова активність із налаштування проєкту для автоматизації не включена в наші розрахунки. Але маємо на увазі, що налаштування фреймворку з репортингом та CI/CD пайплайнами може зайняти до 40 годин для TA і лише кілька годин для NC TA.
  • Витрати на рефакторинг і підтримку тестів вважаємо однаковими для обох підходів. Зважаючи на велику різницю в часі на розробку тестів, ці значення також можуть відрізнятися в довгостроковій перспективі. З іншого боку ми очікуємо, що в рамках NC TA підходу буде розроблено набагато більше тестів. А це збільшить час на підтримку більшого скоупу. Але у будь-якому разі поки маємо недостатньо даних для порівняння.

Розрахунок і порівняння ROI

Крок 1: порівнюємо час на розробку тестів

Під час пілотного проєкту ми розробили скоуп E2E-тестів за допомогою однієї із codeless SaaS платформ. Потім оцінили, скільки часу знадобилося б для розробки цього ж скоупу в рамках традиційного підходу.

Це дає змогу порівняти effort в обох підходах.

У нашому випадку розробка NC TA тестів потребує в 3.18 рази менше часу в порівнянні з традиційним TA.

Крок 2: рахуємо витрати

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

Єдина відмінність між підходами в наших розрахунках полягає в тому, що NC TA не потребує код-рев’ю в традиційному значенні (хоча ці тести теж можна рев’юїти). Нагадаю, в розрахунках ми допустили, що обидва підходи потребують однакову кількість часу на рефакторинг і підтримку.

Ви, звісно, можете змінити ці всі цифри відповідно до ваших процесів.

Маючи цю інформацію, ми можемо оцінити реальну вартість години розробки нового тесту.

Легенда:

  • QA Engineer Salary: середня зарплата Senior TA та Middle General QA з відкритих джерел.
  • Rate: погодинна ставка на основі зарплати.
  • Tools and Licences Price: середня місячна ціна необхідних ліцензій і NC TA продукту.
  • Infrastructure Costs: середня ціна використання клауду та пайплайнів, необхідних для тестування.
  • Training Costs: середні витрати на навчання співробітників використанню програмного забезпечення. Додатково можемо взяти час, витрачений іншими людьми на потреби нашого процесу. Наприклад, інший TA інженер дивиться наш пул реквест.
  • Total test development hrs: середня кількість годин на місяць, витрачених на розробку нових тестів за попередніми розрахунками.
  • Total test development hrs with k: кількість годин, помножена на коефіцієнт із попередніх розрахунків (3.18).

Як бачимо, одна година розробки нових тестів є більш ніж у 4 рази дорожчою в традиційному TA підході в порівнянні з NC TA.

Крок 3: рахуємо ROI

Нарешті у нас є всі дані, необхідні для підрахунку ROI та порівняння двох підходів.

Легенда:

  • Development Costs: зарплата інженерів, вартість інструментів і ліцензій.
  • Infrastructure Costs: середня ціна клауду і пайплайнів, необхідних для тестування.
  • Training Costs: середні витрати для навчання працівників використанню ПЗ.
  • Cost Savings (QA): економія коштів завдяки заміні ручного регресійного тестування. Це приблизна кількість годин, помножена на погодинну ставку QA-інженера.
  • Cost Savings (Maintenance): економія коштів, витрачених на виправлення дефектів та підтримку після релізу.
  • Increased Revenue: додатковий дохід від продажів завдяки впровадженню нового підходу до тестування.
  • Intangible Benefits: задоволення клієнтів, ефективність рішень щодо розвитку продукту, конкурентна перевага тощо.

Як показують результати, річне ROI класичного TA гірше, ніж у NC TA (тут ми обмежимося лише цією якісною оцінкою, залишивши вам можливість надати більш розгорнуту або кількісну оцінку самостійно).

Ми навмисне залишили категорії «Increased Revenue» та «Intangible Benefits» порожніми. Вони повністю залежать від особливостей вашого проєкту. Продакт-менеджери можуть виміряти або спрогнозувати їх на основі різних метрик і показників. Але ці дві змінні можуть суттєво вплинути на кінцеву рентабельність, зробивши її позитивною.

Висновки

Розрахунки ROI дозволяють оцінити потенціал автотестів для кожного конкретного проєкту. Фреймворк, розглянутий у цій статті, може стати посібником, який допоможе приймати обґрунтовані рішення. Незалежно від того, працюєте ви з традиційним TA, досліджуєте потенціал нових інструментів чи процесів.

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

Хочете зробити розрахунки для свого проєкту? Скопіюйте шаблон Google Sheets та налаштуйте його відповідно до своїх потреб.

👍ПодобаєтьсяСподобалось5
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Трохи якось не послідовно автор пішов описуючи ROI в порівнянні з TA і NC TA, враховуючи що це перша стаття. Було б логічніше зпершу розказати про ваш вибір конкретного codelees інструмента. Висвітлити порівняння як зробити авто тест(и) на codelees і традиційною автоматизацією. Які переваги і недоліки обох підходів та час на виконання. А потім уже можна і про ROI поговорити) Але зараз для мене оці таблички з данними виглядають дуже розмито і не зрозуміло

дякую за статтю! Спільноті треба більше кейсів рахування ROI і обговорення Codeless рішень

Просто цікаво: шоб шо? Особливо, якщо знати, що частина спільноти вже спробувала codeless рішення на великих проектах і відмовилась від них

Шоб шо № 1 (про ROI) — за моїм суб’єктивним підрахунком, більшість інженерів не розуміє вартість і ефективність своєї роботи — порахувати ROI дуже прочищає мізки
Шоб шо № 2 (про codeless) — самі кажете

частина спільноти вже спробувала codeless

раніше навіть не пробували! А зараз 90% спробували і відмовились, але 10% спробували і закрили всі потреби. Не розумно не помічати позитивну динаміку

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

нам треба войсчат)) давно ця тема літає то там, то тут)

Про ROI — згоден.
Про codeless рішення з того, що сам бачив/приймав участь, це 3/3 відмови. Тобто 100% негативного досвіду.

Роі — дуже корисна і цікава штука. Але є одне але. Класичний кейс, коли шось іде по ... шкереберть ) починається аналіз якого біса, приходять до висновку, шо правильне рішення дуже дороговартісне, тому будемо клєпати автоматизацію, шоб якість стала краще, як би абсурдно воно не звучало ) І як не дивно до такого висновку приходяь не тест менеджери ) І там на роі вже пофіг, бо це по суті єдине шо ми можемо зробить, а робить шось треба, тому автоматизуємо )

1. Як вже написали колеги «ці всі розрахунки розібʼються в айсберг реальності реальної роботи на проекті». Команда нетехнічних qa з магічною nocode тулою не замінить команду aqa.
2. А яка взагалі автоматизація потрібна на проекті? Якщо раз на день запустити 5 позитивних тестів то nocode автоматизація підійде, якщо потрібно щось складніше то її недостатньо.
3. З фінансової точки зору ці всі розрахунки ROI це насправді не зовсім ROI. Зниження витрат це не profit. Визначення чистого прибутку неправильне.

3. Cost savings є частиною Net Profit (або Gains, або Benefits, назви можуть бути різні, так чи інакше — це частина чисельника). Якщо у Вас є інші варіанти розрахунків чи джерела інформації, то поділіться, будь ласка)

1. Як вже написали колеги «ці всі розрахунки розібʼються в айсберг реальності реальної роботи на проекті». Команда нетехнічних qa з магічною nocode тулою не замінить команду aqa.
2. А яка взагалі автоматизація потрібна на проекті? Якщо раз на день запустити 5 позитивних тестів то nocode автоматизація підійде, якщо потрібно щось складніше то її недостатньо.
3. З фінансової точки зору ці всі розрахунки ROI це насправді не зовсім ROI. Зниження витрат це не profit. Визначення чистого прибутку неправильне.

Витрати на рефакторинг і підтримку тестів вважаємо однаковими для обох підходів.

вибачайте, забув головне ) Це головнe моє питання до статті. В ідеалі, коли відбувається одна зміна в коді застосунку, яка впливає на умовно сотні тестів, то має відбутися одна відповідна зміна в автотестах. Як ви то робите в кодлес?

На прикладі TestIM — там є фіча shared steps, яка дозволяє використовувати спільні кроки у різних тестах. Якщо зміна коду вплинула лише на один з кроків з shared steps, то можна вважати, що пощастило. Але на практиці таке щастячко бувало дуже рідко і доводилось ці умовні 100+ тестів правити ручками, хоча у коді для цього було б достатньо змінити декілька умовних локаторів.

Усі pageobjects винесені в окрему бібліотеку, степи взаємодії з браузером чи апі об’єднані в загальні групи, винесені на рівень «над тестом» і зроблені максимально абстрактно, щоб їх можно було перевикористати за різних умов і сценаріїв. По суті, кожен тест складається виключно з використання загальних степ груп, які менеджаться в одному місці.

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

одна з вад автопілотів — обмеженість, свободу дає тільки машина з коробкою автомат
===> ми зараз десь тут
одна з вад автоматів — обмеженість, свободу дає тільки машина з ручною коробкою
одна з вад автомобілів — обмеженість, свободу дає тільки велосипед
одна з вад велосипедів — обмеженість, свободу дає тільки кінь
одна з вад коней — обмеженість, свободу дає тільки ходіння ногами
одна з вад ходіння — обмеженість, свободу дає лише нерухоме споглядання миттєвостей буття
¯\_(ツ)_/¯

якщо що, я сам топлю за кодфул, але по спині пробігає неприємний холодок, що ми з тобою стаємо луддитами 😅

Ох повір мені, ми без хліба не залишемося )

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

А практика — на те вона і практика, що у всіх різна) Щось десь працює, а десь ні.

Плюс, стаття трохи про інше. А більшість (і мене також) саме зацікавило обговорити codeless-рішення

Сорян, але тема називається

Codeless-підхід для автоматизації тестування

))) Тому всіх трігернуло саме це. Це ж, розумієте, біль багатьох інженерів коли менеджер не шарячи шось прочитав і з тупим підходом без плана і аналіза каже будемо робити так. Шоб ви розуміли, я був в такій ситуації, коли мені треба було скликати 16 людей на міт через 15 хвилин і сказати, шо у них є 24 години погодитися без плана, цілі, аналізу ризиків, саксес критеріїв і т.д. а якшо нє, то допобачення. А потім до другої ночі спілкувався з людьми, розбирался як так і як жити далі. І це було саме про кодлес. Тому воно прямісінько в серце )

Взагалі з цим сперичатися не буду ) Нажаль їх хороших не так багато.

Це дуже залежить. Але як показує практика, якщо менеджер не технічний, то все досить погано. Якщо людина раніше писала код, то значно простіше працювати. Особистий досвід, я розумію, що не всюди так.

Codeless, low-code або no-code підходи обіцяють значно спростити автоматизацію тестування без необхідності знань програмування. Та попри весь гайп, існує дуже мало детальної інформації про реальні проєкти.

Обіцяють, а потім виявляється, що на підтримку таких тестів потрібно значно більше часу і ресурсів. Півроку тому мігрували UI-тести з no-code платформи у код (Java + Playwright) і значно полегшили собі життя.

Плюс невпевнений, що ось ці всі no-code/low-code платформи будуть корисними для складних проектів (наприклад, у нас для e2e-тестів автоматично підіймається ec2 інстанс, конфіжиться k8s + docker)

Та попри весь гайп, існує дуже мало детальної інформації про реальні проєкти. Майже всю її можна поділити на дві умовні групи. Перша — це дифірамби від маркетологів, які працюють на codeless-платформи. Друга — це розбір обмежень або недоліків нового підходу від адептів традиційних цінностей автоматизації.

Знаєте чого так? Бо воно не працює на реальних проєктах. А знаєте звідки з’являються адепти другої групи? Тут теж є 2 категорії. Перша — це я 2 роки тому. Коли прийшов СТО і сказав тут є класна штука, я десь почув / мені хтось сказав / я десь прочитав і ми маємо спробувати. Тоді я поліз це детально аналізувати, побачив купу ризиків і дуже обмежену можливість застосування, де воно може працювати. І ми домовилися, шо не будемо поспішати і виділимо одну людину, яка певний час з цим поекспериментує. За пів року людина підтвердила мої побоювання, але черговий півень клюнув когось з топ менеджменту і вся команда в примусовому порядку перейшла на лоу код. І тепер приходить друга категорія, яка вже на власному досвіді реального проєкту переконалася, шо воно ну не робить. Через рік і весь менеджмент то допетрив і визнав, шо то була помилка. І так трапляється, коли маркетологи піарять, хтось робить маленькі натхненні дослідження, а хтось не розбираючись каже «все на зеро». Я ото все чекаю коли хтось прийде і скаже — ось у нас великий складний проєкт, вся наша автоматизація на лоу код і ось як ми це зробили. Тільки шось то ніяк не трапляється.

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

тому так, поки ця «чарівна пігулка» лоу коду не перетвориться на реально дієвий метод автоматизації — буду юзати онлі код

А воно так і працює ) У мене тоді була дуже сильна команда. Було 17 людей мануал + автомейшн і там були просто топові люди. Якби воно могло запрацювати, то ми б це зробили. Але в ітозі вийшло так, шо якість кудись вийшла разом з багатьма людьми. Вдалий експеримент ) Справедливості заради, люди вийшли не тільки через цю історію, але це був основний трігер, який запустив ланцюжкову реакцію.

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

Абсолютно згоден. Я не кажу, що це хлам і не має права на життя. Я кажу, що це дуже нішева історія. Проєктів, де це можна успішно застосувати досить мало. І це, як би, головна причина чому ми чуємо маркетологів більше, ніж інженерів )

Codeless дійсно все ще дуже нішева штука, але ще буквально 2-3 роки тому був хіба 1 успішний кейс автоматизації на 1000. Зараз най буде 100 (бо я все більше читаю про успішні кейси). Може через кілька років їх вже буде 1 з 10, і це стане суттєвою частиною роботи багатьох

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

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

Десь років 5-6 тому наш замовник міг таке сказати я думаю, кілька сотень великих тестів (не веб) було на лоукоді. Але є один нюанс ©. Всі наступні роки ці тести довго переписували на пайтоні, а лоу код поступово викидали. І сьогодні цей процес все ще не завершено, бо автоматизаторам є чим ще зайнятися.

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

Підписатись на коментарі