Составители:
Рубрика:
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
- …
- следующая ›
- последняя »