База знань

Регресійне тестування

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

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

regr_test

Є кілька видів регресійних тестів:

  • Верифікаційні тести. Проводять для перевірки виправлення виявленого та відкритого раніше бага.
  • Тестування верифікації версії. Містить принципи димного тестування та тестування зборки: перевірка працездатності основної функціональності програми в кожній новій версії.
  • Безпосередньо саме регресійне тестування – повторне виконання всіх тестів, які були написані та проведені раніше. Вони виконуються по вже існуючих тест-кейсам незалежно від того, були в ході їх проходження знайдені баги, чи ні.
  • Тестування в новому білді вже виправлених багів в старих білдах. Це виконується для того, щоб перевірити, чи не відновило оновлення білду старих дефектів.

Деякі положення щодо того, як проводити регресійне тестування:

  • Даний вид тестування проводиться в кожному новому білді.
  • Починати потрібно з верифікації версії (тестування зборки та димне тестування).
  • Перевірка виправлених багів.
  • Регресійне тестування, в основному, не покриває весь додаток, а тільки ті ділянки, які тим чи іншим способом «стикаються» зі змінами в білді.

Далі тестуються вже закриті раніше баги.

1) Регресійне тестування рекомендується проводити кілька разів (3-5). Тому, з метою економії дорогоцінного часу (і, може бути, для позбавлення від «рутинності») в регресійних тестах активно використовують засоби автоматизації тестування.

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

Також регресійне тестування активно використовується в екстремальній розробці.