Що таке тестування програмного забезпечення?
Тестування ПЗ — перевірка того, що програма працює так, як задумано: відповідає вимогам, коректно поводиться за несподіваних даних і не ламається там, де раніше працювала. Мета — знайти дефекти до того, як їх знайде користувач.
Види тестування групують за кількома осями. За обʼєктом: функціональне (що робить програма) і нефункціональне (навантаження, безпека, зручність). За рівнем: модульне, інтеграційне, системне, приймальне. За способом виконання: ручне й автоматизоване.
Повністю протестувати програму неможливо: комбінацій вхідних даних нескінченно багато. Тому робота тестувальника — це вибір: техніки тест-дизайну допомагають покрити максимум ризиків обмеженою кількістю перевірок.
Повʼязані терміни
QA (Quality Assurance) — забезпечення якості продукту: робота над тим, щоб дефекти не зʼявлялися, а не лише знаходилися. QA охоплює весь процес розробки — від аналізу вимог до випуску версії.
Manual TestingРучне тестування — перевірка продукту людиною без запуску автотестів: тестувальник сам проходить сценарії, вивчає поведінку інтерфейсу й фіксує розбіжності з очікуваним результатом.
Test AutomationАвтоматизація тестування — написання програм, які самі виконують перевірки й порівнюють результат з очікуваним. Такі тести запускають за кожної зміни коду, щоб швидко помічати поломки у вже працюючій функціональності.
Unit TestingМодульне тестування — перевірка окремої невеликої частини коду — функції або класу — в ізоляції від решти системи. Такий тест не звертається до бази даних і зовнішніх сервісів: замість них підставляють заглушки.
E2E TestingE2E (end-to-end) тестування — перевірка повного користувацького сценарію на зібраній системі: тест відкриває браузер, реєструється, додає товар у кошик, оплачує й переконується, що замовлення зʼявилося. Усі компоненти при цьому працюють по-справжньому.
Regression TestingРегресійне тестування — повторна перевірка вже працюючої функціональності після змін у коді. Його мета — переконатися, що нова функція чи виправлення бага не зламали нічого з того, що раніше працювало.