Назад к вопросам
Middle
76
questionbank
Какие тестовые кейсы можно разработать для тестирования баз данных?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Тестирование структуры БД, включая схемы, таблицы, индексы, Constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Тестирование данных:
- Проверка корректности данных после операций: INSERT, UPDATE, DELETE.
- Проверка соответствия данных бизнес-логике.
- Тестирование целостности данных при одновременных операциях (конкурентный доступ).
- Тестирование импорта/экспорта данных.
- Тестирование миграции данных.
Тестирование хранимых процедур, функций и триггеров:
- Тестирование входных параметров и выходных результатов.
- Тестирование обработки ошибок и исключений.
- Тестирование влияния на данные в таблицах.
- Тестирование производительности.
Тестирование производительности и нагрузки:
- Тестирование времени выполнения запросов (SELECT).
- Тестирование скорости операций модификации данных (INSERT, UPDATE, DELETE).
- Тестирование поведения БД под высокой нагрузкой.
- Тестирование масштабируемости.
Тестирование безопасности:
- Тестирование прав доступа пользователей.
- Тестирование уязвимостей SQL-инъекций.
- Тестирование аудита и логирования.
Регрессионное тестирование после изменений схемы БД или кода.
Тестирование резервного копирования и восстановления данных.
Примеры кейсов для проверки Constraints:
| ID | Название кейса | Шаги | Ожидаемый результат |
|---|---|---|---|
| 1 | Проверка PRIMARY KEY - дублирование значения | Попытка вставить новую запись с ID, который уже существует в таблице. | Система должна выдать ошибку о нарушении уникальности PRIMARY KEY. |
| 2 | Проверка FOREIGN KEY - ссылка на несуществующую запись | Попытка вставить запись в зависимую таблицу, ссылающуюся на ID, которого нет в родительской таблице. | Система должна выдать ошибку о нарушении целостности внешнего ключа. |
| 3 | Проверка NOT NULL - вставка NULL | Попытка вставить запись в таблицу, оставив NULL в поле, помеченном как NOT NULL. | Система должна выдать ошибку о нарушении ограничения NOT NULL. |
| 4 | Проверка CHECK - некорректное значение | Попытка вставить / обновить запись со значением в поле, которое не удовлетворяет заданному CHECK constraint (например, отрицательное значение в поле возраста). | Система должна выдать ошибку о нарушении CHECK constraint. |
Пример SQL-запроса для тестирования уязвимостей:
-- Проверка на возможность SQL-инъекции в поле ввода логина
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Пример запроса для тестирования производительности:
-- Измерение времени выполнения сложного SELECT-запроса
EXPLAIN ANALYZE SELECT o.order_id, c.customer_name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE c.country = 'USA' AND o.order_date > '2023-01-01';