Составители:
Рубрика:
47
выше тесты не покрывают всех путей, они пропускают путь acd. Например,
требуется восемь тестов для тестирования следующей программы:
if((x == y) && (z == 0) && end)
j = 1;
else
i = 1;
хотя она покрывается лишь двумя путями. В случае циклов число тестов
для удовлетворения критерию комбинаторного покрытия условий обыч-
но больше, чем число путей.
Таким образом, для программ, содержащих только
одно условие на
каждое решение, минимальным является критерий, набор тестов которого:
1) вызывает выполнение всех результатов каждого решения, по крайней
мере, один раз;
2) передает управление каждой точке входа (например, точке входа,
case-единице) по крайней мере один раз (чтобы обеспечить выполне-
ние каждого оператора программы по крайней мере один
раз).
Для программ, содержащих решения, каждое из которых имеет бо-
лее одного условия, минимальный критерий состоит из набора тестов,
вызывающих выполнение всех возможных комбинаций результатов ус-
ловий в каждом решении и передающих управление каждой точке входа
программы, по крайней мере, один раз. Слово «возможных» употреблено
здесь потому, что некоторые комбинации условий
могут быть нереали-
зуемыми; например, в выражении (a>2) && (a<10) могут быть реализова-
ны только три комбинации условий.
3.2. Стратегии черного ящика
3.2.1. Эквивалентное разбиение
В главе 1 отмечалось, что хороший тест имеет приемлемую вероят-
ность обнаружения ошибки и что исчерпывающее входное тестирование
программы невозможно. Следовательно, тестирование программы огра-
ничивается использованием небольшого подмножества всех возможных
входных данных. Тогда, конечно, хотелось бы выбрать для тестирования
самое подходящее подмножество (т. е. подмножество с наивысшей веро-
ятностью обнаружения большинства ошибок).
Правильно выбранный тест этого подмножества должен обладать
двумя свойствами:
• уменьшать, причем более чем на единицу, число других тестов, ко-
торые должны быть разработаны для достижения заранее определен-
ной
цели «приемлемого» тестирования;
• покрывать значительную часть других возможных тестов, что в не-
которой степени свидетельствует о наличии или отсутствии ошибок
выше тесты не покрывают всех путей, они пропускают путь acd. Например, требуется восемь тестов для тестирования следующей программы: if((x == y) && (z == 0) && end) j = 1; else i = 1; хотя она покрывается лишь двумя путями. В случае циклов число тестов для удовлетворения критерию комбинаторного покрытия условий обыч- но больше, чем число путей. Таким образом, для программ, содержащих только одно условие на каждое решение, минимальным является критерий, набор тестов которого: 1) вызывает выполнение всех результатов каждого решения, по крайней мере, один раз; 2) передает управление каждой точке входа (например, точке входа, case-единице) по крайней мере один раз (чтобы обеспечить выполне- ние каждого оператора программы по крайней мере один раз). Для программ, содержащих решения, каждое из которых имеет бо- лее одного условия, минимальный критерий состоит из набора тестов, вызывающих выполнение всех возможных комбинаций результатов ус- ловий в каждом решении и передающих управление каждой точке входа программы, по крайней мере, один раз. Слово «возможных» употреблено здесь потому, что некоторые комбинации условий могут быть нереали- зуемыми; например, в выражении (a>2) && (a<10) могут быть реализова- ны только три комбинации условий. 3.2. Стратегии черного ящика 3.2.1. Эквивалентное разбиение В главе 1 отмечалось, что хороший тест имеет приемлемую вероят- ность обнаружения ошибки и что исчерпывающее входное тестирование программы невозможно. Следовательно, тестирование программы огра- ничивается использованием небольшого подмножества всех возможных входных данных. Тогда, конечно, хотелось бы выбрать для тестирования самое подходящее подмножество (т. е. подмножество с наивысшей веро- ятностью обнаружения большинства ошибок). Правильно выбранный тест этого подмножества должен обладать двумя свойствами: • уменьшать, причем более чем на единицу, число других тестов, ко- торые должны быть разработаны для достижения заранее определен- ной цели «приемлемого» тестирования; • покрывать значительную часть других возможных тестов, что в не- которой степени свидетельствует о наличии или отсутствии ошибок 47
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »