Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcija_2._RPOD.doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
1.67 Mб
Скачать

Тестирование программы.

Под тестированием понимают процесс исполнения программы с целью обнаружения в ней логических ошибок. Под логической ошибкой понимают любое несоответствие программы заданной на неё спецификации.

Будем тестировать программу методом тестирования путей. Существуют только два пути выполнения разработанной программы (см. Рисунок 3). Необходимо подобрать исходные данные для выполнения программы по каждому из возможных путей. Однако, учитывая, что условие ветвление сложное: оно состоит из составных частей, каждое из которых может содержать ошибку, для левой ветви необходимо разработать шесть тестовых наборов, по одному для каждой из частей условия.

Набор тестов для тестирования разработанной программы представлен в таблице 2.

Таблица 2. Тестовый набор данных

Номер теста

Исходные данные

Ожидаемый результат

Пояснения

1

a = -3, b = 4, c = 5

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, a < 0

2

a = 3, b = -4, c = 5

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, b < 0

3

a = 3, b = 4, c = -5

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, c < 0

4

a = 1, b = 4, c = 5

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, c = b + a

5

a = 1, b = 6, c = 4

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, b > a + c

6

a = 1, b = 2, c = 5

'a,b,c - не стороны треугольника'

Левая ветвь IFTHENELSE, c > b + a

7

a = 3, b = 4, c = 5

s = 6

Правая ветвь IFTHENELSE

Структурные операторы

Структурный оператор - оператор, в состав которого могут входить один или несколько операторов, порядок выполнения которых он определяет.

Структурные операторы подразделяются на:

  • Составной оператор

  • Условные операторы

  • Операторы цикла

  • Оператор над записями

Условные операторы

Условные операторы позволяют выбрать для выполнения один из нескольких операторов (или не выбрать ни одного).

Этот выбор осуществляется в зависимости от некоторого условия.

По типу условия выбора и по числу доступных для выбора операторов условные операторы делятся на:

  • Условный оператор if

  • Оператор варианта case

Условный оператор if

Условный оператор (if) имеет следующий синтаксис (см. также синтаксическую диаграмму):

if E then s1 else s2

и может так же использоваться в сокращённом виде

if E then s1

здесь E - выражение, s1 – оператор, и s2 – оператор. Выражение E называют условием выбора, оно должно быть выражением стандартного типа Boolean (мы будем также называть этот тип логическим или булевским); if, then и else – зарезервированные слова.

Полная форма оператора if предполагает выбор одного из двух операторов: S1, S2 в зависимости от условия выбора: если E = True, то выполняется оператор S1, иначе если E = False, то выполняется оператор S2.

Сокращенная форма оператора if предполагает выбор одного из двух операторов: S1 и пустого оператора в зависимости от условия выбора: если E = True, то выполняется оператор S1, иначе если E = False, то выполняется пустой оператор.

Синтаксическая неоднозначность, возникающая в конструкции:

if E1 then if E2 then S1 else S2

разрешается путем следующей интерпретации этой конструкции:

if E1 then begin if E2 then S1 else S2 end;

В общем случае, ключевое слово else связывается с ближайшим ключевым словом if, с которым еще не ассоциировано else.

Управляющая структура оператора if в сокращённой форме - это структура типа «ifthen», в которой if-тест соответствует выражению E, а then - часть - оператору S1.

Управляющая структура оператора if в полной форме - это структура типа «ifthenelse», в которой if-тест соответствует выражению E, then - часть - оператору S1, else - часть - оператору S2.

Пример оператора if

var

X, Y, Z: Integer;

begin

Readln(X, Y);

if X > Y then Z:= X else Z:= Y;{ Z = max(X,Y). В результате выполнения оператора if Z получает наибольшее из значений X и Y }

if X < 0 then X:= -X ;{ X = Abs(X). В результате выполнения оператора if X получает значение равное абсолютному значению X }

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]