Автоматизация "backend". Что это такое? Прошу объяснить

Всем привет!

Ребят, подскажите пожалуйста, что такое автоматизация backend? Я даже не понимаю в какую сторону копать. С API я более менее разобрался.
Сам просто только автоматизацией UI занимался и бэк никогда не трогал. С чем его едят?
Буду благодарен за ответы и может быть ссылки на материалы что почитать.

А какая конкретная задача стоит?
Потому что додумать можно много чего.
Бэкенд это всего лишь часть приложения. И gui и api тесты в конечном счете тоже тестируют бэкенд.

Задачи конкретной не стоит. Смотрю просто вакансии по автоматизации и в большинстве случаев требуется тестирование backend. Я с этим никогда не работал, поэтому чувствую себя достаточно неловко. Я, конечно, понимаю, что я много с чем не работал))) но тестирование back - это вроде как для автоматизации само разумеющееся

Вот тут было обсуждение, посмотрите: вопросы от новичка по автоматизации backend'a - #2 от пользователя ArtOfLife

Так api - это и есть backend в данном контексте.

в 90 % случаев укр аутсорса Вам придеться покривать какой то REST API (crud как правило), но могут бить варианти с другими типами веб сервисов да и не обязательно с ВЕБ-сервисами, а просто с какой то API, к которой можно достучаться извне через какой либо программний интерфейс либо протокол

Под бекенд тестами также может подразумеваться написание юнит тестов на sql для тестирования логики поведения базы данных и ее процедур. Если есть некая OLTP база данных, в которой в режиме реального времени происходит обработка входящего потока данных, то логика обработки каждого набора данных должна неким образом в зависимости от этих данных процесситься. Процессинг данных и его проверка в данном случае - это разбиение движения потока на дискретные моменты во времени, когда определенные буфферы\временные\постоянные таблицы базы данных тем или иным образом сохраняют\избавляются\модифицируют данные. На каждом таком дискретном этапе фактически можно подготовить наборы данных, где в разных “местах” БД будет происходить нужное изменение. И здесь фактически тестирование: это сверка состояния данных в момент времени.

Но я сомневаюсь, что доля трактовки “тестирования бекенда” - будет включать тестирование и покрытие тестами логики bigdata проектов :slight_smile: потому что их реально мало. По большей части - это backend-specific штуки вроде
а) тестирование API возвращаемого бекендом
б) проверка логики web server’a: работа заголовков, проверка HTTP кеширования и т.д
в) проверка работы background процессов сервера: команды application server’а которые выпоняются периодически (например через cron)
г) проверка работы любых backend составляющих: состояние кешей в key\val хранилищах, вычитывание очередей из RabbitMQ, и .т.д.

2 лайка

Получается, что при случае на практике это освоить будет не сложно?
Если толково объяснить

Уточните, что вы понимаете под “это”?
Автоматизированные тестирование базы данных или все остальное? :slight_smile:
Ничего не сложно освоить при должном уровне документированности проекта и чистого кода. В обратном случае освоение упирается в возможность отдельно взятого QA разбирать код и выуживать знание о проекте из головы разработчиков\PM’ов.

В работающей тестовой среде написать отдельный тест легче, чем придумать, КАК это должно тестироваться правильно. Но это уже совсем другая история.

Я именно так и начинал, в итоге потом понял что надо как и любом другом деле читать книги. Потому что то что делал в слепую было не то что даже бесполезно, но даже и вредило. Проблема Performance Testing в том что тут нет однозначного ответа - работает или нет. Очень много условий и допущений. Это non-functional testing и своя специфика.