7. Модульное и интеграционное тестирование - pipichaan/Financial-accounting GitHub Wiki
Модульное тестирование
В данном проекте в качестве модульного тестирования используется специальные блоки и кода и вывод сообщения об ошибке. Для примера разбор блок кода private void LoginBtn_Click(object sender, EventArgs e).
Код:
if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
throw new FormatException();
User user = User.GetUser(username, password);
if (user == null)
MessageBox.Show("Неверный ввод! Попробуйте еще раз!", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
MessageBox.Show($"Добро пожаловать! {user.FirstName} {user.LastName}!", "ЭЭЭЭЭЭЭ о да", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Hide();
Homepage homepage = new Homepage(user);
homepage.ShowDialog();
homepage = null;
this.Show();
usernameTxt.Clear();
passwordTxt.Clear();
}
}
catch (FormatException)
{
MessageBox.Show("Все поля ввода не могут быть пустыми! Попробуйте еще раз!", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Блок try-catch в методе LoginBtn_Click используется для отлова и обработки исключений, которые могут возникнуть при выполнении кода. В данном случае он перехватывает ошибки, связанные с некорректным вводом данных, и выводит пользователю понятные сообщения об ошибках.
- try — блок, в котором выполняется основной код. Если здесь происходит ошибка, управление передается в catch.
- catch (FormatException) — перехватывает только исключение типа FormatException (которое было выброшено при пустых полях ввода).
Когда возникает?
- Если username или password пустые (string.IsNullOrWhiteSpace вернул true).
- Выбрасывается явно через throw new FormatException().
Как обрабатывается?
- Показывается сообщение: "Все поля ввода не могут быть пустыми! Попробуйте еще раз!"
Интеграционное тестирование
Интеграционное тестирование – вид тестирования, предполагает тестирование части системы, состоящей из двух и более модулей. Основная задача интеграционного тестирования – поиск дефектов, связанных с ошибками в реализации и интерпретации интерфейсного взаимодействия между модулями.
Чтобы последовательно и безошибочно тестировать программу, необходимо составить тестовый граф.
Вершины тестового графа:
- 1: Окно авторизации
- 2: Окно регистрации
- 3: Окно подтверждения почты
- 4: Окно "Бюджет"
- 5: Окно диаграммы "Доход-Расход-Остаток"
- 6: Окно диаграммы "Траты по категориям"
- 7: Окно добавления транзакции
- 8: Окно редактирования/удаления транзакции
- 9: Выход из программы
Тестовые пути
- 1: 1-2-3-4-5-4-9
- 2: 1-2-3-4-6-4-9
- 3: 1-2-3-4-7-8-4-9
- 4: 1-4-7-4-8-4-9
- 5: 1-4-5-4-9
- 6: 1-4-6-4-9
Таблица тестовых путей
ID | Тестовый путь | Цель | Результат |
---|---|---|---|
1 | T1 | Тестирование регистрации нового пользователяТестирование взаимодействия модулей перехода форм | Успешная регистрацияУспешный переход на другую форму |
2 | T2 | Тестирование регистрации нового пользователяТестирование взаимодействия модулей перехода форм | Успешная регистрацияУспешный переход на другую форму |
3 | T3 | Тестирование регистрации нового пользователяТестирование взаимодействия модулей перехода формТестирование добавления данных в базу данныхТестирование редактирования данных в базе данных | Успешная регистрацияУспешный переход на другую формуУспешное сохранение данных в базу данных |
4 | T4 | Тестирование авторизации пользователяТестирование взаимодействия модулей перехода формТестирование добавления данных в базу данныхТестирование редактирования данных в базе данных | Успешная авторизацияУспешный переход на другую формуУспешное сохранение данных в базу данных |
5 | T5 | Тестирование авторизации пользователяТестирование взаимодействия модулей перехода форм | Успешная авторизацияУспешный переход на другую форму |
6 | T6 | Тестирование авторизации пользователяТестирование взаимодействия модулей перехода форм | Успешная авторизацияУспешный переход на другую форму |
Таблица 1 - тест-кейсы окна авторизации*
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Войти» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «У вас нет аккаунта?» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
3 | Ввод данных:Логин: PipichanПароль: 00000000 | Тестирование проверки корректности данных | Тестирование модуля проверки корректности | Успешный ввод, вывод сообщения об успехе | Успешный ввод, вывод сообщения об успехе |
4 | Ввод данных:Логин: pipichanПароль: пустой ввод | Тестирование проверки корректности данных | Тестирование модуля проверки корректности | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
5 | Ввод данных:Логин: пустой вводПароль: 00000000 | Тестирование проверки корректности данных | Тестирование модуля проверки корректности | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
6 | Ввод данных:Пустой ввод | Тестирование проверки корректности данных | Тестирование модуля проверки корректности | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
Успешный вход:
Ввод логина без пароля:
Ввод пароля без логина:
Пустой ввод:
Таблица 2 - тест-кейсы для окна регистрации
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Зарегистрироваться» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «У вас уже есть аккаунта?» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
3 | Ввод данных:Логин: PipichanПочта: [email protected]Пароль: 00000000Имя: АлинаФамилия: Широкова | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Успешный ввод, вывод сообщения об успехе, переход | Успешный ввод, вывод сообщения об успехе, переход |
4 | Ввод данных:Логин: PipichanПочта: [email protected]Пароль: 00000000Имя: АлинаФамилия: Пустой ввод | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
5 | Ввод данных:Логин: PipichanПочта: Пустой вводПароль: 00000000Имя: АлинаФамилия: Широкова | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
6 | Ввод данных:Логин: PipichanПочта: [email protected]Пароль: пустой вводИмя: АлинаФамилия: Широкова | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
7 | Ввод данных:Логин: Пустой вводПочта: [email protected]Пароль: 00000000Имя: АлинаФамилия: Широкова | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
8 | Ввод данных:Логин: pipichanПочта: [email protected]Пароль: 00000000Имя: Пустой вводФамилия: Широкова | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
9 | Ввод данных:Логин: userПочта: [email protected] (для нового аккаунта вводится одна и та же почта)Пароль: userИмя: userФамилия: user | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
10 | Ввод данных:Логин: userПочта: [email protected]Пароль: user (пароль должен быть более 8 символов)Имя: userФамилия: user | Тестирование проверки корректности данных.Тестирование открытия страницы | Тестирование модуля проверки корректности.Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
Корректный ввод данных:
Ввод данных без фамилии:
Ввод всех данных без почты:
Ввод всех данных без пароля:
Ввод всех данных без логина:
Ввод всех данных без имени:
Ввод почты несколько раз:
Ввод пароля, который состоит менее чем из 8 символов:
Таблица 3 - тест-кейсы окна подтверждения почты
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Зарегистрироваться» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «Отправить код еще раз?» | Тестирование повторения операции отправки кода | Тестирование модуля отправки кода | Код отправлен на почту повторно | Код отправлен на почту повторно |
3 | Нажатие кнопки «У вас нет аккаунта?» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
4 | Ввод данных: 1 3 6 4 (правильный код) |
Тестирование проверки корректности данных | Тестирование модуля проверки корректности | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
5 | Ввод данных: 1 7 6 4 (неправильный код) |
Тестирование проверки корректности данных. Тестирование открытия страницы | Тестирование модуля проверки корректности. Тестирование модуля открытия страницы | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
Ввод правильного кода:
Ввод неправильного кода:
Таблица 4 - тест-кейсы для окна "Бюджет"
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Добавить» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «Доход-Расход-Остаток» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
3 | Нажатие кнопки «Траты по категориям» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
4 | Нажатие на запись | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
5 | Нажатие на календарь | Тестирование открытия окна | Тестирование модуля открытия окна | Открытие окна календаря | Открытие окна календаря |
Появление окна календаря:
Таблица 5 - тест-кейсы для окна добавления транзакций
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Отмена» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «Сохранить» | Тестирование открытия страницы, сохранения данных в базу данных | Тестирование модуля открытия страницы, сохранения данных в базу данных | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу |
3 | Ввод данных:Номинал: 100Тип транзакции: ДоходКатегория: пустой вводДата: 04.06.2025Заметки: ляляля | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
4 | Ввод данных:Номинал: 100Тип транзакции: ДоходКатегория: пустой вводДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
5 | Ввод данных:Номинал: 100Тип транзакции: РасходКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
6 | Ввод данных:Номинал: 100Тип транзакции: РасходКатегория: Пустой вводДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
7 | Ввод данных:Номинал: пустой вводТип транзакции: РасходКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
8 | Ввод данных:Номинал: 100Тип транзакции: Пустой вводКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
9 | Ввод данных:Пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
Корректный ввод данных:
Корректный ввод данных:
Ввод всех данных без категории:
Ввод всех данных без номинала:
Ввод всех данных без типа транзакций:
Пустой ввод данных:
Таблица 6 - тест-кейсы для редактирования/удаления транзакций
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие кнопки «Отмена» | Тестирование открытия страницы | Тестирование модуля открытия страницы | Переход на другую страницу | Переход на другую страницу |
2 | Нажатие кнопки «Сохранить» | Тестирование открытия страницы, сохранения данных в базу данных | Тестирование модуля открытия страницы, сохранения данных в базу данных | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу |
3 | Нажатие кнопки «Удалить» | Тестирование открытия страницы, сохранения данных в базу данных | Тестирование модуля открытия страницы, сохранения данных в базу данных | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу | Успешное сохранение данных в БД, вывод сообщения об успехе, переход на другую страницу |
4 | Ввод данных:Номинал: 100Тип транзакции: ДоходКатегория: пустой вводДата: 04.06.2025Заметки: ляляля | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
5 | Ввод данных:Номинал: 100Тип транзакции: ДоходКатегория: пустой вводДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
6 | Ввод данных:Номинал: 100Тип транзакции: РасходКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Успешный ввод, вывод сообщения об успехе, переход на другую страницу | Успешный ввод, вывод сообщения об успехе, переход на другую страницу |
7 | Ввод данных:Номинал: 100Тип транзакции: РасходКатегория: Пустой вводДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
8 | Ввод данных:Номинал: пустой вводТип транзакции: РасходКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
9 | Ввод данных:Номинал: 100Тип транзакции: Пустой вводКатегория: ЗдоровьеДата: 04.06.2025Заметки: пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
10 | Ввод данных:Пустой ввод | Тестирование проверки корректности данных, сохранения данных в базу данных | Тестирование модуля проверки корректности, сохранения данных в базу данных | Вывод сообщения об ошибке | Вывод сообщения об ошибке |
Удаление транзакции:
Ввод данных без категории и типа транзакций:
Корректный ввод данных:
Ввод данных без номинала:
Пустой ввод:
Таблица 7 - тест-кейсы для окна "Доходы-Расходы-Остаток"
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие на календарь | Тестирование открытия окна | Тестирование модуля открытия окна | Открытие окна календаря | Открытие окна календаря |
Появление окна календаря:
**Таблица 8 - тест-кейсы для окна "Траты по категориям"
ID | Исходные данные | Цель | Описание | Ожидаемый результат | Результат |
---|---|---|---|---|---|
1 | Нажатие на календарь | Тестирование открытия окна | Тестирование модуля открытия окна | Открытие окна календаря | Открытие окна календаря |