QA❤️4Life | Testing | Тестирование ПО
7.88K subscribers
1.1K photos
204 videos
37 files
3.28K links
⚡️QA❤️4Life — достойный канал для охотников за багами: шпаргалки, instant-гайды, AI-news и AI-tools, хаки и мемы без воды. Джуны апают скилл, синьоры экономят время — все в плюсе. Канал ведёт Head of QA
📩 Связь с автором @Eugeniusz_1
Download Telegram
👆👆👆👆👆👆 🟡 🟡🟡🟡🟡🟡🟡

Как вы проверяете корректность данных в БД после API запроса?

Скажите честно. Знали ответ на вопрос или нет ? Попробуйте проверить себя перед открытием ответа.
❗️ Если вопрос понравился ставьте 🔥

Определение задачи
Проверка корректности данных в БД после API запроса — это валидация того, что операция через API корректно изменила данные в базе данных. Это ключевой этап API-тестирования, обеспечивающий целостность данных на уровне бэкенда.​​​

Основные методы проверки

Прямой SQL-запрос к БД — выполнение SELECT-запроса для извлечения данных и сравнение с ожидаемым результатом. Это наиболее надежный метод для проверки состояния данных.​​​
Повторный GET-запрос через API — использование API-метода для получения созданных/обновленных данных. Подходит когда есть соответствующий эндпоинт для чтения данных.​
Комбинированная валидация — использование обоих методов для повышения надежности тестов. SQL проверяет фактическое состояние БД, GET-запрос валидирует корректность работы API.​​

Пошаговый процесс проверки
1. Подготовка тестовых данных
Записать начальное состояние БД перед запросом​
Подготовить уникальные идентификаторы для поиска записей​
Зафиксировать timestamp для фильтрации по времени создания​

2. Выполнение API-запроса
Отправить POST/PUT/PATCH/DELETE запрос​​
Сохранить ID созданной/обновленной записи из Response​
Проверить HTTP status code (200, 201, 204)

3. SQL-валидация данных
-- Проверка создания записи
SELECT * FROM users
WHERE user_id = 'ID_из_API_ответа';

-- Проверка обновления полей
SELECT name, email, updated_at
FROM users
WHERE user_id = 123;

-- Проверка связанных таблиц
SELECT
u.name, o.order_id
FROM users u
JOIN orders o ON u.user_id = o.user_id
WHERE u.user_id = 123;

4. Что проверять в БД (см таблицу - картинку в заголовке поста)

Ключевые подходы:

1️⃣ Прямой SQL-запрос
Выполнение SELECT для извлечения данных
Сравнение с ожидаемым результатом

2️⃣ Повторный GET-запрос
Использование API для получения данных
Подходит когда есть эндпоинт для чтения

3️⃣ Комбинированная валидация
SQL проверяет фактическое состояние БД
GET валидирует корректность работы API

4️⃣ Проверка связанных таблиц
JOIN-запросы для валидации Foreign Keys
Каскадные изменения в зависимых записях

5️⃣ Временные метки
Проверка created_at и updated_at
Фильтрация по времени создания

6️⃣ Типы данных и NULL
Валидация формата сохраненных данных
Обработка пустых значений

SQL-операторы для проверки:

🔹 WHERE - фильтрация по условию
🔹 JOIN - проверка связей между таблицами
🔹 COUNT - подсчет количества записей
🔹 GROUP BY - агрегация данных
🔹 IS NULL / IS NOT NULL - проверка пустых значений

Инструменты:

🛠 MySQL Workbench - GUI для MySQL
🛠 Postman - API + SQL через Scripts
🛠 DBeaver - универсальный SQL-клиент
🛠 SSMS - для MS SQL Server

Типовые ошибки:


Асинхронность - данные не записаны сразу
Решение: добавить задержку или retry

Транзакции - незавершенный COMMIT
Решение: проверить статус транзакции

Кэширование - API возвращает старые данные
Решение: проверить БД напрямую

Форматирование - разные форматы дат
Решение: нормализация при сравнении

NULL vs пустая строка
Решение: явная проверка обоих случаев

Best Practices для QA:

Всегда проверяйте БД для критичных операций
Используйте транзакции для отката тестов
Проверяйте связанные таблицы через JOIN
Валидируйте типы данных, не только значения
Проверяйте граничные случаи (NULL, max length)
Для GET сравнивайте Response с БД
Документируйте SQL-запросы в тест-кейсах

Когда проверять БД:
POST - создание записи
PUT/PATCH - обновление данных
DELETE - удаление/soft delete
Каскадные операции с FK
Триггеры и хранимые процедуры
Batch операции (массовое обновление)


#собеседование #собес #qaсобес #SQL #БД #APIтестирование #тестирование #тестировщик #QA4Life #database #MySQL #PostgreSQL #validation #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥62