Що таке QA інжиніринг?

Що таке QA інжиніринг?

Jitesh Gosai, Principal Tester at BBC

У статті “Чому QA інжиніринг?” я заклав фундамент того, що таке QE. Зверніть увагу на акценти:

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

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

Що таке якість?

Оксфордський словник англійської мови визначає якість як:

  1. стандарт чогось у порівнянні з іншими речами подібного роду; ступінь досконалості чогось
  2. відмінна риса або характеристика, якою володіє хтось або щось.

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

Це привело мене у 2019 році до визначення якості:

Якість означає різні речі для різних людей

Покійний великий Джеральд Вайнберг за багато років до мене сформулював це так:

Якість — це цінність для когось

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

Отже, спроби впровадження QA інжинірингу в продукти вимагатимуть багато роботи, оскільки ви ніколи не зможете задовольнити кожну інтерпретацію того, що робить продукт якісним. То що ж нам робити?

Повернемося до моїх минулих думок з 2019 року:

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

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

Таким чином, якість можна підсумувати наступним чином:

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

Тепер, коли ми маємо базове визначення якості, ми можемо почати розпаковувати деякі інші сфери. По-перше, що я маю на увазі під продукцією, процесом і персони або “три П”.

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

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

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

Створення, підтримка та втрата якості

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

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

Вивчення якості та того, як вона створюється, підтримується і втрачається, є основною частиною інженерії якості.

Побудова якості від самого початку

Якщо інженерія якості — це вивчення якості, то хто такий інженер з якості?

Спочатку про те, що таке інжиніринг з Вікіпедії:

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

І далі:

  • Термін “інженерія” походить від латинського ingenium, що означає “розум”, та ingeniare, що означає “вигадувати, придумувати”.

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

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

Джерело: Jitesh Gosai (оригінал допису)

Перекладено та адаптовано на основі оригіналу: редакція
Поширюй: