Отладка и тестирование приложений в среде Visual Studio 2005. Евсеева О.Н - 85 стр.

UptoLike

Составители: 

85
Анализ показывает, что ошибка заключается в использовании неверного
знака сравнения в первой строке фрагмента (выделено другим тоном). Далее
программист исправляет ошибку, например, следующим образом:
...
if ((Position >= -1)&&(Position<=this.Items.Count))
{
this.Items.Insert(Position, Command);
}
else
{
if (Position==-1)
{
this.Items.Add(Command);
}
}
...
Для проверки скорректированного кода хочется пропустить только тест
TCommandQueueTest2. Можно убедиться, что тест TCommandQueueTest2 будет
выполняться успешно. Однако одной этой проверки недостаточно. Если мы по-
вторим пропуск двух тестов, то при запуске первого теста,
TCommandQueueTest1, будет обнаружен новый дефект. Повторный анализ кода
показывает, что ветка else не выполняется. Таким образом, исправление в од-
ном месте привело к ошибке в другом, что демонстрирует необходимость про-
ведения полного перетестирования. Однако повторное перетестирование требу-
ет значительных усилий и времени. Возникает задачаотобрать сокращенный
набор тестов из исходного набора (может быть, пополнив его рядом дополни-
тельных, вновь разработанных тестов), которого, тем не менее, будет достаточ-
но для исчерпывающей проверки функциональности в соответствии с выбран-
ным критерием. Организация повторного тестирования в условиях сокращения
ресурсов, необходимых для обеспечения заданного уровня качества продукта,
обеспечивается регрессионным тестированием.
4.5. Комбинирование уровней тестирования
В каждом конкретном проекте должны быть определены задачи, ресурсы
и технологии для каждого уровня тестирования таким образом, чтобы каждый
из типов дефектов, ожидаемых в системе, был «адресован», то есть в общем на-
боре тестов должны иметься тесты, направленные на выявление дефектов по-
добного типа.
Таблица 7
суммирует характеристики свойств модульного, инте-
грационного и системного уровней тестирования. Задача, которая стоит перед
тестировщиками и менеджерами, заключается в оптимальном распределении
ресурсов между всеми тремя типами тестирования. Например, перенесение