Учебно-методические материалы для студентов кафедры АСОИУ

Регрессионное тестирование

В ходе разработки программного обеспечения нередки ситуации, когда внесение изменений в код приводит к возникновению ошибок, которые были обнаружены и исправлены ранее. Для их выявления используется регрессионное тестирование.

Регрессионное тестирование - это процесс проверки изменений исходного кода программы и/или ее окружения, направленный на подтверждение того факта, что предыдущая версия программы работает с новыми изменениями так же, как и раньше. Общий смысл процедуры сводится к тому, что перед выпуском очередной версии программу пропускают через набор тестовых сценариев, подготовленных для предыдущей версии. Необходимость регрессионного тестирования обусловлена возможностью возникновения ошибок в коде, который не был предназначен для изменения, после исправления ошибок или добавления нового кода.

Типовая процедура регрессионного тестирования включает следующие этапы:

  1. Верификация версии (Build Verification Test). Эти тесты используются для проверки основной функциональности каждой версии программы. Верификация версии выполняется до того, как программа передается команде тестировщиков.
  2. Верификация ошибок (Bug Verification Test). Повторное тестирование исправленных ошибок.
  3. Регрессионное тестирование. Новая версия программы проверяется на наборе тестов, которые уже проводились с предыдущими ее версиями и не выявляли ошибок.
  4. Регрессионное тестирование на исправленных ошибках (Fixed Bug Test). Выполняется проверка ранее обнаруженных, исправленных и проверенных ошибок (fixed bugs). Это позволяет избежать возможности проявления таких ошибок (по разным причинам) после модификации кода.
    Этот набор тестов (S. Desikan называет его «окончательным регрессионным тестированием», (анг. «final regression testing»)) является заключительным. Именно этот этап обеспечивает получение пользователем того программного продукта, который не был изменен после всех тестов и исправлений.

Регрессионные тесты являются составной частью полного цикла тестирования, однако, как указывают специалисты компании A1QA, «на практике многое зависит от наличия свободных ресурсов, а также проектных, бюджетных и временных ограничений».

CC-BY-CA Цыганенко В.Н., 03.05.2014