Методы тестирования программного обеспечения. Степанченко И.В. - 45 стр.

UptoLike

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

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