logo search
Тарасу / Информатика_ 1 семестр / подготовка к экзамену / Тестрование ПО +

Регрессионное тестирование (regression testing)

Если после окончания проекта, во время активного использования, обнаружили пару багов, исправили, заодно и пару функций добавили, а потом через некоторое время обнаружили, что код, с которым раньше не было проблем, нормально не работает?

По достоверным данным количество ошибок после изменения исходного кода (будь-то добавление новой функциональности или же исправление багов) составляет около 50%. Для того, чтобы выявить эти ошибки, и нужно регрессионное тестирование (regression test).

Основные виды тестов регрессии в порядке их важности (обычно в таком порядке их и выполняют).

1. Тесты верификации версии (Build Verification Test). Нужны эти тесты для проверки основной функциональности каждой версии программы. Только будучи уверенным в том, что основная функциональность программы не нарушена, можно спать спокойно. При нахождении ошибки с помощью таких тестов необходимо пересмотреть соответствующую часть кода на предмет ошибок.

2. Тесты верификации багов (Bug Verification Test). Если некоторый тест выявил баг, необходимо после исправления провести этот тест еще раз. Хотя проведение этих тестов и является логичным, многие программисты пренебрегают такого вида тестированием.

3. Тесты регрессии (Regression Test Pass). К этим тестам относятся те, которые уже проводились с предыдущими версиями софта и не выявляли ошибок. пногда при отсутствии времени некоторые из тестов можно пропустить (желательно только тогда, когда не были внесены изменения в соответствующие участки кода). Если ранее такие тесты уже проводились более 3 раз, процесс неплохо было бы автоматизировать.

4. Тесты регрессии на исправленных багах (тесты на закрытых багах). Что такое закрытые баги можно понять из примера. Пусть некоторый тест нашел ошибку. После исправления этот же тест ошибки не обнаружил. В этом случае баг и называется “закрытым”. Баг может проявится снова по ряду причин (особенно при модификации кода). Поэтому время от времени нужно возвращаться к этому месту программы.

В крупных фирмах при проведении регрессионного тестирования часто создают таблицы вида “номер теста – версия программы 1 – номер бага – версия 2 – … – версия N – номер бага”.