Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПрИн LECT5 ТЕСТИРОВАНИЕ

.pdf
Скачиваний:
14
Добавлен:
14.03.2016
Размер:
709.52 Кб
Скачать

2.Проверить, что в том случае, когда длина имени файла превышает 11 символов, система выдает сообщение об ошибке

3.Проверить, что система не различает регистр символов имени при открытии файла.

4.Проверить, что при открытии файлов с именами, не противоречащими требованиям 1-3,

система открывает файл.

Входными значениями тестового примера являются различные имена файлов, выходными – реакция системы (ошибка или успешное открытие).

Можно выделить следующие классы эквивалентности: По длине имени:

1.Длина имени меньше 11 символов

2.Длина имени равна 11 символам

3.Длина имени больше 11 символов По символам:

4.Имя, состоящее из цифр и букв смешанного регистра

5.Имя, состоящее из цифр и букв нижнего регистра

6.Имя, состоящее из цифр и букв верхнего регистра

7.Имя, состоящее только из цифр

8.Имя, состоящее только из букв

9.Имя, включающее знаки препинания (не буквенно-цифровые символы)

10.Имя, включающее управляющие символы (не буквенно-цифровые символы)

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

Тестирование операций сравнения чисел

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

В таблице 3 приведены тестовые наборы для блоков реализующих операции сравнения, в случае, когда на один из входов блока подаётся константа.

Таблица 1. Блоки сравнения и определённые для них тестовые наборы

greaterThan блок. Реализует операцию сравнения a>b (b

– константа, на входе a может быть переменная числового типа)

№ набора

1

2

3*

4

5

 

 

 

 

 

 

Вход a

b - d

b + d

b

min

max

 

 

 

 

 

 

Выход

F

T

F

F

T

 

 

 

 

 

 

greaterEq блок. Реализует операцию сравнения a>=b (b – константа, на входе a может быть переменная числового типа)

№ набора

1

2

3*

4

5

 

 

 

 

 

 

Вход a

b - d

b + d

b

min

max

 

 

 

 

 

 

Выход

F

T

T

F

T

 

 

 

 

 

 

lessThan блок. Реализует операцию сравнения a<b (b

lessEq блок. Реализует операцию сравнения a<=b (b

константа, на входе a может быть переменная числового

константа, на входе a может быть переменная числового

типа)

типа)

№ набора

1

2

3*

4

5

 

 

 

 

 

 

Вход a

b - d

b + d

b

min

max

№ набора

1

2

3*

4

5

 

 

 

 

 

 

Вход a

b - d

b + d

b

min

max

Выход

T

F

F

T

F

Выход

T

F

T

T

F

equalTo блок. Реализует операцию сравнения a=b (b

notEqualTo блок. Реализует операцию сравнения a≠b (b

константа, на входе a может быть переменная числового

константа, на входе a может быть переменная числового

типа)

типа)

№ набора

1

2

3

4

 

№ набора

1

2

3

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход a

≠ b

b

min

max

Вход a

≠ b

b

min

max

 

 

 

 

 

 

 

 

 

 

 

Выход

F

T

F

F

 

Выход

T

F

T

T

 

 

 

 

 

 

 

 

 

 

 

* тестовый набор реализуем только если переменная на входе a – переменная целого типа

Вприведённых тестовых наборах используются следующие обозначения:

d – шаг изменения (resolution) переменной на входе a. Если переменная на входе a – переменная целого типа, то d равно 1

min – минимальное значение переменной на входе a

max – максимальное значение переменной на входе a

Втаблице 2 приведены тестовые наборы для блоков реализующих операции сравнения, в случае, когда на оба входа блока подаются переменные.

Таблица 2. Блоки сравнения и определённые для них тестовые наборы (продолжение)

greaterThan блок. Реализует операцию сравнения a>b (a, b – переменные числового типа)

greaterEq блок. Реализует операцию сравнения a>=b (a, b

– переменные числового типа)

1

2

3*

4

5

 

№ набора

1

2

3*

4

5

набора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход a

val

val

val

min

max

 

 

 

 

 

 

Вход b

val + d2

val - d2

val

max

min

 

 

 

 

 

 

Выход

F

T

F

F

T

 

 

 

 

 

 

lessThan блок. Реализует операцию сравнения a>b (a, b – переменные числового типа)

1

2

3*

4

5

набора

 

 

 

 

 

 

 

 

 

 

 

Вход a

val

val

val

min

max

 

 

 

 

 

 

Вход b

val + d2

val - d2

val

max

min

 

 

 

 

 

 

Выход

T

F

F

T

F

 

 

 

 

 

 

equalTo блок. Реализует операцию сравнения a=b (a, b

– переменные любого типа)

1

2

3

4

набора

 

 

 

 

 

 

 

 

 

Вход a

val1

val

min

max

 

 

 

 

 

Вход b

val2

val

max

min

 

 

 

 

 

Выход

F

T

F

F

 

 

 

 

 

Вход a

val

val

val

min

max

 

 

 

 

 

 

Вход b

val + d2

val - d2

val

max

min

 

 

 

 

 

 

Выход

F

T

T

F

T

 

 

 

 

 

 

lessEq блок. Реализует операцию сравнения a>=b (a, b – переменные числового типа)

№ набора

1

2

3*

4

5

 

 

 

 

 

 

Вход a

val

val

val

min

max

 

 

 

 

 

 

Вход b

val + d2

val - d2

val

max

min

 

 

 

 

 

 

Выход

T

F

T

T

F

 

 

 

 

 

 

notEqualTo блок. Реализует операцию сравнения a≠b (a, b

– переменные любого типа)

№ набора

1

2

3

4

 

 

 

 

 

Вход a

val1

val

min

max

 

 

 

 

 

Вход b

val2

val

max

min

 

 

 

 

 

Выход

T

F

T

T

 

 

 

 

 

* тестовый набор реализуем только если переменные на входах блока - переменные целого типа

Вприведённых тестовых наборах используются следующие обозначения:

d2 – шаг изменения (resolution) переменной на входе b. Если переменная на входе b – переменная целого типа, то d2 равно 1

val, val1, val2 – значения взятые из середины диапазона, полученного при пересечении диапазонов переменных на входах a и b

min – минимальное значение переменной на входе блока

max – максимальное значение переменной на входе блоке

ИНСПЕКТИРОВАНИЕ ПРОГРАММ

АВТОМАТИЧЕСКИЙ СТАТИЧЕСКИЙ АНАЛИЗ

Ошибки, обнаруживаемые статическим анализом