Архитектура приложения

Three-tier architecture

Архитектура приложенияэто своего рода «каркас» системы. В жизненном цикле программного обеспечения разработка архитектуры начинается на этапе дизайна.

Архитектура объединяет технические и логические решения: какие компоненты будут в приложении, как данные будут передаваться между ними, где храниться бизнес-логика, и каким образом пользователь будет взаимодействовать с системой.

Трёхуровневая архитектура

Обычно архитектура приложения описывается слоями:

Трёхуровневая модель, известная также как слоистая архитектура, лежит в основе большинства приложений.

Пользовательский интерфейс

Frontend

Фронтенд — это пользовательский интерфейс, с которым человек взаимодействует напрямую. Он отвечает за отображение данных и передачу действий пользователя на сервер.

Пример фронтенд-интерфейса — форма «Вход в систему».

При тестировании фронтенда проверяют:

  • корректность отображения и обновления данных
  • валидацию и ограничения при вводе данных
  • наличие и понятность сообщений об ошибках
  • реакцию интерфейса на действия пользователя (клики, ввод)
  • корректность и формат запросов, отправляемых на сервер
  • отображение интерфейса на разных устройствах

Обратите внимание, форма «Вход в систему» содержит баги.

Вход в систему
Cat is logging in

Бизнес-логика

Backend

Бэкенд — это «невидимая» часть приложения, где происходит обработка данных. Он принимает запросы с фронтенда, выполняет нужные операции и возвращает результат.

Типичные задачи бэкенда:

  • проверка и обработка данных
  • выполнение бизнес-логики
  • обращение к базе данных
  • формирование ответа для фронтенда

if email does not match format:
    result = "Неверный формат email"

elif db.getUser == found:
    result = "Успешный вход"

send(result)

Пример бизнес-логики для формы «Вход в систему»

База данных

Database

База данных — это место, где хранятся все данные приложения. В ней может лежать информация о пользователях, заказах, сообщениях — всё, что нужно приложению для работы.

Когда пользователь хочет войти в свой аккаунт, бэкенд отправляет запрос в базу данных: «Найди пользователя с таким логином и паролем». База данных находит нужные данные, добавляет новые или изменяет старые.

Имя Почтовый адрес Пароль
tester-today tester.today.help@gmail.com password
... ... ...

Пример таблицы в базе данных

Как взаимодействуют уровни

1

Пользователь

вводит данные на фронтенде

2

Фронтенд

отправляет запрос на бэкенд

3

Бэкенд

обрабатывает запрос и обращается к базе данных

4

База данных

возвращает данные

5

Бэкенд

отправляет ответ на фронтенд

6

Фронтенд

отображает результат пользователю

Уровни работают как единое целое, но при этом каждый отвечает за свою задачу. Такое разделение облегчает разработку, тестирование и масштабирование системы.

Какой слой архитектуры отвечает за каждое из действий?
Действие Слой
Отображение ошибки, что имя пользователя имеет неверный формат
Хранение данных пользователя
Проверка, что данные для входа пользователя существуют в базе данных
Отправка на сервер логина и пароля пользователя при входе
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Тест Собеседование