Что такое веб-приложение с точки зрения тестирования?

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

Ответ

Веб-приложение — это клиент-серверное приложение, доступное через браузер, где пользовательский интерфейс (frontend) работает в браузере, а бизнес-логика и данные обрабатываются на удаленном сервере (backend).

С точки зрения тестирования это определяет несколько ключевых областей проверки:

1. Frontend (Клиентская часть):

  • Кросс-браузерность и кросс-платформенность: Корректность работы в разных браузерах (Chrome, Firefox, Safari) и на разных устройствах.
  • Юзабилити (UI/UX): Удобство интерфейса, доступность.
  • Функциональность на стороне клиента: Работа форм, валидация, динамическое обновление контента (JavaScript).

2. Backend (Серверная часть):

  • Функциональность API: Корректность обработки запросов, бизнес-логика.
  • Интеграция с БД: Сохранение, извлечение и манипуляция данными.
  • Интеграция со сторонними сервисами: Платежные шлюзы, email-сервисы и т.д.

3. Сквозные аспекты:

  • Безопасность: Защита от OWASP Top 10 (SQL-инъекции, XSS, CSRF, небезопасная десериализация).
  • Производительность: Время загрузки страниц, отклик API под нагрузкой.
  • Надежность: Доступность приложения, обработка ошибок.

Пример простого веб-приложения на Flask:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/api/items', methods=['POST'])
def create_item():
    data = request.get_json()
    # Бизнес-логика и сохранение в БД
    return jsonify({'id': 1, 'name': data['name']}), 201

if __name__ == '__main__':
    app.run(debug=True)

Тестирование такого приложения включает проверку API-эндпоинта (/api/items), валидацию входных данных, коды ответов и интеграцию с базой данных.