З наближенням фінальної точки розробки, перш ніж потрапити до кінцевого користувача практично кожен програмний продукт ретельно тестується QA engineer. Так, саме QA engineer -s (інженери з тестування) детально вивчають вимоги до продукту, виконують різного роду перевірки, локалізують і описують дефекти, відповідаючи за якість продукту (Quality Assurance).

Головні причини чому попит на послуги QA стабільно збільшується, а бюджети ростуть:

  • Зростання використання технологій в повсякденному житті серед мас в середньому кожен користувач використовує на телефоні дев’ять додатків на день подумайте, як виросте це число, якщо підрахувати всі технології, які ми споживаємо щодня.
  • У всьому світі спостерігається зростання жорсткості вимог до безпеки продуктів, які мають вплив на життя людини при швидких релізах про безпеку легко забути. Якщо це мінорний баг у фейсбуці, то нічого страшного, вірно? Але якщо це фінансовий додаток, програма охорони здоров’я то серйозно.
  • Поглиблення конкуренції між компаніями, відповідно, і між їх бізнес рішеннями щоб здобувати нових та утримувати існуючих клієнтів, аплікації повинні бути якомога функціональнішими та зручнішими. Максимально задовольняти вимоги та інтереси кінцевих користувачів тобто клієнтів їх клієнтів.

     А через те що, інформаційні технології на місці не стоять: змінюються ролі учасників у SDLC (Циклі Розробки Програмного Забезпечення), з’являються все нові інструменти й підходи  виникає необхідність QA engineer -ам серйозніше навчатися та здобувати нових навичок.

Ми вже не раз говорили про те, що хороший тестувальник не зупиняється у своєму розвитку: 

    А зараз ще наголосимо на важливості “Тримати ніс по вітру…” пильно стежити за всіма новинками в ІТ-індустрії. Відвідувати різноманітні ІТ ЗАХОДИ. Спілкуватися з колегами по професії, намагаючись  з’ясувати, у який спосіб працюють в інших компаніях.

     У даній статті пропонується коротенький огляд сучасних трендів у ІТ, які вже від сьогодні опосередковано впливають на роботу, коло обов’язків і ступінь відповідальності багатьох QA engineer тестувальників.

Тренд # 1. Розвиток IoT-технологій (інтернету речей)

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

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

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

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

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

Тренд#2 Artificial Intelligence & Machine Learning

Artifical Intelligence & Machine Learning (пер. з aнг. штучний інтелект та машинне навчання) ці новітні технології застосовуються до розробки спеціалізованого програмного ПЗ призначеного для підвищення продуктивності роботи тестувальників та підвищення якості програмного забезпечення, яке вони тестують. З огляду на нещодавні успіхи у цій галузі, в майбутньому очікується ще більша кількість «розумних» інструментів для автоматизації процесу тестування, які можна буде більш гнучко налаштувати.

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

    Отже, QA engineer -ам рекомендується ґрунтовно вивчати автоматизоване тестування. Автоматизоване тестування з часом використовуватиметься все більше і більше.

Тренд #3 Поєднання Автоматизованого та Ручного тестування

Автоматизація може бути “рішенням за замовчуванням і без аргументів” у багатьох компаніях. Але слід відчувати баланс між ручними й автоматизованими перевірками! Дане відчуття міри допомагає “не ускладнювати собі роботу й життя” коли цього непотрібно. Є беззаперечною перевагою перед конкурентами. Значно впливає на оплату праці хорошого фахівця QA engineer -а.

     Сюди можна ще додати: потрібно тримати баланс між тестуванням і бюрократичним спілкуванням, мітингами, перепискою у чатах тощо.

Тренд #4 Agile і DevOps стирають кордони

Гнучка методологія розробки  Agile і практики DevOps (тісний контакт розробників з фахівцями з операційної діяльності) визначають місце тестувальників і впливають на взаємодію всередині команди з тестування.

     Принципи Agile і DevOps будуть застосовуватися все ширше, і тестувальники повинні розбиратися в них і вміти до них адаптуватися.

     Так, наприклад, зростаюча популярність DevOps свідчить про розмиття кордонів. Все менше стає розмежувань між Dev & QA. Що це означає для тестувальників? Їм доведеться більше тестувати на продакшині, ніж на тестових стендах. Тестувальники зобов’язані вчитися взаємодіяти з командою розробки, щоб домогтися успіху в ІТ-світі без кордонів. Оскільки розробники будуть безперервно працювати в парі з тестувальниками, цілком ймовірно, що вони будуть вимагати постійного зворотного зв’язку від них, щоб дізнаватися статуси якості програмного забезпечення для швидкого виправлення помилок.

     Успішна участь в Agile-проектах також вимагає від QA engineer тестувальників вміння вести комунікацію з девелоперами, бізнес-аналітиками, менеджерами по виробництву і стекхолдерами, швидко реагувати на зміни вимог, визначати тестове покриття в умовах стислих термінів.

Більш детальніше про це читайте: Continuous Testing: зближення Dev & QA

Тренд #5 Автоматизація з неперервними інтеграціями

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

     У зв’язку з цим компанії інвестують все більше коштів в покращення своїх процесів і методів розробки та постачання, а також намагаються використовувати правильний набір інструментів, зокрема інструментів та практик DevOps. А в свою чергу DevOps, підвищує роль застосування автоматизованого тестування та ідей CI (Continuous Integration) в тестуванні та забезпеченні якості ПЗ.

Теж більш детальніше ознайомитися: Великі дебати: Automated Testing vs Continuous Testing

Тренд#6 Python стане ще більш популярною мовою програмування

ДУЖЕ скоро знання будь-якої із мов програмування буде обов’язковою вимогою на посаду QA engineer тестувальника, щоби вони могли “без розмов” при потребі займатися автоматизованим тестуванням.

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

Тренд #7 Використання Open Source інструментів

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

    Наприклад, Selenium, Appium, JMeter інструменти з відкритим кодом, які вже давно використовуються в автоматизованому тестуванні. Однак не тільки автоматизоване тестування провадиться за допомогою Open Source інструментів. Для тестування API може застосовуватися SoapUI, для навантажувального тестування продуктивності системи — Apache JMeter.

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

Тренд #7 Перехід від Performance Testing до Performance Engineering

Мобільні додатки продовжують завойовувати більшу частку на ринку технологій. Успіх більшості Веб та мобільних додатків залежить від його UX. Чим кращий користувацький відгук від роботи з додатком, тим вищі його шанси на успіх.

   Необхідність забезпечення найкращого UX призводить до переваг Software / Performance Performance Engineering (SPE), а не просто тестування продуктивності. Цей системний та кількісний підхід зосереджений на послідовному тестуванні архітектури, дизайну та API. Передбачає послідовне виконання flow додатків на різних платформах, операційних системах і мобільних пристроях.

     Performance Performance Engineering (SPE) гарантує, що вироблене програмне забезпечення відповідатиме вимогам продуктивності і буде доставлене вчасно.

Тренд#8 Cloud Testing 

Якщо TDD (Test Driven Development) та СI (Continuous Integration) забезпечують зменшення помилок в життєвому циклі розробки ПЗ, то віртуацізація однозначно забезпечує швидкість. На сьогоднішній день тестувальники користуються певними принципами при тестуванні хмарних сервісів. Так, для тестування веб-додатків використовується реальний веб-трафік. Також перевіряються такі функції, як програмна надмірність, продуктивність і масштабованість.

Тренд#9 Підхід Micro Services Test Automation

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

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

Тренд #10 Ще більше Big Data

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

     Так що ж таке «великі дані»? Визначень можна знайти багато, але всі вони зводяться до того, що Big Data пов’язано з об’ємом і обробкою. Раніше ми тестували мегабайти і гігабайти, а тепер все частіше йдеться про терабайт і петабайт. Однак справа не тільки в кількості нулів.

     Великі дані пов’язані з так званими чотирма «V»: volume (обсяг), velocity (швидкість, з якою нові дані генеруються), variety (різноманітність даних) і veracity (достовірність даних).

     Проблема великих даних полягає в тому, що вони завжди погано структуровані. Більшість з них отримані з соціальних мереж. Це дзвінки, повідомлення, пошукові запити, картинки, PDF-файли і інша інформація.

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

      Відзначимо, при тестування великих даних часто впроваджується автоматизація тестування.

Підсумок:

Щоб домогтися успіху, тестувальники повинні стежити за змінами, бути готовими до змін і серйозно поставитися до саморозвитку. Якщо Ви вже освоїли базові навички QA engineer тестувальника, Вам неодмінно слід спробувати себе в автоматизованому тестуванні ПЗ.

Запрошуємо на курси: Повний перелік курсів Quality Assurance Group

Related posts

Командний рядок

Що таке командна стрічка, кілька прикладів як із нею працювати

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

Читати більше
Кращі книги для QA

5+2 топ книг для тестувальників початківців

Публікуємо до Вашої уваги підбірку 5+2 ТОП найкращих книг для QA Test Engineer. Всі ці IT книги перевірені часом. Книги по Тестуванню Програмного Забезпечення,...

Читати більше

Leave a Comment

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