Какие основные виды (типы) приложений вы знаете?

«Какие основные виды (типы) приложений вы знаете?» — вопрос из категории Основы тестирования, который задают на 23% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Приложения классифицируют по среде выполнения и архитектуре. Основные виды:

1. По среде выполнения (клиент):

  • Веб-приложения (Web Apps): Работают в браузере, обращаются к серверу. Не требуют установки. Пример: Gmail, Notion.
    • Технологии: HTML, CSS, JavaScript, фреймворки (React, Angular).
  • Мобильные приложения (Mobile Apps): Устанавливаются на смартфоны/планшеты.
    • Нативные (Native): Пишутся под конкретную ОС (Swift/Kotlin). Высокая производительность.
    • Гибридные (Hybrid): Веб-приложение в "обёртке" (Cordova). Единая кодовая база.
    • Кроссплатформенные (Cross-platform): Компилируются в нативный код (Flutter, React Native).
  • Десктопные приложения (Desktop Apps): Устанавливаются на ПК (Windows, macOS, Linux). Пример: VS Code, Slack (десктопная версия).
  • Встраиваемые системы (Embedded): ПО для специализированных устройств (IoT, медицинское оборудование, автомобили).

2. По архитектуре:

  • Монолит (Monolith): Единое приложение, где все компоненты tightly coupled.
  • Клиент-серверные (Client-Server): Чёткое разделение на клиентскую часть (UI) и сервер (бизнес-логика, БД).
  • Микросервисы (Microservices): Приложение как набор независимых сервисов, общающихся по сети (часто через HTTP/REST или messaging).

Пример теста для веб-API (микросервисная архитектура):

import requests
# Тест эндпоинта получения пользователя
response = requests.get("https://api.service.com/users/1", headers={"Authorization": "Bearer token"})
assert response.status_code == 200
assert response.json()["id"] == 1  # Проверка данных в теле ответа (JSON)