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


Пример регрессионного тестирования - часть 2


Далее программист исправляет ошибку, например следующим образом:

... if ((Position>=-1)&& (Position<=this.Items.Count)) { this.Items.Insert(Position, Command); } else { if (Position==-1) { this.Items.Add(Command); } } ... Пример 7.6. Исправленный фрагмент кодаif ((Position>=-1)&& (Position<=this.Items.Count)) { this.Items.Insert(Position, Command); } else { if (Position==-1) { this.Items.Add(Command); } } Пример 7.6.1. Исправленный фрагмент кода

Для проверки скорректированного кода хочется пропустить только тест TCommandQueueTest2. Можно убедиться, что тест TCommandQueueTest2 будет выполняться успешно. Однако одной этой проверки недостаточно. Если мы повторим пропуск двух тестов, то при запуске первого теста, TCommandQueueTest1, будет обнаружен новый дефект. Повторный анализ кода показывает, что ветка else не выполняется. Таким образом, исправление в одном месте привело к ошибке в другом, что демонстрирует необходимость проведения полного перетестирования. Однако повторное перетестирование требует значительных усилий и времени. Возникает задача – отобрать сокращенный набор тестов из исходного набора (может быть, пополнив его рядом дополнительных - вновь разработанных - тестов), которого, тем не менее, будет достаточно для исчерпывающей проверки функциональности в соответствии с выбранным критерием. Организация повторного тестирования в условиях сокращения ресурсов, необходимых для обеспечения заданного уровня качества продукта, обеспечивается регрессионным тестированием.




- Начало -  - Назад -  - Вперед -



Книжный магазин