951просмотров
30.6%от подписчиков
17 ноября 2025 г.
📷 ФотоScore: 1.0K
Как читать логи ошибок: инструкция для QA-инженера 🔍 Шаг 1: Где искать логи?
Перед анализом нужно понять, куда приложение пишет логи: - Файлы на сервере (обычно в /var/log/ или logs/):
- Консоль разработчика (Chrome DevTools → Console или Network)
- Специальные сервисы: - Sentry (для ошибок в проде) - Kibana (если логи хранятся в Elasticsearch) - Grafana (для метрик и системных логов) 📌 Шаг 2: Понимаем структуру лога
Типичная запись в логе содержит: [2024-02-20 14:30:45] ERROR [app.controller] Status 500: NullPointerException in UserService.java:124
Разбираем по частям:
1. Дата и время (2024-02-20 14:30:45) - когда произошла ошибка
2. Уровень логирования (ERROR) - насколько всё плохо: - DEBUG/TRACE - техническая информация для разработчиков, - INFO - обычные события (например, «Пользователь залогинился»), - WARN - потенциальная проблема, но приложение работает, - ERROR - критическая ошибка (нужно чинить) - FATAL/CRITICAL - самая высокая степень критичности (срочно чинить в первую очередь)
3. Источник (app.controller) - где случилась ошибка (класс/модуль)
4. Сообщение (NullPointerException in UserService.java:124) - суть ошибки и строка кода 🛠 Шаг 3: Как искать причину ошибки?
1. Ищем stack trace (список вызовов функций, которые привели к определенной точке в программе, например, к возникновению ошибки)
Пример: java.lang.NullPointerException: Cannot invoke "User.getName()" because "user" is null at com.example.UserService.getProfile(UserService.java:124) at com.example.UserController.showProfile(UserController.java:45)
Что важно: - Первая строка - тип ошибки (NullPointerException) и её описание
- Следующие строки - «путь» вызова методов (где началась ошибка и как она распространялась) 2. Анализируем контекст
Ошибка может не иметь очевидной причины. Проверьте:
- Что происходило перед ошибкой? (логи за 5-10 секунд до сбоя)
- Были ли похожие ошибки раньше? (поиск по логам) 3. Используем фильтры
Если логов много, сужаем поиск: grep "NullPointerException" error.log (только ошибки этого типа)
grep -A 5 -B 5 "ERROR" app.log (+5 строк до/после ошибки) 💡 Шаг 4: Частые ошибки и как их читать
1. NullPointerException (Java)
Проблема: Обращение к объекту, который null
Что проверить:
- Передавались ли все обязательные параметры в метод?
- Вернула ли БД null вместо объекта? 2. 500 Internal Server Error
Проблема: Ошибка на сервере
Что проверить:
- Логи сервера (например, nginx или tomcat)
- Не упала ли БД или внешний API 3. ConnectionTimeout
Проблема: Сервер не ответил за отведённое время
Что проверить:
- Доступен ли сервер? (ping или telnet)
- Не перегружен ли он? (логи нагрузки CPU/RAM) автор: Aleksandra Primako #qa #testing Подпишись👉 @testlab_qa