
ПрИн LECT5 ТЕСТИРОВАНИЕ
.pdf
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 – максимальное значение переменной на входе блоке

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



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

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