ТиМП Лабораторная работа 4
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
ТЕСТИРОВАНИЕ Отчет по лабораторной работе №4
по дисциплине «Технологии и методы программирования» Вариант №6
Студент гр. 7x3-x
___________ xxxxxxxxxxxx
___________ yyyyyyyyyyyy
___________
Принял Преподаватель кафедры БИС
______ ___________ К. В. Меденцев
___________
Томск 2025
|
Оглавление |
Введение................................................................................................................... |
3 |
1 ХОД РАБОТЫ....................................................................................................... |
4 |
Заключение ............................................................................................................ |
12 |
Приложение А ....................................................................................................... |
13 |
Приложение Б........................................................................................................ |
19 |
2
Введение
Целью работы является проведение тестирования программы реализованной в рамках лабораторной работы №2.
Вариант №6: Телефон. Атрибуты: номер, баланс. Операции: позвонить, ответить на звонок, завершить разговор, пополнить баланс. Состояния: ожидание, звонок, разговор.
3
1 ХОД РАБОТЫ
Для варианта №6 были составлены черный и белый ящики с основными функциями вызова, принятия звонка, ответа на исходящий звонок, завершения звонка и пополнения счета. Черный ящик для программы представлен на рисунке 1.1, белый ящик – на рисунке 1.2.
Рисунок 1.1 – Черный ящик
Рисунок 1.2 – Белый ящик
Было составлено тестирование базового пути функции Call() и TopUpBalance() для состояния WaitingState. Для этого функции были разобран на вершины графа (рисунок 1.3, рисунок 1.4), после чего были
составлены сами графы (рисунок 1.5, рисунок 1.6).
4
Рисунок 1.3 – Вершины графа функции Call()
Рисунок 1.4 – Вершины графа функции TopUpBalance()
5
Рисунок 1.5 – Граф функции Call()
Рисунок 1.6 – Граф функции TopUpBalance() 6
Были определены независимые пути для функций. Для функции Call() получилось 2 независимых пути:
1)1 → 2 → 3
2)1 → 4 → 5 → 6
Были составлены тестовые варианты для каждого пути:
Тестовый вариант №1: Данный путь будет пройден, если баланс счета меньше 2,5 рублей и вызов будет совершен в состоянии WaitingState.
Исходные данные: Баланс счета меньше 2,5 рублей и вызов из состояния WaitingState.
Ожидаемый результат: Вывод сообщения «Недостаточно средств, на счете [баланс счета]».
Тестовый вариант №2: Данный путь будет пройден, если баланс счета больше 2,5 рублей и вызов будет совершен в состоянии WaitingState.
Исходные данные: Баланс счета больше 2,5 рублей и вызов из состояния WaitingState.
Ожидаемый результат: Вывод сообщения «Исходящий звонок с [номер телефона]», снятие денег со счета в размере 2,5 рублей и изменение состояния телефона на состояние InCallState.
Для функции TopUpBalance получилось 7 независимых путей:
1)1 → 2 → 4 → 5 → 22 → 23 → 24 → 25 → 26
2)1 → 2 → 4 → 5 → 22 → 23 → 27
3)1 → 2 → 4 → 5 → 6 → 16 → 17 → 18
4)1 → 2 →3 → 10 → 11 → 12
5)1 → 2 → 7 → 8 → 9
6)1 → 2 → 13 → 14 → 15
7)1 → 2 → 19 → 20 → 21
Были составлены тестовые варианты для каждого пути:
7
Тестовый вариант №1: Данный путь будет пройден, если при пополнении баланса на положительную сумму, подходящую под заданный паттерн и не выходящую за рамки типа данных decimal, получается число, превышающее рамки типа данных decimal.
Исходные данные: Баланс и депозит, которые в сумме дают число превышающее рамки типа данных decimal, и состояние телефона
WaitingState.
Ожидаемый результат: Вывод сообщения «Слишком большое число, пополните баланс на меньшую сумму».
Тестовый вариант №2: Данный путь будет пройден, если баланс будет пополнен на положительную сумму, подходящую под заданный паттерн, не выходящую за рамки типа данных decimal и в сумме с исходным балансом не дающую число, превышающее рамки типа данных decimal.
Исходные данные: Баланс и депозит в виде положительного числа, подходящего под паттерн, которые в сумме не дают число превышающее рамки типа данных decimal, и состояние телефона WaitingState.
Ожидаемый результат: Пополнение баланса на заданную сумму. Тестовый вариант №3: Данный путь будет пройден, если введенное для
пополнения число меньше или равно нулю.
Исходные данные: Депозит в виде числа меньшего или равного нулю. Ожидаемый результат: Вывод сообщения «Сумма пополнения должна
являться числом большим нуля».
Тестовый вариант №4: Данный путь будет пройден, если введенное число для депозита не подходит под заданный паттерн.
Исходные данные: Депозит в виде числа, не подходящего под паттерн, например, написанное через точку.
Ожидаемый результат: Вывод сообщения «Сумма пополнения имеет неверный формат. Пример: 100,99».
8
Тестовый вариант №5: Данный путь будет пройден, если будет произведена попытка пополнения счета на пустое значение.
Исходные данные: Пустой депозит в виде специального значения null. Ожидаемый результат: Вывод сообщения «Сумма для пополнения
должна быть не пустым значением. Пример: 100,99».
Тестовый вариант №6: Данный путь будет пройден, если будет произведена попытка пополнения счета на число, выходящее за пределы типа данных decimal.
Исходные данные: Депозит в виде числа, выходящего за рамки decimal. Ожидаемый результат: Вывод сообщения «Слишком большое число,
пополните баланс на меньшую сумму».
Тестовый вариант №7: Данный путь будет пройден, если при пополнении возникнет неизвестная ошибка, не подходящая не под один из вышеперечисленных сценариев.
Исходные данные: Депозит, который вызывает ошибку, неподходящую под прописанные сценарии.
Ожидаемый результат: Вывод сообщения «Неизвестная ошибка».
Для всех основных функций были написаны модульные тесты (рисунок 1.7 – рисунок 1.12).
Рисунок 1.7 – Входные данные для тестов 9
Рисунок 1.8 – Тестирование пополнения баланса
Рисунок 1.9 – Тестирование функции звонка
Рисунок 1.10 – Тестирование функции получения входящего звонка
10
