Составители:
Рубрика:
43
ошибка также не будет обнаружена. Кроме того, существует путь, в ко-
тором Х не изменяется (путь abd). Если здесь ошибка, то и она не будет
обнаружена. Таким образом, критерий покрытия операторов является на-
столько слабым, что его обычно не используют.
3.1.2. Покрытие решений
Более сильный критерий покрытия логики программы (и
метод тести-
рования) известен как покрытие решений, или покрытие переходов. Со-
гласно данному критерию должно быть записано достаточное число тес-
тов, такое, что каждое решение на этих тестах примет значение истина и
ложь по крайней мере один раз. Иными словами, каждое направление пе-
рехода должно быть реализовано по крайней мере один
раз. Примерами
операторов перехода или решений являются операторы while или if.
Можно показать, что покрытие решений обычно удовлетворяет кри-
терию покрытия операторов. Поскольку каждый оператор лежит на неко-
тором пути, исходящем либо из оператора перехода, либо из точки входа
программы, при выполнении каждого направления перехода каждый
оператор должен быть выполнен.
Однако существует, по крайней мере,
три исключения. Первое – патологическая ситуация, когда программа не
имеет решений. Второе встречается в программах или подпрограммах с
несколькими точками входа (например, в программах на языке Ассемб-
лера); данный оператор может быть выполнен только в том случае, если
выполнение программы начинается с соответствующей точки входа.
Третье исключение
– операторы внутри switch-конструкций; выполнение
каждого направления перехода не обязательно будет вызывать выполне-
ние всех case-единнц. Так как покрытие операторов считается необходи-
мым условием, покрытие решений, которое представляется более силь-
ным критерием, должно включать покрытие операторов. Следовательно,
покрытие решений требует, чтобы каждое решение имело результа-
том значения истина и
ложь и при этом каждый оператор выпол-
нялся бы, по крайней мере, один раз. Альтернативный и более легкий
способ выражения этого требования состоит в том, чтобы каждое реше-
ние имело результатом значения истина и ложь и что каждой точке вхо-
да (включая каждую case-единицу) должно быть передано управление
при вызове
программы, по крайней мере, один раз.
Изложенное выше предполагает только двузначные решения или пе-
реходы и должно быть модифицировано для программ, содержащих мно-
гозначные решения (как для case-единиц). Критерием для них является
выполнение каждого возможного результата всех решений, по крайней
мере, один раз и передача управления при вызове программы
или под-
программы каждой точке входа, по крайней мере, один раз.
ошибка также не будет обнаружена. Кроме того, существует путь, в ко- тором Х не изменяется (путь abd). Если здесь ошибка, то и она не будет обнаружена. Таким образом, критерий покрытия операторов является на- столько слабым, что его обычно не используют. 3.1.2. Покрытие решений Более сильный критерий покрытия логики программы (и метод тести- рования) известен как покрытие решений, или покрытие переходов. Со- гласно данному критерию должно быть записано достаточное число тес- тов, такое, что каждое решение на этих тестах примет значение истина и ложь по крайней мере один раз. Иными словами, каждое направление пе- рехода должно быть реализовано по крайней мере один раз. Примерами операторов перехода или решений являются операторы while или if. Можно показать, что покрытие решений обычно удовлетворяет кри- терию покрытия операторов. Поскольку каждый оператор лежит на неко- тором пути, исходящем либо из оператора перехода, либо из точки входа программы, при выполнении каждого направления перехода каждый оператор должен быть выполнен. Однако существует, по крайней мере, три исключения. Первое – патологическая ситуация, когда программа не имеет решений. Второе встречается в программах или подпрограммах с несколькими точками входа (например, в программах на языке Ассемб- лера); данный оператор может быть выполнен только в том случае, если выполнение программы начинается с соответствующей точки входа. Третье исключение – операторы внутри switch-конструкций; выполнение каждого направления перехода не обязательно будет вызывать выполне- ние всех case-единнц. Так как покрытие операторов считается необходи- мым условием, покрытие решений, которое представляется более силь- ным критерием, должно включать покрытие операторов. Следовательно, покрытие решений требует, чтобы каждое решение имело результа- том значения истина и ложь и при этом каждый оператор выпол- нялся бы, по крайней мере, один раз. Альтернативный и более легкий способ выражения этого требования состоит в том, чтобы каждое реше- ние имело результатом значения истина и ложь и что каждой точке вхо- да (включая каждую case-единицу) должно быть передано управление при вызове программы, по крайней мере, один раз. Изложенное выше предполагает только двузначные решения или пе- реходы и должно быть модифицировано для программ, содержащих мно- гозначные решения (как для case-единиц). Критерием для них является выполнение каждого возможного результата всех решений, по крайней мере, один раз и передача управления при вызове программы или под- программы каждой точке входа, по крайней мере, один раз. 43
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »