Prog Academy
RU UA
QA та тестування

Що таке QA (Quality Assurance)?

QA (Quality Assurance) — забезпечення якості продукту: робота над тим, щоб дефекти не зʼявлялися, а не лише знаходилися. QA охоплює весь процес розробки — від аналізу вимог до випуску версії.

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

Далі починається перевірка: ручне тестування нових функцій, регресія перед релізом, робота з багами та їхніми пріоритетами, комунікація з розробниками й аналітиками. Згодом додається автоматизація рутинних перевірок.

QA і тестування — не синоніми

Тестування — це пошук дефектів у вже зробленому продукті, одна з активностей. QA ширше: це вибудовування процесу так, щоб дефектів виникало менше — вимоги без двозначностей, критерії готовності, автоматичні перевірки в конвеєрі збірки. Тестування відповідає на питання «чи працює?», QA — «чому ламається і як перестати».

Докладна стаття в блозі →

Повʼязані терміни

Software Testing

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

Manual Testing

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

Test Case

Тест-кейс — опис однієї перевірки: за яких умов, які кроки виконати, з якими даними і що вважається правильним результатом. За хорошим тест-кейсом перевірку може виконати будь-яка людина в команді й отримати той самий висновок.

Test Automation

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

Regression Testing

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