Що таке тестування програмного забезпечення?
Тестування ПЗ — перевірка того, що програма працює так, як задумано: відповідає вимогам, коректно поводиться за несподіваних даних і не ламається там, де раніше працювала. Мета — знайти дефекти до того, як їх знайде користувач.
Види тестування групують за кількома осями. За обʼєктом: функціональне (що робить програма) і нефункціональне (навантаження, безпека, зручність). За рівнем: модульне, інтеграційне, системне, приймальне. За способом виконання: ручне й автоматизоване.
Повністю протестувати програму неможливо: комбінацій вхідних даних нескінченно багато. Тому робота тестувальника — це вибір: техніки тест-дизайну допомагають покрити максимум ризиків обмеженою кількістю перевірок.
Де застосовується
Тестування йде на всіх рівнях одразу. Розробник закриває логіку модульними тестами, автоматизатор перевіряє звʼязки сервісів і ключові користувацькі сценарії, ручний тестувальник досліджує нову функцію і несподівані ситуації, які складно передбачити заздалегідь.
Окремі види перевірок підключають за потреби: навантажувальне тестування перед розпродажем, тестування безпеки для платіжних сервісів, перевірка доступності для державних порталів, сумісність із браузерами й пристроями для масових продуктів.
Приклад
Форма замовлення працює, поки в неї вводять очікувані дані. Тестувальник пробує порожнє імʼя, телефон із літер, суму в мінус і подвійне натискання кнопки — і знаходить сценарій, за якого замовлення створюється двічі, а списання проходить один раз.
Часті запитання
Які види тестування існують?
За рівнем — модульне, інтеграційне, системне, приймальне. За способом — ручне й автоматизоване. За метою — функціональне, навантажувальне, безпеки, зручності використання, сумісності. Комбінація обирається під продукт: платіжному сервісу і внутрішньому довіднику потрібні різні набори перевірок.
Чи можна протестувати програму повністю?
Ні, і це базовий принцип професії. Кількість можливих комбінацій даних і сценаріїв практично нескінченна. Тому задача не «перевірити все», а грамотно обрати перевірки: де ймовірність помилки вища і де її наслідки для бізнесу серйозніші.
Чим баг відрізняється від дефекту й помилки?
У суворій термінології помилка — дія людини, дефект — її слід у коді чи документації, відмова — видима неправильна поведінка системи. У повсякденній роботі «баг» використовують як загальне слово для дефекту, і це нікого не бентежить.
Коли потрібно починати тестувати?
Якомога раніше — в ідеалі з вимог, до написання коду. Помилка, знайдена у вимогах, виправляється правкою формулювання. Та сама помилка, виявлена після релізу, обходиться в рази дорожче: переробка, повторне тестування, зіпсований досвід користувачів.