Middle
95
questionbank
Какие тестовые кейсы можно разработать для тестирования баз данных?
AI答案
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';