18
Существует еще один критерий, названный покрытием решений/условий. Он требует такого
достаточного
набора тестов, чтобы все возможные результаты каждого условия в решении
выполнялись, по крайней мере, один раз; все результаты каждого решения выполнялись
тоже один
раз и каждой точке входа передавалось управление, по крайней мере, один раз.
Недостатком критерия покрытия решений/условий является невозможность его применения
для выполнения всех результатов всех условий. Часто подобное выполнение имеет место
вследствие того, что определенные условия скрыты другими условиями. Например, если условие
AND
есть ложь, то никакое из последующих условий в выражении не будет выполнено.
Аналогично, если условие OR есть истина, то никакое из последующих условий не будет
выполнено. Следовательно, критерии покрытия условий и покрытия решений/условий
недостаточно чувствительны к ошибкам в логических выражениях.
Критерием, который решает эти и
некоторые другие проблемы, является комбинаторное
покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации
результатов условия в каждом решении
и все точки входа выполнялись, по крайней мере, один раз.
В случае циклов число тестов для удовлетворения критерию комбинаторного покрытия
условий обычно больше, чем число путей.
Легко видеть,
что набор тестов, удовлетворяющий критерию комбинаторного покрытия
условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия
решений/условий.
Таким образом,
для программ, содержащих только одно условие на каждое решение,
минимальным является критерий, набор тестов которого вызывает выполнение всех результатов
каждого решения, по крайней мере, один раз; передает управление каждой точке входа (например,
оператор CASE).
Для
программ, содержащих решения, каждое из которых имеет более одного условия,
минимальный критерий состоит из набора тестов, вызывающих
все возможные комбинации
результатов условий в каждом решении и передающих управление каждой точке входа программы,
по крайней мере, один раз.
Деление алгоритма на типовые стандартные структуры позволяет минимизировать усилия
программиста, затрачиваемые им на тестирование. Запрет на вложенные структуры как раз и
объясняется излишними затратами на тестирование. Использование цепочки простых альтернатив
с одним действием или структуры ВЫБОР вместо вложенных простых АЛЬТЕРНАТИВ
значительно сокращает число тестов!
Задание.
1.
Оформить внешнюю спецификацию.
2.
Составить в виде блок-схемы алгоритм решения задачи.
3.
Создать программу решения задачи на
любом алгоритмическом языке
программирования.
4.
Составить набор тестов и провести тестирование созданной программы с помощью
методов «белого ящика» (покрытия операторов, покрытия решений, покрытия условий,
комбинаторного покрытия условий).
5.
Оформить отчет по лабораторной работе.
Достарыңызбен бөлісу: