Автоматизоване тестування (Automation Testing) та безперервне тестування (Continuous Testing)   йдуть пліч-о-пліч все частіше, аніж поодиноко. Вони доповнюють один одного, але у будь-якому разі їх поняття не слід вважати синонімічними. Як автоматизоване (Automation Testing), так і безперервне тестування (Continuous Testing) мають монументальний вплив на DevOps та Continuous Delivery, кожен у свій унікальний спосіб. І не являються обов’язковою передумовою чи умовою, ні для DevOps, ні для Continuous Delivery — ба, навіть по відношенню один до одного.

   Який вид тестування обрати краще? Не має значення, обирайте за власним побажанням, коли працюєте за DevOps чи CI / CD. Це точно так само, як при дієті Ви обираєте  молоко, незважаючи на те, що надаєте перевагу овочам, замість щоденної пробіжки в 5 кілометрів. Оскільки молоко, овочі, легкі фізичні навантаження однаково допомагають підтримувати Ваше тіло у гарній формі, та роблять свій внесок у те щоб організм залишався здоровим та безперебійно функціював. Те саме стосується автоматизованого тестування (Automation Testing) та безперервного тестування (Continuous Testing).

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

Яка ж різниця? Automation Testing vs Continuous Testing?

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

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

ПРИМІТКА: Зустрічаються випадки, коли автоматизоване тестування (Automation Testing) замінюється на проектах повністю на безперервне тестування (Continuous Testing). Мені таке незрозуміло, я відстоюю правоту на відмінності цих 2-ох термінів та видів тестування. Я залишаюсь на боці автономії кожного з них, не приймаючи жодного розходження. Коли я говорю про автоматизоване тестування, у будь-якій формі, то маю на увазі тільки автоматизоване тестування.

Continuous Testing виходить за рамки автоматизації та охоплює різні практики, включаючи інструментальні та культурні зміни, які допомагають пом’якшити ризики, на кожному з етапів SDLC. DZONE

     Отже, безперервне тестування (Continuous testing) — це ціла методологія, спрямована на досягнення якості, у процесі безперервної розробки та вдосконалення програмного забезпечення. Завдяки таким практикам та спеціалізованим інструментам деплойментів може бути зроблена будь-яка кількість деплойментів на день навіть. (Continuous testing) потрібне, так як деплойменти потребують точності, просто тому, що оперують величезною кількістю даних, і немає впевненості, що вони об’єднані якимось зв’язками й послідовностями. Ви постійно балансуватимете між ризиками дій задля успішних міграцій та покращенням якості софту.

Разом Automation Testing & Continuous testing надають більше переваг, ніж по одинці

    Як зазначалося раніше, автоматизоване тестування та безперервне тестування можуть бути реалізовані окремо один від одного. Вам не потрібно використовувати автоматизоване тестування (Automation Testing), щоб підтвердити безперервне тестування (Continuous Testing), і навпаки. Слід постійно прагнути до великих чи малих (тестових) даних, що пом’якшують ризик та покращують якість. Але автоматизованене тестування посилює необхідність постійного тестування експоненціально.

Зменшуйте тести, мінімізуйте кількість кроків при застосуванні автоматизованого тестування!

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

  1. Я пишу тести на мій найактивніший і непокритий код?
  2. Чи мої тести перевіряють те, що вони повинні перевіряти?
  3. Чи мають мої тести непотрібне дублювання?
  4. Чи перевіряються всі зміни коду?

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

Золота жила автоматизованого тестування

     Організації, яким автоматизоване тестування по коліно, однозначно досягають успішних результатів і у Continuous Delivery. Тут є й швидкі поступові випуски, витончена архітектура програмного забезпечення, а також поширене застосування тестових фреймворків та інструментів — норма. Іншими словами, об’єми, швидкість та різноманітність експоненціальні. Саме тут Continuous Testing доводить свою цінність. Без безперервного тестування (Continuous Testing) неможливо приймати рішення, пов’язані з даними, щодо розробки тестів, оптимізації й удосконалення програмного коду. Це означає, що Ваші тести не є настільки ефективними, наскільки вони можуть бути.

На завершення:

     Якщо Ви ще не застосовуєте автоматизоване тестування на належному рівні, DevOps та Continuous Delivery. Якщо Ви ще не там, то незабаром Ви точно будете на цьому шляху. Безперервне тестування це новітній тренд Continuous Integration and Continuous Deployment, але вже популярний на ринку, з метою досягнення безперервної доставки продукту Continuous Delivery. Щодо початку інвестицій в безперервне тестування, то це питання вже пріоритетів Вашої компанії.

     На нашу думку, в плані якості потрібен якомога активніший підхід. На сьогоднішній день усі Web додатки мають набагато більшу гнучкість, щоб відповідати вимогам бізнесу. Але ця гнучкість пропорційно призводить до вразливості продукту. Перехід на автоматизоване тестування є недостатнім на теперішній час, щоб активно досягти якості. Гарантовано Сontinuous testing є запорукою для досягнення та підтримки високої якості продукту незалежно від його обсягу, швидкості, різноманітності.

Джерело: https://www.sealights.io/blog/automated-testing-vs-continuous-testing/

Related posts

Leave a Comment

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.