Материал: Лекция 7. Регрессионное тестирование

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Тестирование программного обеспечения

Раздел 1. Основные понятия тестирования Раздел 2. Критерии выбора тестов Раздел 3. Разновидности тестирования Раздел 4. Особенности индустриального

тестирования

Раздел 5. Регрессионное тестирование

Раздел 5. Регрессионное тестирование

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

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

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

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

Цели регрессионного тестирования:

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

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

Повторный прогон всех тестов

Выборочное регрессионное тестирование

 

 

Прост в реализации

Требует дополнительных расходов при

 

внедрении

 

 

Дорогостоящий

Способно уменьшать расходы за счет

 

исключения лишних тестов

 

 

Обнаруживает все ошибки, которые были

Может приводить к пропуску ошибок

бы найдены при исходном тестировании

 

 

 

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

Важными задачами регрессионного тестирования являются:

-уменьшение стоимости выполнения тестов

-сокращение времени выполнения тестов.

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

Практический вариант решения задачи выборочного регрессионного тестирования состоит в получении полезной информации по результатам выполнения программы и объединения этой информации с данными статического анализа для получения некоего множества, которое включает все тесты, активирующие измененный (возможно, удаленный, возможно, новый) код, и не включающее никакие другие тесты.

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

Виды регрессионного тестирования

Классификация видов регрессионного тестирования связывает их с типами сопровождения ПО, которые, в свою очередь, определяются типами регрессионного тестирования, зависящими от выполняемой модификации ПО.

Выделяют три типа сопровождения ПО:

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

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

-усовершенствующее (прогрессивное) сопровождение включает любую обработку с целью повышения эффективности работы системы или эффективности ее сопровождения.

Источник: https://studfile.net/preview/16545231/