Ответ
С точки зрения QA-инженера, JWT и BAT — это принципиально разные сущности, которые тестируются абсолютно по-разному, несмотря на схожесть в названии "токен".
JWT (JSON Web Token) – технический артефакт безопасности:
- Назначение: Стандарт для передачи claims (утверждений) между сторонами. Используется для аутентификации/авторизации в API (например, в заголовке
Authorization: Bearer <token>). - Что тестируем:
- Корректность генерации и валидации: Секретный ключ/алгоритм подписи, срок жизни (
exp), издатель (iss). - Безопасность: Уязвимости (например, алгоритм
none, weak secrets), невозможность подделки. - Интеграцию: Правильность извлечения данных из payload (например,
user_id,roles) на стороне сервера.
- Корректность генерации и валидации: Секретный ключ/алгоритм подписи, срок жизни (
Пример теста валидации JWT (Python, pytest):
import jwt
import pytest
def test_jwt_validation():
secret = "test-secret"
# Генерация тестового токена
payload = {"user_id": 123, "role": "admin", "exp": 1234567890}
valid_token = jwt.encode(payload, secret, algorithm="HS256")
# Позитивная проверка: токен должен декодироваться
decoded = jwt.decode(valid_token, secret, algorithms=["HS256"])
assert decoded["user_id"] == 123
# Негативная проверка: поддельный токен должен вызывать ошибку
tampered_token = valid_token[:-5] + "xxxxx"
with pytest.raises(jwt.InvalidSignatureError):
jwt.decode(tampered_token, secret, algorithms=["HS256"])
BAT (Basic Attention Token) – экономический/бизнес-артефакт:
- Назначение: Криптовалютный токен в блокчейне Brave Rewards. Это единица учета для вознаграждений пользователей и рекламодателей.
- Что тестируем:
- Бизнес-логику: Начисление BAT за просмотр рекламы, вывод средств, конвертацию.
- Интеграцию с блокчейном: Корректность вызовов смарт-контрактов, обработку транзакций.
- UI/UX в браузере Brave: Отображение баланса, настройки приватности, работу с кошельком Uphold/Gemini.
Вывод: JWT тестируется как часть security- и integration-тестов бэкенда. BAT тестируется как функциональность конечного продукта (браузера) на уровне E2E-сценариев, интеграции с платежными системами и соответствия бизнес-правилам.