Составители:
Рубрика:
42
принципу белого ящика предполагает выполнение каждого пути в про-
грамме, но поскольку в программе с циклами выполнение каждого пути
обычно нереализуемо, то тестирование всех путей не рассматривается.
3.1.1. Покрытие операторов
Если отказаться полностью от тестирования всех путей, то можно по-
казать, что критерием покрытия является выполнение каждого оператора
программы, по
крайней мере, один раз. Это метод покрытия операто-
ров. К сожалению, это слабый критерий, так как выполнение каждого опе-
ратора, по крайней мере, один раз есть необходимое, но недостаточное ус-
ловие для приемлемого тестирования по принципу белого ящика (рис. 3).
Предположим, что на рис. 3 представлена небольшая программа, которая
должна быть протестирована.
A>1 and
B=0
A=2 or
X>1
X = X/A
X = X + 1
a
True
c
False
True
Flase
b
d
e
Эквивалент на языке Java
// Точка a
if((A>1) && (B == 0))
X = X/A; // Точка c
// Точка b
if((A==2 || (X>1))
X++; // Точка e
// Точка d
Рис. 3. Блок-схема небольшого участка программы, который должен быть протестирован
Можно выполнить каждый оператор, записав один-единственный тест,
который реализовал бы путь асе. Иными словами, если бы в точке а были
установлены значения А = 2, В = 0 и Х = 3, каждый оператор выполнялся бы
один раз (в действительности Х может принимать любое значение).
К сожалению, этот критерий хуже, чем он кажется на первый взгляд
.
Например, пусть первое решение записано как «или», а не как «и» (в пер-
вом условии вместо “&&” стоит “||”). Тогда при тестировании с помощью
данного критерия эта ошибка не будет обнаружена. Пусть второе реше-
ние записано в программе как Х > 0 (во втором операторе условия); эта
принципу белого ящика предполагает выполнение каждого пути в про-
грамме, но поскольку в программе с циклами выполнение каждого пути
обычно нереализуемо, то тестирование всех путей не рассматривается.
3.1.1. Покрытие операторов
Если отказаться полностью от тестирования всех путей, то можно по-
казать, что критерием покрытия является выполнение каждого оператора
программы, по крайней мере, один раз. Это метод покрытия операто-
ров. К сожалению, это слабый критерий, так как выполнение каждого опе-
ратора, по крайней мере, один раз есть необходимое, но недостаточное ус-
ловие для приемлемого тестирования по принципу белого ящика (рис. 3).
Предположим, что на рис. 3 представлена небольшая программа, которая
должна быть протестирована.
a Эквивалент на языке Java
// Точка a
A>1 and True
if((A>1) && (B == 0))
B=0 c X = X/A; // Точка c
// Точка b
b False X = X/A if((A==2 || (X>1))
X++; // Точка e
// Точка d
A=2 or True
X>1 e
d Flase X=X+1
Рис. 3. Блок-схема небольшого участка программы, который должен быть протестирован
Можно выполнить каждый оператор, записав один-единственный тест,
который реализовал бы путь асе. Иными словами, если бы в точке а были
установлены значения А = 2, В = 0 и Х = 3, каждый оператор выполнялся бы
один раз (в действительности Х может принимать любое значение).
К сожалению, этот критерий хуже, чем он кажется на первый взгляд.
Например, пусть первое решение записано как «или», а не как «и» (в пер-
вом условии вместо “&&” стоит “||”). Тогда при тестировании с помощью
данного критерия эта ошибка не будет обнаружена. Пусть второе реше-
ние записано в программе как Х > 0 (во втором операторе условия); эта
42
Страницы
- « первая
- ‹ предыдущая
- …
- 38
- 39
- 40
- 41
- 42
- …
- следующая ›
- последняя »
