Крім планування, аналізу та проектування, забезпечення якості (QA) і контроль якості (QC) відіграють важливу роль в процесі розробки програмного забезпечення.
Quality Assurance і Quality Control – ці терміни схожі на взаємозамінні, але різниця між забезпеченням якості і контролем якості все-таки є, хоча на практиці процеси і мають деяку схожість.
QA (Quality Assurance) – Забезпечення якості продукту
Перед початком розробки інженер QA встановлює вимоги до якості ПЗ. А вже до процесу забезпечення якості відносяться розробка, створення і випуск ПЗ з найменшою кількістю дефектів і помилок для кінцевого користувача. QA забезпечує такі методи і техніки для всіх учасників процесу, щоб в кінці випустити найкращий продукт.
До завдань забезпечення якості відносяться:
- перевірка технічних характеристик і вимог до ПЗ;
- оцінка ризиків;
- планування завдань для поліпшення якості продукції;
- підготовка документації, тестового оточення і даних;
- тестування;
- аналіз результатів тестування, а також складання звітів та інших документів.
До переваг QA відноситься структурованість ходу виконання роботи над ПЗ, тобто існують заздалегідь спланований план і завдання, які повинен виконати кожен фахівець що бере участь в процесі. Наприклад, тестувальник знає, на якому етапі необхідно починати тестування і слідує плану.
Перед початком контролю якості повинні бути визначені стандарти якості ПЗ та обсяг тестування.
QC (Quality Control) – Контроль якості продукту
До процесу відноситься аналіз результатів тестування, виявлення та усунення дефектів в ПЗ. QC визначає поточний стан продукту і якість виконаної роботи.
До завдань контролю якості відносяться:
- перевірка готовності ПЗ до релізу;
- перевірка відповідності вимог і якості даного проекту.
У разі, якщо виявлено велику кількість помилок, план розробки переглядається і виправляються помилки. Таким чином, QC стає зацикленим в процесі роботи над ПЗ.
Що стосується тестування, то воно не гарантує якість продукту, а лише його контролює на виконання стандартів безпеки та ефективності.
Таким чином, тестування орієнтоване на продукт і знаходиться в області контролю якості. З описаного вище можна зрозуміти, що QC і тестування є складовими для забезпечення якості продукту.
QA і QC не тільки тісно пов'язані між собою, але й доповнюють один одного. Різниця стає більш очевидною в процесі реалізації цих функцій:
- забезпечення якості розробляється на стадії до реалізації продукту, коли сам процес пов'язаний тільки з аналітикою;
- контроль якості розробляється на стадії, коли продукт вже частково готовий.
А ось самі QA і QC інженери перевіряють як працює кожен елемент продукту окремо, а також їх взаємодію, коли всі елементи зібрані.
Розробка якісного ПЗ, а також підтримання якості – це головне в життєвому циклі будь-якого продукту. Тому необхідно дотримуватися певних стандартів, щоб задовольнити вимоги замовника або користувача до програмного забезпечення.