База данных
Урок 7.4 — База данных: что тестировщику нужно знать
Зачем нужна база данных
База данных — это хранилище, которое сохраняет данные между сессиями. Когда сервер перезапустится, все данные останутся. Именно туда попадает информация о пользователях, заказах, товарах, сообщениях.
Без базы данных всё, что ты вводишь в приложении, исчезало бы при каждом обновлении страницы.
Реляционные (SQL) базы данных
Данные хранятся в таблицах — как Excel, только строже. Каждая таблица — это набор строк с фиксированными столбцами.
Примеры: PostgreSQL, MySQL, SQLite, Microsoft SQL Server
Таблица: users
┌────┬──────────────────────┬────────────┬──────────┐
│ id │ email │ name │ role │
├────┼──────────────────────┼────────────┼──────────┤
│ 1 │ alice@example.com │ Alice │ admin │
│ 2 │ bob@example.com │ Bob │ user │
└────┴──────────────────────┴────────────┴──────────┘
Таблицы связаны между собой (отсюда "реляционные"). Заказ order ссылается на пользователя через user_id.
Нереляционные (NoSQL) базы данных
Данные хранятся не в таблицах, а в других форматах. Чаще всего это документы (JSON-подобный формат).
Примеры:
| База | Тип хранения | Когда используется |
|---|---|---|
| MongoDB | Документы (JSON) | Гибкая структура данных, CMS |
| Redis | Ключ-значение | Кэш, сессии, временные данные |
| Elasticsearch | Полнотекстовый индекс | Поиск по тексту |
| Cassandra | Колонки | Очень большие объёмы данных |
Зачем тестировщику знать о базах данных
Интерфейс может "врать". Кнопка "Сохранить" могла показать "Успешно", но данные не записались из-за ошибки. Проверка через БД — это истина в последней инстанции.
1. Проверить, что данные сохранились
После регистрации пользователя убедись, что в таблице users появилась новая строка.
2. Подготовить тестовые данные Сложный сценарий требует определённого состояния данных. Гораздо быстрее вставить нужные данные через SQL, чем создавать их через UI.
3. Проверить удаление данных GDPR и другие законы требуют полного удаления данных пользователя. Убедись, что данные реально удалились из всех таблиц, а не просто скрылись в интерфейсе.
4. Проверить консистентность после ошибки Если операция прервалась на полпути (например, упал сервер во время транзакции), данные не должны остаться в "промежуточном" состоянии.
Базовый SQL для тестировщика
Тебе не нужно писать сложные запросы. Достаточно понимать основы:
SELECT — прочитать данные:
-- Найти пользователя по email
SELECT * FROM users WHERE email = 'bob@example.com';
-- Посмотреть последние 10 заказов
SELECT * FROM orders ORDER BY created_at DESC LIMIT 10;
Концептуально (не нужно писать самому, но нужно понимать):
INSERT— добавить запись (что происходит при регистрации)UPDATE— изменить запись (что происходит при редактировании профиля)DELETE— удалить запись (что происходит при удалении аккаунта)
Как получить доступ к базе
Обычно тестировщик получает доступ к тестовой БД через:
- Консольный клиент (psql, mysql)
- Графический инструмент: DBeaver, TablePlus, pgAdmin
- Прямой запрос через API (если команда предоставила endpoint для тестов)
Никогда не работай напрямую с production (боевой) базой данных без крайней необходимости.
Что мы запомним
- База данных хранит данные постоянно — это источник истины, а не интерфейс
- SQL-базы (PostgreSQL, MySQL) хранят данные в таблицах со связями
- NoSQL-базы (MongoDB, Redis) — гибкие форматы для других задач
- Тестировщик использует БД: проверить сохранение, подготовить данные, проверить удаление
- Ключевый запрос:
SELECT * FROM таблица WHERE условие— читать данные для проверки