- Проверить соответствие таблиц и колонок требованиям
- Валидировать типы данных и размеры полей
- Проверить наличие обязательных полей (NOT NULL)
- Убедиться в корректности индексов
- Проверка PRIMARY KEY и FOREIGN KEY
- Тестирование UNIQUE-ограничений
- Валидация CHECK-условий
- Проверка DEFAULT-значений
| Операция | Тест-кейсы |
|----------|------------|
| CREATE | Вставка валидных/невалидных данных |
| READ | Выборка с разными условиями WHERE |
| UPDATE | Обновление с проверкой триггеров |
| DELETE | Каскадное удаление, восстановление |
- Транзакции с commit/rollback
- Одновременный доступ (конкурентность)
- Долгие выполняющиеся запросы
- Работа с NULL-значениями
- Время выполнения типовых запросов
- Скорость вставки больших объемов данных
- Эффективность использования индексов
- Параллельная нагрузка
- Анализ execution plan
- Проверка query caching
- Тестирование партиционирования
- Оптимальность JOIN-операций
- Проверка SQL-инъекций
- Тестирование прав доступа (GRANT/REVOKE)
- Шифрование чувствительных данных
- Маскирование данных в логах
- Тестирование backup/restore
- Проверка целостности после восстановления
- Валидация процедур аварийного восстановления
- Тестирование point-in-time recovery
- Синхронизация кэша приложения с БД
- Проверка ORM-маппинга
- Тестирование миграций (schema updates)
- Валидация хранимых процедур
1. Создать запись через API
2. Проверить наличие в БД
3. Обновить запись напрямую в БД
4. Проверить изменения через API
5. Удалить запись через UI
6. Убедиться в удалении из БД
- SQL-клиенты (DBeaver, pgAdmin)
- dbUnit (для тестовых данных)
- JMeter (нагрузочное тестирование)
- SQLMap (проверка уязвимостей)
- TestContainers (для Docker-тестов)
- Liquibase/Flyway (миграции)
- tSQLt (юнит-тесты для SQL Server)
тестирование БД требует комплексного подхода, охватывающего структуру, функциональность, производительность и безопасность. Ключевой принцип - проверка не только прямых операций, но и интеграции с приложением, а также поведения в экстремальных условиях.