Как читать логи ошибок: инструкция для QA-инженера
🔍 Шаг 1: Где искать логи?
Перед анализом нужно понять, куда приложение пишет логи:
- Файлы на сервере (обычно в /var/log/ или logs/):
- Консоль разработчика (Chrome DevTools → Console или Network)
- Специальные сервисы:
- Sentry (для ошибок в проде)
- Kibana (если логи хранятся в Elasticsearch)
- Grafana (для метрик и системных логов)
📌 Шаг 2: Понимаем структуру лога
Типичная запись в логе содержит:
Разбираем по частям:
1. Дата и время (2024-02-20 14:30:45) - когда произошла ошибка
2. Уровень логирования (ERROR) - насколько всё плохо:
- DEBUG/TRACE - техническая информация для разработчиков,
- INFO - обычные события (например, «Пользователь залогинился»),
- WARN - потенциальная проблема, но приложение работает,
- ERROR - критическая ошибка (нужно чинить)
- FATAL/CRITICAL - самая высокая степень критичности (срочно чинить в первую очередь)
3. Источник (app.controller) - где случилась ошибка (класс/модуль)
4. Сообщение (
🛠 Шаг 3: Как искать причину ошибки?
1. Ищем stack trace (список вызовов функций, которые привели к определенной точке в программе, например, к возникновению ошибки)
Пример:
Что важно:
- Первая строка - тип ошибки (NullPointerException) и её описание
- Следующие строки - «путь» вызова методов (где началась ошибка и как она распространялась)
2. Анализируем контекст
Ошибка может не иметь очевидной причины. Проверьте:
- Что происходило перед ошибкой? (логи за 5-10 секунд до сбоя)
- Были ли похожие ошибки раньше? (поиск по логам)
3. Используем фильтры
Если логов много, сужаем поиск:
💡 Шаг 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
🔍 Шаг 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
👍6
💡Приглашаем на бесплатный вебинар курса “Нагрузочное тестирование”: «Прохождение собеседования на нагрузочного тестировщика»
Когда: 18 ноября, 19:00 (мск)
О вебинаре
Хотите успешно пройти собеседование на нагрузочного тестировщика? На открытом уроке курса Нагрузочное тестирование разберём, что интересует работодателей, какие навыки и знания нужно показать, а также как подготовиться к типичным вопросам, чтобы уверенно получить работу.
Вопросы вебинара:
- Требования к кандидатам на роль нагрузочного тестировщика.
- Ключевые технические навыки и их демонстрация.
- Личностные качества, важные для работодателя.
- Примеры вопросов на собеседовании.
Практические рекомендации по подготовке.
Что получите:
- Навыки подготовки к собеседованию в нагрузочном тестировании.
- Понимание ожиданий работодателей.
- Уверенность в демонстрации своих знаний и опыта.
👉 Зарегистрируйтесь: https://vk.cc/cRnihi
Прокачайте навыки нагрузочного тестирования!
Занятие приурочено к старту курса “Нагрузочное тестирование”, обучение на котором позволит освоить компетенции по проектированию и проведению тестов производительности для обеспечения стабильности систем.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Когда: 18 ноября, 19:00 (мск)
О вебинаре
Хотите успешно пройти собеседование на нагрузочного тестировщика? На открытом уроке курса Нагрузочное тестирование разберём, что интересует работодателей, какие навыки и знания нужно показать, а также как подготовиться к типичным вопросам, чтобы уверенно получить работу.
Вопросы вебинара:
- Требования к кандидатам на роль нагрузочного тестировщика.
- Ключевые технические навыки и их демонстрация.
- Личностные качества, важные для работодателя.
- Примеры вопросов на собеседовании.
Практические рекомендации по подготовке.
Что получите:
- Навыки подготовки к собеседованию в нагрузочном тестировании.
- Понимание ожиданий работодателей.
- Уверенность в демонстрации своих знаний и опыта.
👉 Зарегистрируйтесь: https://vk.cc/cRnihi
Прокачайте навыки нагрузочного тестирования!
Занятие приурочено к старту курса “Нагрузочное тестирование”, обучение на котором позволит освоить компетенции по проектированию и проведению тестов производительности для обеспечения стабильности систем.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1
🔥 От тестировщика к эксперту по нагрузке — успей на курс! 🚀
Набор на курс «Нагрузочное тестирование» в OTUS почти завершён! Нагрузочное тестирование — востребованный навык на IT-рынке. Пройдите вступительный тест, проверьте свои знания и получите скидку, чтобы занять место в группе!
Вы научитесь:
✅ Работать с JMeter, Gatling, k6.io
✅ Автоматизировать тесты через CI/CD
✅ Мониторить системы с Grafana и Prometheus
✅ Планировать тесты для реальных нагрузок
📌 Пройдите тест и забронируйте место со скидкой. Подробности уточняйте у менеджера
🚀 Не упустите шанс стать экспертом по нагрузочному тестированию!
👉 Пройти тестирование https://vk.cc/cRBJo4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Набор на курс «Нагрузочное тестирование» в OTUS почти завершён! Нагрузочное тестирование — востребованный навык на IT-рынке. Пройдите вступительный тест, проверьте свои знания и получите скидку, чтобы занять место в группе!
Вы научитесь:
✅ Работать с JMeter, Gatling, k6.io
✅ Автоматизировать тесты через CI/CD
✅ Мониторить системы с Grafana и Prometheus
✅ Планировать тесты для реальных нагрузок
📌 Пройдите тест и забронируйте место со скидкой. Подробности уточняйте у менеджера
🚀 Не упустите шанс стать экспертом по нагрузочному тестированию!
👉 Пройти тестирование https://vk.cc/cRBJo4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1
REST API на котиках
Привет любителям котиков! Меня зовут Юля, я backend‑разработчик компании CDEK. Я сама не так давно изучала все эти сложные понятия в программировании, поэтому решила помочь и вам разобраться с одним из них.
С какой стороны IT вы бы не пытались войти — в какой‑то момент столкнётесь с понятием REST API. Эта статья создана, чтобы смягчить данное столкновение. Новые темы всегда легче воспринимаются на простых примерах, ну а если это примеры с котиками, то варианта не разобраться просто нет. Хочется обойтись без сложных научных определений, а рассказать самым простым языком. Поэтому, если вы любите сухие и точные формулировки, то вам нужна другая статья :)
https://habr.com/ru/companies/cdek_blog/articles/809601/
#qa #testing
Подпишись👉 @testlab_qa
Привет любителям котиков! Меня зовут Юля, я backend‑разработчик компании CDEK. Я сама не так давно изучала все эти сложные понятия в программировании, поэтому решила помочь и вам разобраться с одним из них.
С какой стороны IT вы бы не пытались войти — в какой‑то момент столкнётесь с понятием REST API. Эта статья создана, чтобы смягчить данное столкновение. Новые темы всегда легче воспринимаются на простых примерах, ну а если это примеры с котиками, то варианта не разобраться просто нет. Хочется обойтись без сложных научных определений, а рассказать самым простым языком. Поэтому, если вы любите сухие и точные формулировки, то вам нужна другая статья :)
https://habr.com/ru/companies/cdek_blog/articles/809601/
#qa #testing
Подпишись👉 @testlab_qa
👍5❤1
Стать тестировщиком с нуля до 200к / Полный курс по тестированию (QA)
Таймкоды:
00:00 Зачем этот курс и как правильно его смотреть?
05:00 Что такое тестирование? Определения и принципы
06:38 Quality control и Quality assurance: различия
10:28 Роль тестировщика на разных этапах разработки
13:52 Методологии разработки: scrum, canban, waterfall
20:25 ТОП вопросов с собеседований по основам тестирования
27:02 Методологии работы ĸоманды
34:23 Частые вопросы и ситуации на собеседовании
47:28 Жизненный циĸл тестирования
56:16 Функциональное и нефункциональное тестирование
58:57 Тестирование методом белого, серого и чёрного ящиков
01:07:17 Что такое верификация и валидация?
01:10:13 Тест-план и ПМИ: что это и где применяется?
01:12:36 Тест-кейсы и их структура
01:16:29 Баг-репорты: как писать их так, чтобы разработчики «кончали радугой»
01:26:41 Эквивалентные классы: как проверить много, проверив мало
01:29:28 Попарное тестирование: магия сокращения тестов в три раза
01:36:21 TMS: от пещер к Qase — эволюция тест-менеджмента
01:37:02 Создаем проект и тест-сьюты в Qase
01:39:39 Создаем полноценный тест-кейс в Qase
01:44:59 Отчет по тест-ран: удобно и аккуратно
01:48:34 Основные группы статус-кодов и их значение
01:50:20 Разница между HTTP и HTTPS: как работает шифрование
01:54:26 Клиент-серверная архитектура: как она работает?
01:57:00 Монолитная архитектура
01:58:41 Микросервисная архитектура: дробим монолит на независимые части
02:01:53 API и REST API: что это и зачем нужно?
02:03:49 HTTP-методы и идемпотентность: как избежать неприятных побочных эффектов
02:06:43 RESTful: следуй принципам REST
02:07:53 Классификация баз данных: реляционные и нереляционные
02:11:56 Отличия NoSQL от реляционных баз данных: плюсы и минусы
02:13:14 Что такое СУБД и зачем она нужна?
02:16:27 SQL: причина, по которой обезьяна не отнимет у тебя работу
02:19:06 Базовая структура SQL-запроса: SELECT и FROM
02:20:27 Использование WHERE для фильтрации данных
02:23:24 Агрегатные функции: MAX, MIN, AVG, COUNT
02:25:04 Объединение таблиц с помощью JOIN
02:27:19 Уникальные значения с DISTINCT и ограничение выборки LIMIT
02:28:27 Операторы INSERT, UPDATE и DELETE: работа с данными
02:35:20 Разбор DevTools
02:38:02 Разбор HTML/CSS
02:38:21 Основные инструменты: "Inspector", "breakpoint"
02:40:00 Пример использования HTML инструментов на сайте
02:49:05 Хранение данных браузера "Application"
02:51:38 Кроссплатформенность и кроссбраузерность
02:52:51 Инструмент тестирования "Postman"
02:55:39 Использование "Postman Collection Runner"
02:57:05 Документация API "Swagger"
03:00:25 Отличия мобилки от веба: доставка и фиксы
03:02:59 Виды мобильных приложений
03:04:56 Различия Android и iOS
03:07:32 IDE и инструменты для сборки и тестирования
03:09:43 Логи и их использование
03:11:31 Снифферы и работа с трафиком
03:15:37 Жизненный цикл приложения, как тестировщик определяет источник багов
03:20:29 — Разбор CI/CD
03:29:46 — Микросервисы и их связь с CI/CD
03:31:59 — Применение CI/CD в тестировании
03:36:22 — Поиск и анализ логов. Практический сценарий
03:38:50 — Kafka и ее тестирование
03:43:05 — Как тестировать системы, использующие Kafka
03:49:17 — Разбор реальных кейсов
03:51:31 — Почему профессия тестировщика актуальна в 2026 году?
03:58:49 — Как улучшить английский и работать на валютных удалёнках?
04:00:08 — Собеседование с HR: проверка на дебила
04:01:30 — Тестовое задание: типичные задачи и важность структурированного подхода
04:05:28 — Примеры задач: тестирование поля ввода даты, горшка, веб-формы
04:08:29 — Что делать, если ты всё ещё сомневаешься?
https://www.youtube.com/watch?v=4usAz8ZpY2A
#qa #testing
Подпишись👉 @testlab_qa
Таймкоды:
00:00 Зачем этот курс и как правильно его смотреть?
05:00 Что такое тестирование? Определения и принципы
06:38 Quality control и Quality assurance: различия
10:28 Роль тестировщика на разных этапах разработки
13:52 Методологии разработки: scrum, canban, waterfall
20:25 ТОП вопросов с собеседований по основам тестирования
27:02 Методологии работы ĸоманды
34:23 Частые вопросы и ситуации на собеседовании
47:28 Жизненный циĸл тестирования
56:16 Функциональное и нефункциональное тестирование
58:57 Тестирование методом белого, серого и чёрного ящиков
01:07:17 Что такое верификация и валидация?
01:10:13 Тест-план и ПМИ: что это и где применяется?
01:12:36 Тест-кейсы и их структура
01:16:29 Баг-репорты: как писать их так, чтобы разработчики «кончали радугой»
01:26:41 Эквивалентные классы: как проверить много, проверив мало
01:29:28 Попарное тестирование: магия сокращения тестов в три раза
01:36:21 TMS: от пещер к Qase — эволюция тест-менеджмента
01:37:02 Создаем проект и тест-сьюты в Qase
01:39:39 Создаем полноценный тест-кейс в Qase
01:44:59 Отчет по тест-ран: удобно и аккуратно
01:48:34 Основные группы статус-кодов и их значение
01:50:20 Разница между HTTP и HTTPS: как работает шифрование
01:54:26 Клиент-серверная архитектура: как она работает?
01:57:00 Монолитная архитектура
01:58:41 Микросервисная архитектура: дробим монолит на независимые части
02:01:53 API и REST API: что это и зачем нужно?
02:03:49 HTTP-методы и идемпотентность: как избежать неприятных побочных эффектов
02:06:43 RESTful: следуй принципам REST
02:07:53 Классификация баз данных: реляционные и нереляционные
02:11:56 Отличия NoSQL от реляционных баз данных: плюсы и минусы
02:13:14 Что такое СУБД и зачем она нужна?
02:16:27 SQL: причина, по которой обезьяна не отнимет у тебя работу
02:19:06 Базовая структура SQL-запроса: SELECT и FROM
02:20:27 Использование WHERE для фильтрации данных
02:23:24 Агрегатные функции: MAX, MIN, AVG, COUNT
02:25:04 Объединение таблиц с помощью JOIN
02:27:19 Уникальные значения с DISTINCT и ограничение выборки LIMIT
02:28:27 Операторы INSERT, UPDATE и DELETE: работа с данными
02:35:20 Разбор DevTools
02:38:02 Разбор HTML/CSS
02:38:21 Основные инструменты: "Inspector", "breakpoint"
02:40:00 Пример использования HTML инструментов на сайте
02:49:05 Хранение данных браузера "Application"
02:51:38 Кроссплатформенность и кроссбраузерность
02:52:51 Инструмент тестирования "Postman"
02:55:39 Использование "Postman Collection Runner"
02:57:05 Документация API "Swagger"
03:00:25 Отличия мобилки от веба: доставка и фиксы
03:02:59 Виды мобильных приложений
03:04:56 Различия Android и iOS
03:07:32 IDE и инструменты для сборки и тестирования
03:09:43 Логи и их использование
03:11:31 Снифферы и работа с трафиком
03:15:37 Жизненный цикл приложения, как тестировщик определяет источник багов
03:20:29 — Разбор CI/CD
03:29:46 — Микросервисы и их связь с CI/CD
03:31:59 — Применение CI/CD в тестировании
03:36:22 — Поиск и анализ логов. Практический сценарий
03:38:50 — Kafka и ее тестирование
03:43:05 — Как тестировать системы, использующие Kafka
03:49:17 — Разбор реальных кейсов
03:51:31 — Почему профессия тестировщика актуальна в 2026 году?
03:58:49 — Как улучшить английский и работать на валютных удалёнках?
04:00:08 — Собеседование с HR: проверка на дебила
04:01:30 — Тестовое задание: типичные задачи и важность структурированного подхода
04:05:28 — Примеры задач: тестирование поля ввода даты, горшка, веб-формы
04:08:29 — Что делать, если ты всё ещё сомневаешься?
https://www.youtube.com/watch?v=4usAz8ZpY2A
#qa #testing
Подпишись👉 @testlab_qa
YouTube
Стать тестировщиком с нуля до 200к / Полный курс по тестированию (QA)
Домашние задания, полная текстовая расшифровка всего курса с дополнительными материалами: https://boosty.to/m0rtymerr/posts/ba6dbb9c-5c33-498e-b9a8-5d5fdbc4f97c?share=post_link&utm_source=youtube&utm_medium=video&utm_campaign=qa
Менторы, принявшие участие…
Менторы, принявшие участие…
🔥6❤2
🔥 БЕСПЛАТНЫЙ ИНТЕНСИВ по написанию 9 НЕЙРОСЕТЕЙ на Python за 1 вечер🔥
Узнайте всё о профессии AI-разработчика всего за 1 день!
Простое понимание основ, без сложного кода!
Создавайте нейросети, автоматизируйте бизнес-задачи и зарабатывайте на AI-решениях.
📌 Темы решаемых задач:
1. Классификация людей входящих/выходящих из автобуса
2. Классификация отзывы на Tesla
3. Оценка выброса СО2 по параметрам машины
4. Прогнозирование тренда цены золота
5. Сегментация изображения для робота доставщика
6. Обнаружение людей без касок на стройке/производстве
7. Трекинг людей на видео
8. Распознавание речи
9. Генерация изображений с помощью Stable diffusion
Интенсив - максимально простой и доступный, без какого-либо сложного программирования.
📚Регистрируйтесь прямо сейчас и получите подарок — бесплатный доступ к 21 AI-вебинару!
🤖 Присоединяйтесь к нашему бесплатному интенсиву и разберитесь в этой увлекательной теме с нами!
Узнайте всё о профессии AI-разработчика всего за 1 день!
Простое понимание основ, без сложного кода!
Создавайте нейросети, автоматизируйте бизнес-задачи и зарабатывайте на AI-решениях.
📌 Темы решаемых задач:
1. Классификация людей входящих/выходящих из автобуса
2. Классификация отзывы на Tesla
3. Оценка выброса СО2 по параметрам машины
4. Прогнозирование тренда цены золота
5. Сегментация изображения для робота доставщика
6. Обнаружение людей без касок на стройке/производстве
7. Трекинг людей на видео
8. Распознавание речи
9. Генерация изображений с помощью Stable diffusion
Интенсив - максимально простой и доступный, без какого-либо сложного программирования.
📚Регистрируйтесь прямо сейчас и получите подарок — бесплатный доступ к 21 AI-вебинару!
🤖 Присоединяйтесь к нашему бесплатному интенсиву и разберитесь в этой увлекательной теме с нами!