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

ТиМП Лабораторная работа 4

.pdf
Скачиваний:
0
Добавлен:
08.08.2026
Размер:
747 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

ТЕСТИРОВАНИЕ Отчет по лабораторной работе №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