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

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

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

Особенности реализации регрессионного тестирования:

-некоторые участки кода программы не получают управление при выполнении некоторых тестов

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

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

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

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

-не всегда каждый оператор программы воздействует на каждый элемент ее

выходных данных.

_

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

Обоснование корректности метода отбора тестов.

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

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

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

Формулируемые правила осуществляют выбор только тестов, обнаруживающих изменения, и, т.о., метод отбора тестов будет корректным.

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

Классификация тестов при отборе

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

-множество тестов, пригодных для повторного использования.

-множество тестов, требующих повторного запуска.

-множество устаревших тестов.

-новые тесты, которые еще не запускались и могут быть использованы для тестирования.

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

К изменению существующих тестов могут привести три следующих вида деятельности программистов:

-создание новых тестов

-выполнение тестов

-изменение кода

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

Таким образом, к виду разрешенных изменений теста относятся всевозможные варианты выходных данных или траекторий.

Изменение выходных данных без изменения траектории и/или входных данных невозможно, следовательно, существует только два возможных варианта изменения теста: изменение траектории или изменение траектории и выходных данных.

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

Уровни повторного использования теста:

Уровень 1. Тест не допускает повторного использования и требуется создание нового набора тестов (например, путем удаления или изменения этого теста)

Уровень 2. Повторное использование возможно только для входных данных теста.

Уровень 3. Возможно повторное использование как входных, так и выходных данных теста.

Уровень 4. Наивысший уровень повторного использования теста, предусматривающий повторное использование входных данных,

выходных данных и траектории теста.

_

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