Тестировщик | Вопросы собесов @easy_qa_ru Channel on Telegram

Тестировщик | Вопросы собесов

@easy_qa_ru


Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Тесты t.me/+_F_-4Kuppqw5MmQ6
Вакансии t.me/+M3BcYeKpYcU5NGZi

Тестировщик | Вопросы собесов (Russian)

Вы мечтаете о карьере в области QA Тестирования, но не знаете, с чего начать подготовку к собеседованию? Тогда канал "Тестировщик | Вопросы собесов" (@easy_qa_ru) - именно то, что вам нужно! Здесь вы найдете разборы типичных вопросов, задаваемых на собеседованиях на позицию QA Тестировщика.

Подготовьтесь к интервью, изучите наиболее актуальные темы и узнайте, как правильно отвечать на вопросы работодателей. Для вашего удобства также доступен веб-сайт easyoffer.ru, где вы сможете найти еще больше полезного контента.

Не упустите возможность прокачать свои знания и стать востребованным специалистом в сфере тестирования! Присоединяйтесь к каналу (@easy_qa_ru) прямо сейчас и начните успешно проходить собеседования на позицию QA Тестировщика.

Решайте тесты и ищите работу в соответствующих разделах канала, чтобы быть максимально подготовленным к новым вызовам и перспективам. Уверенность в знаниях и умении правильно отвечать на вопросы сделает вас востребованным специалистом на рынке труда. Присоединяйтесь к сообществу успешных QA Тестировщиков и достигайте новых высот в своей карьере!

Тестировщик | Вопросы собесов

21 Feb, 16:10


🤔 Что такое 200 код?

HTTP-код 200 означает успешное выполнение запроса. Он указывает, что сервер обработал запрос и вернул корректный результат.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

21 Feb, 09:10


🤔 Расскажи о критериях начала тестирования

Критерии начала тестирования – это условия, которые должны быть выполнены перед тем, как тестировщики могут приступить к тестированию. Если эти условия не соблюдены, тестирование может быть неэффективным или невозможно.

🚩Требования и документация

🟠Функциональные и нефункциональные требования
должны быть четко определены и утверждены. Без требований сложно понять, что тестировать.
🟠Тестовая документация
тест-план, тест-кейсы, чек-листы должны быть подготовлены и согласованы.
🟠Критерии приемки (Acceptance Criteria)
должны быть прописаны, чтобы знать, что считать успешным тестированием.

🚩Подготовка окружения и данных

🟠Тестовое окружение
сервер, база данных, API должны быть настроены и доступны.
🟠Тестовые данные
учетные записи пользователей, тестовые заказы, email-адреса и другие данные должны быть готовы.
🟠Доступы
тестировщики должны иметь доступ ко всем нужным системам (бэкенд, админка, API).

🚩Готовность кода и билдов

🟠Код разработан и собран
если продукт еще не готов или билд падает, тестировать нечего.
🟠Smoke-тесты пройдены
базовая проверка, что приложение запускается и не падает сразу.
🟠Исправлены критические баги
если приложение не загружается, смысла в тестировании нет.

🚩Инструменты и ресурсы

🟠Тестовые инструменты настроены
например, Postman для API-тестирования, Selenium для UI.
🟠Логирование и мониторинг
нужны доступы к логам, чтобы видеть ошибки.
🟠Команда готова
тестировщики должны понимать задачи, сроки и зоны ответственности.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

20 Feb, 16:10


🤔 Какие основные команды в SQL?

Основные команды SQL включают: SELECT (выборка данных), INSERT (вставка данных), UPDATE (обновление), DELETE (удаление), CREATE (создание таблиц/баз), DROP (удаление структуры данных).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

20 Feb, 09:10


🤔 Какой body при 404 ответе от сервера?

Когда сервер возвращает ответ с кодом 404 (Not Found), это означает, что запрашиваемый ресурс не найден. Содержимое тела (body) ответа при этом может варьироваться в зависимости от реализации сервера и конкретного приложения, но обычно оно содержит информацию, объясняющую пользователю или клиентскому приложению причину ошибки.
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>404 Not Found</h1>
<p>The requested URL /path/to/resource was not found on this server.</p>
</body>
</html>


JSON-ответ для API с кодом 404
HTTP/1.1 404 Not Found
Content-Type: application/json

{
"error": {
"code": 404,
"message": "Resource not found",
"details": "The requested resource /api/v1/resource was not found on this server."
}
}


🚩Примеры

Node.js с использованием Express
const express = require('express');
const app = express();

app.use((req, res, next) => {
res.status(404).json({
error: {
code: 404,
message: "Resource not found",
details: `The requested resource ${req.originalUrl} was not found on this server.`
}
});
});

app.listen(3000, () => {
console.log('Server is running on port 3000');
});


Python с использованием Flask
from flask import Flask, jsonify

app = Flask(__name__)

@app.errorhandler(404)
def not_found(error):
response = jsonify({
"error": {
"code": 404,
"message": "Resource not found",
"details": "The requested resource was not found on this server."
}
})
response.status_code = 404
return response

ifead>
<== "__main__":
app.run(debug=True)


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

19 Feb, 16:10


🤔 Кто такие клиенты?

Это пользователи или системы, взаимодействующие с приложением или сервисом. Они отправляют запросы к серверу, ожидая соответствующего ответа.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

19 Feb, 09:10


🤔 Какие знаешь статус коды?

Статусные коды HTTP представляют собой стандартизированные индикаторы, отправляемые сервером в ответ на запросы клиента, чтобы указать на результат обработки запроса. Они помогают определить, был ли запрос успешным, произошла ли ошибка и какого рода действия требуется предпринять дальше. Они разделены на пять классов:

🚩1xx: Информационные

🟠100 Continue
Промежуточный ответ, указывающий, что начальная часть запроса принята и клиент может продолжать отправку данных.
🟠101 Switching Protocols
Сервер соглашается переключить протоколы в соответствии с запросом клиента, отправленным в заголовке Upgrade.


🚩2xx: Успешные

🟠200 OK
Стандартный ответ для успешных HTTP-запросов. Ресурс успешно обработан и передан в теле ответа.
🟠201 Created
Запрос был успешно выполнен, и в результате был создан новый ресурс.
🟠204 No Content
Запрос успешно обработан, но в ответе нет содержимого.


🚩3xx: Перенаправления

🟠301 Moved Permanently
Запрашиваемый ресурс был окончательно перемещен на URL, указанный в заголовке Location. Клиент должен использовать этот новый URL в будущем.
🟠302 Found
Запрашиваемый ресурс временно находится по другому URI, указанному в заголовке Location.
🟠304 Not Modified
Ресурс не был изменен с момента последнего запроса клиента, использующего условные заголовки типа If-Modified-Since или If-None-Match.


🚩4xx: Ошибки клиента

🟠400 Bad Request
Сервер не может обработать запрос из-за неверного синтаксиса.
🟠401 Unauthorized
Для доступа к запрашиваемому ресурсу требуется аутентификация.
🟠403 Forbidden
Сервер понял запрос, но отказывается его авторизовать.
🟠404 Not Found
Запрашиваемый ресурс не найден на сервере.
🟠405 Method Not Allowed
Метод, указанный в запросе, не поддерживается для данного ресурса.


🚩5xx: Ошибки сервера

🟠500 Internal Server Error
Общая ошибка сервера, когда сервер сталкивается с непредвиденными обстоятельствами.
🟠501 Not Implemented
Сервер не поддерживает функциональные возможности, необходимые для обработки запроса.
🟠502 Bad Gateway
Сервер, выступая в роли шлюза или прокси, получил неверный ответ от вышестоящего сервера.
🟠503 Service Unavailable
Сервер временно не может обработать запрос из-за перегрузки или технического обслуживания.
🟠504 Gateway Timeout
Шлюз или прокси-сервер не получил вовремя ответ от вышестоящего сервера для завершения запроса.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

18 Feb, 16:10


🤔 Какие известны SDLC?

SDLC (Software Development Life Cycle) включает фазы: планирование, анализ требований, проектирование, разработку, тестирование, развертывание и поддержку. Известные модели SDLC: Waterfall, Agile, V-Model, Spiral и Iterative.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

18 Feb, 09:10


🤔 Как бы провел автоматизацию валидации имейла (кейса)?

Автоматизация валидации email-адреса — это важная задача в тестировании, так как неправильный ввод email может привести к проблемам с регистрацией, авторизацией или отправкой уведомлений. Я бы провел автоматизацию следующим образом:

🟠Определение требований и правил валидации
Прежде чем писать тесты, нужно понять, какие требования предъявляются к email. Обычно email должен:
Содержать "@" и "."
Иметь корректную структуру ([email protected])
Не содержать запрещенные символы (например, пробелы, кириллицу)
Не быть слишком коротким ([email protected] — невалидно)
Не быть слишком длинным (например, > 320 символов)
Соответствовать формату регулярного выражения (RFC 5322)
Пример регулярного выражения для валидации email:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$


🟠Написание автоматических тестов
Я бы реализовал тестирование с помощью Selenium + Pytest или JUnit/TestNG в Java.
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

@pytest.fixture
def driver():
driver = webdriver.Chrome()
driver.get("https://example.com/signup") # Открываем страницу регистрации
yield driver
driver.quit()

@pytest.mark.parametrize("email, expected", [
("[email protected]", True), # Валидный email
("invalid-email.com", False), # Нет "@"
("@nodomain.com", False), # Нет имени
("[email protected]", False), # Нет домена
("[email protected]", False), # Двойная точка
("[email protected]", False), # Слишком короткое доменное расширение
])
def test_email_validation(driver, email, expected):
email_input = driver.find_element(By.NAME, "email")
submit_button = driver.find_element(By.NAME, "submit")

email_input.clear()
email_input.send_keys(email)
submit_button.click()

error_message = driver.find_element(By.ID, "email-error")

if expected:
assert error_message.is_displayed() is False, f"Ошибка для валидного email: {email}"
else:
assert error_message.is_displayed() is True, f"Нет ошибки для невалидного email: {email}"


🟠Проверка на сервере (API-тестирование)
Помимо UI, нужно проверять валидацию на сервере через API-запросы.
Пример API-теста с Postman + Newman или RestAssured в Java
import pytest
import requests

BASE_URL = "https://example.com/api/register"

@pytest.mark.parametrize("email, expected_status", [
("[email protected]", 200),
("invalid-email.com", 400),
("[email protected]", 400),
])
def test_email_validation_api(email, expected_status):
response = requests.post(BASE_URL, json={"email": email})
assert response.status_code == expected_status


🟠Интеграция тестов в CI/CD
Чтобы автоматические тесты запускались регулярно, их можно интегрировать в Jenkins, GitHub Actions, GitLab CI.
name: Run Email Validation Tests

on:
push:
branches:
- main

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.9'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest tests/


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

17 Feb, 16:11


🤔 Чем отличаются critical pass тесты и regression тесты?

1. Critical Pass Tests: фокусируются на критически важных функциональностях приложения, которые должны работать безупречно.
2. Regression Tests: проверяют, что изменения в коде не нарушили существующую функциональность.
3. Critical Pass Tests проверяют только ключевые функции, тогда как Regression охватывает более широкий спектр.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

17 Feb, 09:10


🤔 Что такое STLC?

Это последовательность этапов, через которые проходит процесс тестирования программного обеспечения. STLC включает в себя планирование, подготовку, выполнение и завершение тестирования для обеспечения качества программного продукта.

🚩Этапы

1⃣Анализ требований
Понять и уточнить требования к тестированию. Анализ требований, выявление тестируемых и нетестируемых требований, взаимодействие с заинтересованными сторонами. Список требований, которые будут тестироваться.

2⃣Планирование тестирования
Разработать стратегию и план тестирования. Определение объема тестирования, оценка рисков, определение ресурсов и графика, выбор инструментов. План тестирования, оценка трудозатрат, расписание.

3⃣Разработка тест-кейсов
Создание тест-кейсов и тестовых данных. Написание детальных тест-кейсов на основе требований, подготовка тестовых данных. Тест-кейсы, тестовые данные.

4⃣Настройка тестовой среды
Подготовить окружение для проведения тестирования. Настройка аппаратного и программного обеспечения, установка необходимых приложений, подготовка тестовых данных. Готовая тестовая среда.

5⃣Выполнение тестирования
Выполнить тесты и зафиксировать результаты. Запуск тестов, документирование результатов, логирование дефектов. Лог тестирования, отчеты о дефектах.

6⃣Закрытие тестирования
Завершить процесс тестирования и оценить его результаты. Анализ завершенных тестов, оценка покрытия тестирования, создание итогового отчета. Итоговый отчет о тестировании, рекомендации для улучшения.

🚩Аспекты

🟠Проверка и валидация
STLC включает как проверку (verification), так и валидацию (validation) для обеспечения того, что продукт соответствует требованиям и работает должным образом.
🟠Повторяемость и улучшение
Каждый этап может быть повторен при необходимости, и процесс может быть улучшен на основе полученных данных и анализа результатов.

🚩Пример этапов

🟠Анализ требований
Тестировщик анализирует требования к новой функции в мобильном приложении.
🟠Планирование тестирования
Разрабатывается план тестирования, включая определение тестовых стратегий и графика.
🟠Разработка тест-кейсов
Создаются тест-кейсы для проверки различных сценариев использования функции.
🟠Настройка тестовой среды
Подготавливается среда, имитирующая работу приложения на различных мобильных устройствах.
🟠Выполнение тестирования
Тесты запускаются, результаты фиксируются, выявленные дефекты документируются.
🟠Закрытие тестирования
Создается итоговый отчет, анализируются результаты, даются рекомендации.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

16 Feb, 16:10


🤔 Какие тест-кейсы можно сделать для тестирования баз данных?

1. Проверка целостности данных: корректность вставки, обновления, удаления записей.
2. Проверка соответствия схемы базы данных требованиям (типы данных, ограничения).
3. Тестирование производительности запросов и индексов.
4. Проверка транзакций: откаты, уровни изоляции.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

15 Feb, 16:10


🤔 Чем отличаются кэш (cache) и куки (cookie)?

1. Кэш: хранит временные данные (например, изображения, страницы) на устройстве для ускорения работы приложения или сайта.
2. Куки: хранят информацию о сеансах и пользователе (например, авторизация, предпочтения) на стороне клиента.
3. Кэш улучшает производительность, а куки позволяют сохранять пользовательские данные между сессиями.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

14 Feb, 16:10


🤔 Зачем восстанавливать проект?

1. Восстановление проекта нужно, чтобы запустить тесты, проверить окружение или воспроизвести ошибки.
2. Это помогает убедиться, что проект работает корректно после изменений, внесённых разработчиками.
3. Также восстановление полезно для синхронизации работы команды, когда тестировщик работает с актуальной версией кода.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

14 Feb, 09:10


🤔 Что тестируется на Acceptance тестировании?

Это этап тестирования, на котором проверяется, соответствует ли программное обеспечение требованиям и ожиданиям конечных пользователей или заказчика. Его цель – подтвердить, что система готова к использованию в реальной среде.

🚩Что тестируется на Acceptance-тестировании?

🟠Соответствие бизнес-требованиям
Проверяется, выполняет ли приложение функции, которые были описаны в спецификациях или договоре. Например, если приложение должно позволять пользователям регистрироваться, эта функциональность обязательно тестируется.

🟠Юзабилити (удобство использования)
Система тестируется с точки зрения реального пользователя, чтобы убедиться, что интерфейс понятен и удобен. Например, проверяется, легко ли заполнить форму заказа или найти нужный товар в интернет-магазине.

🟠Корректность функциональности
Тестируется выполнение всех ключевых сценариев, важных для конечного пользователя. Например, в банковском приложении это создание счета, перевод денег или оплата счетов.

🟠Интеграция с другими системами
Проверяется, как приложение взаимодействует с другими системами, такими как платежные шлюзы, базы данных или API. Например, покупка товара в интернет-магазине должна корректно обрабатывать запросы к платежной системе.

🟠Реальная производительность
Оценивается, насколько быстро и стабильно работает система в условиях, приближенных к боевым. Например, проверяется, как приложение справляется с большим количеством пользователей одновременно.

🟠Соответствие юридическим и нормативным требованиям
Если приложение работает в среде, подчиняющейся законам или стандартам (например, GDPR для обработки данных в ЕС), проверяется, что оно этим требованиям соответствует.

🟠Работа в целевой среде
Тестируется, как система работает на устройствах, платформах и браузерах, которые будут использовать конечные пользователи. Например, мобильное приложение должно одинаково корректно работать на iOS и Android.

🟠Ошибки блокирующего уровня
Проверяется, что в системе отсутствуют критические баги, которые могут сделать её неработоспособной или нарушить основные процессы. Например, невозможность войти в систему – это блокирующий баг.

🚩Кто проводит Acceptance-тестирование?

🟠Клиенты или заказчики
Иногда Acceptance-тестирование называют User Acceptance Testing (UAT). В этом случае тестирование выполняют конечные пользователи или заказчики, которые проверяют, что система соответствует их ожиданиям.

🟠Тестировщики
QA-инженеры проводят тестирование, симулируя сценарии конечных пользователей, чтобы выявить любые отклонения до передачи системы заказчику.

🟠Бизнес-аналитики
Они могут участвовать в тестировании, так как обладают глубоким знанием требований и целей продукта.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

13 Feb, 16:10


🤔 Что такое ООП в Java?

1. Объектно-ориентированное программирование (ООП) в Java основывается на концепциях классов, объектов, и таких принципах, как инкапсуляция, наследование, полиморфизм и абстракция.
2. Оно позволяет моделировать реальный мир через взаимодействие объектов, каждый из которых обладает состоянием и поведением.
3. Java активно использует ООП для создания масштабируемого, поддерживаемого и гибкого кода.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

13 Feb, 09:10


🤔 Что такое Summary?

Это краткое изложение основного содержания текста, документа, исследования или проекта. Целью summary является предоставление читателю общей картины, ключевых моментов и основных выводов, без необходимости углубляться в детали.

🚩Компоненты

🟠Введение
Краткое введение в тему или цель документа.
🟠Основные идеи
Перечисление ключевых моментов, тем или идей, обсуждаемых в основном тексте.
🟠Выводы или итоги
Основные выводы или результаты, к которым пришли авторы.

🚩Примеры использования

🟠Научные статьи
Введение в ключевые результаты исследования, чтобы читатели могли быстро понять основные выводы без чтения всей статьи.
🟠Бизнес-отчёты
Краткое изложение финансовых показателей и стратегических решений, чтобы руководители могли быстро ознакомиться с состоянием дел.
🟠Книги
Резюме книги, которое помогает потенциальным читателям решить, стоит ли читать полное произведение.

🚩Зачем нужно?

🟠Экономия времени
Позволяет читателям быстро понять основные моменты без необходимости читать весь документ.
🟠Упрощение восприятия
Сводка помогает структурировать информацию и выделить главное.
🟠Принятие решений
Быстрое ознакомление с основной информацией помогает принимать обоснованные решения.
🟠Представление информации
Полезно для презентаций, где нужно кратко изложить суть проекта или исследования.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

12 Feb, 16:10


🤔 Что такое реляция (отношения)?

1. Реляция — это связь между таблицами в реляционной базе данных.
2. Она реализуется через внешние ключи (foreign keys) и позволяет организовать данные в связанную структуру.
3. Примеры отношений: один-к-одному, один-ко-многим, многие-ко-многим.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

12 Feb, 09:10


🤔 Почему waterfall имеет минимальный риск ошибки?

Водопадная модель (Waterfall) разработки программного обеспечения известна своей последовательной и строгой структурой. Эта модель предполагает прохождение через ряд этапов, таких как анализ требований, дизайн, разработка, тестирование, деплой и обслуживание, в строгом порядке.

🚩Основные причины

🟠Чётко определённые этапы
Каждый этап должен быть завершён перед переходом к следующему. Это снижает вероятность пропуска критических шагов.

🟠Тщательная документация
Водопадная модель требует обширной документации на каждом этапе, включая требования, дизайн и планы тестирования. Это помогает в обеспечении прозрачности и понимания проекта всеми участниками.

🟠Подробный анализ и планирование
Значительное внимание уделяется этапу анализа и планирования. Это позволяет выявить потенциальные проблемы и риски на ранних стадиях и разработать стратегии их минимизации.

🟠Тестирование после каждого этапа
Завершение каждого этапа включает тестирование и верификацию. Это позволяет обнаруживать и исправлять ошибки до перехода к следующему этапу.

🟠Формальное утверждение на каждом этапе
Переход к следующему этапу возможен только после формального утверждения текущего этапа. Это обеспечивает строгий контроль качества и соответствие требованиям.

🟠Меньше изменений в требованиях
Поскольку требования фиксируются на начальном этапе, вероятность внесения изменений в процессе разработки минимальна. Это снижает риск появления новых ошибок, связанных с изменениями.

🚩Примеры снижения риска

🟠Документация
Подробная спецификация требований помогает избежать недоразумений и ошибок в понимании задач.
🟠Контроль качества
Регулярные проверки и утверждения на каждом этапе предотвращают накопление ошибок.
🟠Планирование
Тщательное планирование и анализ требований позволяют предусмотреть и избежать потенциальных проблем.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

11 Feb, 16:10


🤔 Как называется тестирование, которое помогает уйти от эффекта пестицида?

1. Такое тестирование называется Exploratory Testing или Ad Hoc Testing.
2. Оно предполагает проведение нестандартных проверок и использование творческого подхода, чтобы найти неожиданные ошибки.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

10 Feb, 20:14


Ищу работу пол года

Практически под каждым постом в этом канале я вижу комментарии от людей, которые ищут работу по полгода. Это перерастает в обсуждение того, как нужно (или не нужно) искать работу, почему процесс найма сломан и как они откликались на фейковые вакансии.

Честно говоря, искать работу полгода — это нонсенс. Очевидно, что человек делает что-то не так. Главная ошибка, которую совершают многие, — это создание иллюзии поиска работы.

То есть человек вроде бы ищет работу, но делает это неэффективно, тратя время на нецелевые действия. Например:

Просматривает вакансии перед откликом.
Пытается понять, подходит ли он под вакансию. Если считает, что не подходит — не откликается.
Пишет сопроводительные письма (иногда даже уникальные под каждую вакансию).
Заполняет анкеты, проходит тесты.

Все эти действия отнимают время, но не приводят к результату.

Почему это не работает?

HR-менеджер не может вручную отсмотреть 2000 откликов, оценить каждое резюме и прочитать сопроводительные письма. Поэтому компании используют ATS-системы (системы автоматического подбора), которые анализируют резюме и определяют процент его соответствия вакансии.

Что делать, чтобы повысить шансы?

1️⃣ Добавить ключевые навыки в резюме — и в основной текст, и в теги. Возьмите их с easyoffer.ru

2️⃣ Убрать нерелевантный опыт, оставить только подходящий.

3️⃣ Оформить опыт так, чтобы он выглядел релевантным. Если у вас его нет, укажите проекты, стажировки или другой опыт, который можно представить как работу от 1 года. Если опыт слишком большой, сузьте его до 6 лет.

4️⃣ Откликаться на все вакансии без разбору. Если вы Junior, не ищите только стажер или Junior-вакансии — пробуйте везде. Не отказывайте себе сами, пусть это решит HR

5️⃣ Сделать резюме публичным, потому что HR-менеджеры часто ищут кандидатов не только среди откликов, но и в базе резюме.

6️⃣ Используйте ИИ по минимуму – ATS-системы считывают это и помечают "сгенерировано ИИ"

‼️ Главное правило: чем больше откликов — тем выше шанс получить оффер. Делайте резюме удобным для ATS-систем, и вас заметят.

1. Посмотрите видео о том как я вывел свою резюме в Топ1 на HH
2. Посмотрите видео как я нашел первую работу
3. Прочитайте этот кейс про оптимизацию резюме

Если прям вообще тяжело.

Создайте несколько разных резюме. Создайте 2, 3 да хоть 10 резюме. Настройте авто-отлики и ждите приглашения на собесы.

Не нужно создавать иллюзию поиска работы, сделайте несколько простых и актуальных действий.

Тестировщик | Вопросы собесов

10 Feb, 16:10


🤔 Какая разница между приоритетностью и серьезностью бага?

1. Приоритетность:
- Указывает, насколько важно исправить баг с точки зрения бизнеса.
- Зависит от влияния на пользователей или сроки выпуска.
2. Серьезность:
- Отражает техническую значимость бага и его влияние на систему.
- Зависит от того, насколько баг нарушает работу продукта (например, критическая ошибка против косметической).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

10 Feb, 09:10


🤔 Расскажи про проведение проверок?

Проведение проверок — важный процесс в QA (Quality Assurance), который помогает выявить дефекты до того, как продукт попадет к пользователю. Проверки можно разделить на ручные и автоматизированные, а также на разные уровни тестирования.

🚩Виды проверок в тестировании

🟠Верификация и Валидация
Верификация (Verification) - проверяем, делаем ли мы всё правильно (соответствие требованиям).
Валидация (Validation) – проверяем, правильно ли работает продукт (соответствует ли он ожиданиям пользователя).
Верификация: «В ТЗ написано, что кнопка должна быть зеленой. Она зеленая?»
Валидация: «Пользователь понимает, что это кнопка?» 🤔

🟠Функциональное и нефункциональное тестирование
Функциональные проверки – проверяют, работает ли система по требованиям (например, корректный логин/пароль).
Нефункциональные проверки – проверяют производительность, безопасность, удобство использования.
Функциональная проверка: Если ввести 123456, логин пройдет?
Нефункциональная проверка: Сайт выдержит 1000 пользователей одновременно?

🚩Методы проведения проверок

🟠Ручное тестирование
Проверки выполняются тестировщиком без автоматизированных инструментов. Используются чек-листы, тест-кейсы, exploratory testing.
Проверить, что кнопка "Заказать" работает на всех страницах.
Вручную протестировать корзину в интернет-магазине.

🟠Автоматизированное тестирование
Запуск тестов с помощью кода (Selenium, JUnit, PyTest, Cypress). Подходит для регрессионного тестирования и больших проектов.
@Test
public void testLogin() {
driver.get("https://example.com");
driver.findElement(By.id("username")).sendKeys("user");
driver.findElement(By.id("password")).sendKeys("pass");
driver.findElement(By.id("login")).click();
Assert.assertTrue(driver.getTitle().contains("Dashboard"));
}


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

10 Feb, 07:00


⚡️ В сети начали массово сливать курсы и книги известных онлайн школ по айти

Вот отсортированная база с тонной материала (постепенно пополняется):

БАЗА (4687 видео/книг):

(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(114 видео, 77 книги) — Сисадмин
(107 видео, 43 книги) — BA/SA
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — Дизайн
(129 видео, 73 книги) — QA
(213 видео, 63 книги) — Rust
(121 видео, 24 книги) — 1С
(136 видео, 33 книги) — PM/HR

Скачивать ничего не нужно — все выложено в Telegram

Тестировщик | Вопросы собесов

09 Feb, 16:10


🤔 Что известно про тестирование разноцветных ящиков?

1. Черный ящик:
- Тестирование без знания внутренней структуры кода. Фокус на входах и выходах.
2. Белый ящик:
- Тестирование с полным знанием внутренней структуры, логики и кода.
3. Серый ящик:
- Комбинация черного и белого ящика: частичный доступ к внутренним данным и логике.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

09 Feb, 09:10


🤔 Как исправить коллектор?

Если у вас возникли проблемы с работой GC (Garbage Collector), это может проявляться как:
Высокая нагрузка на CPU из-за частых сборок мусора.
OutOfMemoryError (OOM) – память не освобождается вовремя.
Долгие паузы (GC pauses) – приложение зависает во время очистки памяти.

🟠Выбор правильного GC-алгоритма
Java поддерживает несколько GC-алгоритмов. Иногда просто смена GC помогает улучшить производительность.
java -XX:+PrintCommandLineFlags -version


Как задать нужный GC:
# G1 GC (по умолчанию в Java 9+)
java -XX:+UseG1GC -jar app.jar

# ZGC (низкие паузы, для больших heap)
java -XX:+UseZGC -jar app.jar

# Shenandoah GC (минимальные задержки, Java 12+)
java -XX:+UseShenandoahGC -jar app.jar

# Serial GC (для маленьких приложений)
java -XX:+UseSerialGC -jar app.jar


🟠Оптимизация размеров heap (памяти JVM)
Если у вас OutOfMemoryError или частые GC-паузы, попробуйте изменить размер heap.
java -Xms512m -Xmx4g -jar app.jar


🟠Включить логи GC для диагностики
Чтобы понять, как работает GC, можно включить логи GC и проанализировать их.
java -Xlog:gc* -jar app.jar  # Логи GC для Java 9+
java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -jar app.jar # Для Java 8


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

08 Feb, 23:42


Привет, ребята!
1,5 года я учился на программиста, а сайт easyoffer.ru стал моим пет-проектом. Я создавал его, потому что:
а) нужно было добавить хоть какой-нибудь проект в резюме
б) подготовиться к прохождению собесов

И всё получилось! Благодаря еasyoffer я успешно прошёл собеседование и устроился Python Junior-разработчиком на удаленку с зарплатой 115 тысяч рублей.

Однако ещё во время разработки я понял, что у этого проекта есть потенциал. Казалось, что сайт может стать популярным и, возможно, превратиться в стартап.

По-этому я с самого начала заложил в проект минимальную бизнес-модель, на случай, если сайт начнёт набирать трафик. Я предложил пользователям полный доступ к сайту в обмен на подписку на Telegram-каналы. Это позволяло развивать аудиторию, а в будущем — зарабатывать на рекламе.

Результат превзошёл ожидания!
С момента запуска easyoffer посетило 400 тысяч человек. А когда доход с рекламы превысил мою зарплату программиста, я принял решение уйти с работы и полностью посвятить себя разработке новой версии сайта.

Вот так, зайдя в IT, через 4 месяца вышел через свой же пет-проект. Мне очень повезло

Уже год я работаю над easyoffer 2.0.
Это будет более масштабный и качественной новый проект:
– Появится тренажер
– Появятся задачи из собесов
– Фильтрация контента по грейдам
и еще очень много фич, о которых я расскажу позже.

Хочу, довести easyoffer до ума, чтобы сайт стал настоящим помощником для всех, кто готовится к собеседованиям.
По этому в ближайшее время я объявлю о старте краудфандинговой кампании, чтобы ускорить разработку и я готов щедро отблагодарить всех, кто поддержит проект.

А те, кто поддержат проект первыми, получат специальные лимитированные выгодные вознаграждения. Следите за этим телеграм каналом, если хотите стать первыми сапортерами.

Тестировщик | Вопросы собесов

08 Feb, 16:10


🤔 Что известно про приемочное тестирование?

Это этап проверки, когда заказчик или конечный пользователь оценивают, соответствует ли система их требованиям:
1. Проводится после всех внутренних тестов.
2. Проверяются бизнес-требования, функциональность, и удобство использования.
3. Результат — формальное одобрение или отклонение системы.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

08 Feb, 09:10


🤔 В чем разница между ошибкой и дефектом?

В тестировании и разработке программного обеспечения ошибка (error) и дефект (defect) – это разные понятия, хотя они связаны между собой.

🚩Ошибка (Error)

Ошибка – это неправильное действие или решение разработчика, из-за которого в коде появляется проблема.
Ошибки могут быть на разных этапах
Ошибки при написании кода (синтаксические, логические).
Ошибки в требованиях (неправильное понимание задачи).
Ошибки в дизайне (некорректная архитектура).
int divide(int a, int b) {
return a / b; // Ошибка: нет проверки на деление на 0
}


🚩Дефект (Defect, Bug, Issue)

Дефект – это некорректное поведение программы, вызванное ошибкой в коде.
Дефект – это конкретная проблема в продукте, найденная тестировщиком или пользователем.
Если дефект мешает пользователям – он становится проблемой (issue).
Пример дефекта:
Кнопка "Войти" не работает.
При вводе 0 приложение вылетает с ошибкой.
Цена товара на сайте отображается неправильно.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

07 Feb, 16:10


🤔 Что известно про нативные приложения?

Нативные приложения разрабатываются для конкретной платформы (iOS, Android) с использованием языков и инструментов, специфичных для этой платформы:
1. Производительность: Высокая скорость и оптимизация за счет использования системных API.
2. Доступ к аппаратным ресурсам: Камера, GPS, сенсоры доступны через системные библиотеки.
3. Интеграция: Глубокая интеграция с функциональностью ОС. Минус: более высокие затраты на разработку для нескольких платформ.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

07 Feb, 09:10


🤔 Что такое MM (Management Model)?

MM (Management Model) — это модель управления, которая описывает структуру, процессы и методы управления в организации или проекте. Она определяет, как принимаются решения, как распределяются ресурсы и как контролируется выполнение задач.

🚩Основные компоненты MM

Любая модель управления включает несколько ключевых элементов:
🟠Цели и стратегия
что хочет достичь организация.
🟠Структура управления
кто за что отвечает (иерархия, роли, команды).
🟠Процессы и методы
как принимаются решения, как управляются задачи.
🟠Культура и ценности
принципы работы, правила, мотивация сотрудников.
🟠Метрики и контроль
как измеряется успех, какие KPI используются.

🚩Виды моделей управления

Существует несколько типов Management Models, которые компании выбирают в зависимости от своей стратегии.

🟠Классическая (иерархическая) модель
Основана на четкой вертикали власти (руководители принимают решения, подчиненные исполняют).
Часто используется в больших компаниях, госорганизациях.
Пример: Военная структура, заводы, крупные корпорации.

🟠Agile-модель (гибкое управление)
Основана на самоорганизующихся командах и быстрой адаптации к изменениям.
Используется в IT-компаниях, стартапах.
Методы: Scrum, Kanban, SAFe.

🟠OKR (Objective & Key Results) – управление по целям
Определяются глобальные цели, а команды сами выбирают пути их достижения.
Используется в Google, Amazon, Microsoft.

🟠Lean Management (Бережливое управление)
Фокус на устранении потерь и повышении эффективности.
Используется в производстве (Toyota), IT-разработке, бизнесе.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

06 Feb, 16:10


🤔 Как боремся с memory leaks в наших проектах?

1. Использование слабых ссылок (weak):
- Для разрыва сильных циклов между объектами.
2. Unowned ссылки:
- Применяются, если объект гарантированно существует в момент доступа.
3. Кэпчур-лист в замыканиях:
- Указываем, какие ссылки использовать слабо (weak) или без увеличения счетчика (unowned).
4. Инструменты диагностики:
- Используем инструменты вроде Xcode Instruments (Leaks) для обнаружения утечек.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

06 Feb, 09:10


🤔 Что лучше Postman или полноценный фреймворк?

Выбор между Postman и полноценным фреймворком для API-тестирования (например, RestAssured, JMeter, Cypress, Karate) зависит от задач и масштаба тестирования. Давайте разберем, когда лучше использовать Postman, а когда стоит писать тесты в коде.

🚩Когда Postman — хороший выбор?

Это удобный инструмент с графическим интерфейсом для тестирования API. Подходит для ручного тестирования и быстрого создания автотестов.

🚩Плюсы Postman

Простота
не требует программирования, удобный UI.
Автоматизация
есть встроенный JavaScript для тестов (pm.test).
Коллекции
можно сохранять запросы и запускать их пакетами.
Интеграции
Postman поддерживает CI/CD, Newman, экспорт в другие форматы.

🚩Минусы Postman

Медленный при больших тестах
сложно поддерживать сотни сценариев.
Ограниченные возможности
сложные проверки требуют костылей на JavaScript.
Мало гибкости
сложные логики (например, работа с БД) реализовать сложно.
Трудно версионировать
хранение тестов в Postman сложнее, чем в коде (например, в Git).

🚩Когда лучше использовать фреймворк для API-тестирования?

Фреймворки, такие как RestAssured (Java), Cypress (JavaScript), Karate (Java), JMeter, Playwright API позволяют писать мощные тесты с полной автоматизацией.

🚩Плюсы фреймворка

Гибкость
можно писать сложные тесты с циклами, логикой, базами данных.
Хорошая интеграция с CI/CD
удобно запускать в Jenkins, GitHub Actions, GitLab CI.
Версионирование
хранится в Git, легко отслеживать изменения.
Масштабируемость
подходит для больших тестов и многопоточного выполнения.

🚩Минусы фреймворка

Сложнее в освоении
нужно знать язык программирования (Java, Python, JS).
Дольше настраивать
требует конфигурации проекта, зависимостей.
Меньше визуального удобства
нет готового UI, как в Postman.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

05 Feb, 17:10


🔒 1219 ГБ платного контента для JAVA программистов выложили БЕСПЛАТНО

Получите доступ к библиотеке знаний от FAANG School только в течение 24 часов:

– Пошаговая RoadMap по Java
– Redis - 5 улучшений для твоего пет-проекта
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Шпаргалка по Spring с разбором паттерна Наблюдатель
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
- Шпаргалка по основным командам SQL

Свежее пополнение - гайд «Топ пет-проектов с AI». Сборник идей, который поможет создать пет-проект не только для портфолио, но и для пассивного дохода 🫢

Это возможность для джуна продвинуться по карьерной лестнице со скоростью лифта. Переходи по ссылке и забирай.

Тестировщик | Вопросы собесов

05 Feb, 16:10


🤔 Как оптимизировать процесс тестирования?

1. Автоматизация: Использование инструментов для автоматизации регрессионного тестирования.
2. Параллельное тестирование: Разделение тестов для выполнения на разных машинах или в разных потоках.
3. Приоритизация тестов: Запуск самых важных тестов (критические функции) в первую очередь.
4. Использование CI/CD: Интеграция тестирования в пайплайн сборки и развертывания.
5. Ранняя проверка: Проведение тестов на начальных этапах разработки (shift-left подход).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

05 Feb, 09:10


🤔 Какие знаешь методы копирования объектов?

В Java есть глубокое и поверхностное копирование объектов. Разберем основные способы их реализации.

🚩Поверхностное копирование (`shallow copy`)

При поверхностном копировании копируются только ссылки на вложенные объекты, а не сами объекты. То есть если изменить вложенный объект, он изменится и в оригинале.

🚩Способы поверхностного копирования

🟠Метод `clone()` (реализация `Cloneable`)
Чтобы использовать clone(), класс должен реализовать интерфейс Cloneable, а метод clone() нужно переопределить.
class Person implements Cloneable {
String name;
int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}

@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // Поверхностное копирование
}
}

public class Main {
public static void main(String[] args) throws CloneNotSupportedException {
Person p1 = new Person("Alice", 30);
Person p2 = (Person) p1.clone(); // Копируем объект

System.out.println(p1.name.equals(p2.name)); // true (строка хранится в пуле)
System.out.println(p1 == p2); // false (это разные объекты)
}
}


🟠Конструктор копирования
Можно создать новый объект, передав в конструктор другой объект.
class Person {
String name;
int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}

// Конструктор копирования
Person(Person other) {
this.name = other.name;
this.age = other.age;
}
}


🚩Глубокое копирование (`deep copy`)

При глубоком копировании создаются новые объекты, а не просто копируются ссылки.

🟠Реализация `clone()` с ручным копированием вложенных объектов
Если в объекте есть другие объекты, их нужно клонировать вручную.
class Address implements Cloneable {
String city;

Address(String city) {
this.city = city;
}

@Override
protected Object clone() throws CloneNotSupportedException {
return new Address(this.city); // Создаем новый объект!
}
}

class Person implements Cloneable {
String name;
int age;
Address address;

Person(String name, int age, Address address) {
this.name = name;
this.age = age;
this.address = address;
}

@Override
protected Object clone() throws CloneNotSupportedException {
Person cloned = (Person) super.clone();
cloned.address = (Address) address.clone(); // Глубокое копирование
return cloned;
}
}


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

04 Feb, 16:10


🤔 Какие надо взять проверки, чтобы проверить интервал от 10 до 20?

1. Граничные значения:
- 10 и 20 (включены ли границы интервала).
- 9 и 21 (исключены ли значения за пределами интервала).
2. Типичные значения:
- Проверка чисел внутри интервала, например, 15.
3. Неверные данные:
- Проверка некорректных типов (например, строки или отрицательные числа).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

04 Feb, 09:10


🤔 Какая разница между негативным и позитивным тестированием?

Это два основных подхода в тестировании ПО, которые используются для проверки корректности работы системы под различными условиями. Оба подхода имеют свои цели и сценарии использования.

🟠Позитивное тестирование
Проверка того, что система работает правильно при вводе корректных и ожидаемых данных.
Сценарии: В нем используются входные данные и сценарии, которые соответствуют требованиям и спецификациям системы. Оно направлено на подтверждение того, что система выполняет свои функции как ожидается. Ввод корректных данных для входа в систему (правильное имя пользователя и пароль). Заполнение формы регистрации с валидными данными. Совершение покупки с действительной кредитной картой.
Тест-кейс: Вход в систему с корректными данными
Шаги:
1. Открыть страницу входа.
2. Ввести корректный логин пользователя.
3. Ввести корректный пароль пользователя.
4. Нажать кнопку "Войти".
Ожидаемый результат: Пользователь успешно входит в систему.


🟠Негативное тестирование
Проверка того, что система правильно обрабатывает некорректные, неожиданные или экстремальные данные и ситуации.
Сценарии: В нем используются входные данные и сценарии, которые выходят за пределы нормальной работы системы. Оно направлено на выявление ошибок и проверку устойчивости системы. Ввод неправильного пароля для входа в систему. Попытка регистрации с уже существующим именем пользователя. Ввод текста вместо чисел в числовые поля.
Тест-кейс: Вход в систему с некорректным паролем
Шаги:
1. Открыть страницу входа.
2. Ввести корректный логин пользователя.
3. Ввести некорректный пароль.
4. Нажать кнопку "Войти".
Ожидаемый результат: Система отображает сообщение об ошибке "Неправильный пароль".


🚩Когда использовать

🟠Позитивное тестирование
В начале процесса тестирования для проверки базовой функциональности. Для подтверждения того, что система соответствует требованиям и спецификациям.

🟠Негативное тестирование
Для проверки устойчивости и надежности системы. Для выявления потенциальных уязвимостей и дефектов. В дополнение к позитивному тестированию, чтобы обеспечить всестороннее покрытие тестов.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

03 Feb, 16:10


🤔 В чем плюс использования Waterfall?

1. Простота планирования: Водопадная модель четко структурирована, и каждый этап завершен до перехода к следующему.
2. Предсказуемость: Все требования определены на начальном этапе, что минимизирует изменения на поздних стадиях.
3. Документированность: Каждый этап сопровождается обширной документацией, что упрощает контроль и передачу проекта.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

03 Feb, 09:10


🤔 Какая вместимость SringBuilder?

В классе StringBuilder есть понятие вместимости (capacity) — это количество символов, которые объект StringBuilder может вместить без необходимости выделения новой памяти.

🟠Как работает `capacity`?

Когда создается объект StringBuilder, у него есть внутренняя буферная строка, которая может расти по мере добавления новых символов. Однако, чтобы не выделять память слишком часто, StringBuilder создает буфер с запасом.

🟠Как посмотреть текущую вместимость?
Для этого есть метод
StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.capacity()); // 21 (16 + 5)


🟠Как увеличить `capacity` вручную?
Можно задать вместимость заранее через конструктор:
StringBuilder sb = new StringBuilder(50);
System.out.println(sb.capacity()); // 50


А если нужно увеличить уже существующий StringBuilder, можно использовать:
sb.ensureCapacity(100); // Гарантирует вместимость 100


🟠Что происходит при превышении `capacity`?
Когда длина строки превышает текущую вместимость, StringBuilder автоматически увеличивает размер буфера.
Новая вместимость рассчитывается так:
новая_вместимость = (текущая_вместимость * 2) + 2


Пример
StringBuilder sb = new StringBuilder(10);
sb.append("12345678901"); // 11 символов → превышает 10
System.out.println(sb.capacity()); // (10 * 2) + 2 = 22


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

02 Feb, 16:10


🤔 В каких случаях нужно писать тест-кейсы?

1. Для сложных функциональностей с детализированными шагами.
2. Когда важна точная документация процесса тестирования.
3. При необходимости воспроизвести проблему или обучить новых тестировщиков.
4. Для критически важных модулей, где ошибки недопустимы.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

02 Feb, 09:10


🤔 В чем заключается суть тестирования белого ящика?

Суть тестирования белого ящика заключается в проверке внутренней структуры, логики и кода программы. Тестировщик при этом имеет доступ к исходному коду и анализирует его, чтобы убедиться, что все ветки кода работают правильно, а все возможные условия и пути выполнения программы протестированы.

🚩Зачем нужно тестирование белого ящика?

Выявлять логические ошибки в коде
Проверять все возможные ветвления программы
Анализировать покрытие кода тестами
Обнаруживать неиспользуемый или «мертвый» код
Оптимизировать код и улучшить его качество

🚩Как оно используется?

Тестирование белого ящика проводится разработчиками или QA-инженерами с навыками программирования. Основные методы:
🟠Покрытие операторов (Statement Coverage)
проверяется, выполняется ли каждая строка кода.
🟠Покрытие условий (Branch Coverage)
тестируются все возможные ветвления (if, else, switch).
🟠Покрытие путей (Path Coverage)
проверяются все возможные пути выполнения кода.
def check_number(x):
if x > 0:
return "Positive"
elif x < 0:
return "Negative"
else:
return "Zero"


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

01 Feb, 16:10


🤔 Что такое модульное тестирование?

Модульное тестирование проверяет отдельные модули или компоненты системы в изоляции. Это помогает выявить ошибки на ранних этапах разработки.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

01 Feb, 09:10


🤔 Какие есть особенности гибридных приложений?

Гибридные приложения сочетают в себе элементы как нативных, так и веб-приложений. Это приводит к определённым особенностям, которые влияют на их разработку, тестирование и использование.

🟠Использование веб-технологий
HTML, CSS, JavaScript: Основные технологии, используемые для создания интерфейсов гибридных приложений. WebView: Встраиваемый компонент, позволяющий отображать веб-контент внутри нативного приложения.

🟠Кроссплатформенность
Мультиплатформенная поддержка: Одно и то же приложение может работать на различных платформах (iOS, Android, Windows) с минимальными изменениями. Единая кодовая база: Позволяет сократить время и затраты на разработку и поддержку.

🟠Производительность
Скорость выполнения: Гибридные приложения могут быть медленнее нативных из-за использования WebView для отображения контента. Ограниченные возможности графики и анимации: Веб-технологии могут не поддерживать все возможности графики и анимации, доступные в нативных приложениях.

🟠Доступ к нативным функциям
Плагины и мосты: Для доступа к нативным функциям устройства (камере, GPS, датчикам) используются плагины, такие как Apache Cordova или Capacitor. Ограничения доступа: Не все нативные функции могут быть доступны через гибридные решения.

🟠Обновления и развёртывание
Быстрое обновление: Обновления веб-части гибридного приложения могут быть развернуты без необходимости проходить процесс повторного утверждения в магазинах приложений. Публикация в App Store и Google Play: Тем не менее, для обновлений, затрагивающих нативную часть, потребуется проходить стандартный процесс публикации в магазинах приложений.

🟠Разработка и тестирование
Инструменты разработки: Используются инструменты как для веб-разработки (например, браузеры для отладки), так и для нативной разработки (например, Xcode, Android Studio). Тестирование на различных платформах: Необходимо проводить тестирование на всех поддерживаемых платформах, учитывая их особенности.

🟠Пользовательский интерфейс и опыт
Единый UI/UX: Гибридные приложения могут обеспечить единый пользовательский интерфейс на всех платформах. Интеграция с платформенными стандартами: Может быть сложнее интегрироваться с платформенными UI/UX стандартами по сравнению с нативными приложениями.

🚩Пример

1⃣Использование веб-технологий
Каталог товаров и страницы товаров разрабатываются с использованием HTML, CSS, JavaScript.
2⃣Кроссплатформенность
Приложение работает как на iOS, так и на Android, используя одну кодовую базу.
3⃣Доступ к нативным функциям
Фотографии товаров можно загружать с помощью камеры устройства через плагин.
4⃣Обновления
Обновление дизайна страницы товара может быть выполнено без необходимости перепубликации приложения в магазинах.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

31 Jan, 16:10


🤔 Какие есть события в Scrum?

1. Sprint Planning: планирование работы на спринт.
2. Daily Scrum: ежедневные короткие встречи.
3. Sprint Review: демонстрация завершённой работы.
4. Sprint Retrospective: анализ прошедшего спринта и поиск улучшений.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

31 Jan, 09:10


🤔 Что тестируется на Acceptance тестировании?

Это этап тестирования, на котором проверяется, соответствует ли программное обеспечение требованиям и ожиданиям конечных пользователей или заказчика. Его цель – подтвердить, что система готова к использованию в реальной среде.

🚩Что тестируется на Acceptance-тестировании?

🟠Соответствие бизнес-требованиям
Проверяется, выполняет ли приложение функции, которые были описаны в спецификациях или договоре. Например, если приложение должно позволять пользователям регистрироваться, эта функциональность обязательно тестируется.

🟠Юзабилити (удобство использования)
Система тестируется с точки зрения реального пользователя, чтобы убедиться, что интерфейс понятен и удобен. Например, проверяется, легко ли заполнить форму заказа или найти нужный товар в интернет-магазине.

🟠Корректность функциональности
Тестируется выполнение всех ключевых сценариев, важных для конечного пользователя. Например, в банковском приложении это создание счета, перевод денег или оплата счетов.

🟠Интеграция с другими системами
Проверяется, как приложение взаимодействует с другими системами, такими как платежные шлюзы, базы данных или API. Например, покупка товара в интернет-магазине должна корректно обрабатывать запросы к платежной системе.

🟠Реальная производительность
Оценивается, насколько быстро и стабильно работает система в условиях, приближенных к боевым. Например, проверяется, как приложение справляется с большим количеством пользователей одновременно.

🟠Соответствие юридическим и нормативным требованиям
Если приложение работает в среде, подчиняющейся законам или стандартам (например, GDPR для обработки данных в ЕС), проверяется, что оно этим требованиям соответствует.

🟠Работа в целевой среде
Тестируется, как система работает на устройствах, платформах и браузерах, которые будут использовать конечные пользователи. Например, мобильное приложение должно одинаково корректно работать на iOS и Android.

🟠Ошибки блокирующего уровня
Проверяется, что в системе отсутствуют критические баги, которые могут сделать её неработоспособной или нарушить основные процессы. Например, невозможность войти в систему – это блокирующий баг.

🚩Кто проводит Acceptance-тестирование?

🟠Клиенты или заказчики
Иногда Acceptance-тестирование называют User Acceptance Testing (UAT). В этом случае тестирование выполняют конечные пользователи или заказчики, которые проверяют, что система соответствует их ожиданиям.

🟠Тестировщики
QA-инженеры проводят тестирование, симулируя сценарии конечных пользователей, чтобы выявить любые отклонения до передачи системы заказчику.

🟠Бизнес-аналитики
Они могут участвовать в тестировании, так как обладают глубоким знанием требований и целей продукта.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

30 Jan, 16:10


🤔 Зачем тест-кейсы и чек-листы, если это почти одно и то же?

- Чек-листы: обеспечивают краткий контроль ключевых областей, не описывая пошаговую процедуру.
- Тест-кейсы: содержат подробный сценарий тестирования, включая шаги, входные данные и ожидаемые результаты.
Чек-листы быстрее составлять, а тест-кейсы полезны для сложных сценариев.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

30 Jan, 09:10


🤔 Что делает команда git stage?

В Git команды git stage как таковой нет, но существует команда, которая делает аналогичное действие — это git add. Чтобы понять, что значит "stage", важно разобраться, как работает система Git.

🚩Что такое "staging" в Git?

Это процесс добавления изменений из рабочей директории (working directory) в область подготовки (staging area), которая предшествует фиксации изменений (commit). Сначала вы добавляете изменения в эту область (stage), а затем фиксируете их в истории репозиториев.

🚩Как работает `git add`?

git add — команда, которая добавляет изменения (новые, удалённые или изменённые файлы) в staging area. После выполнения этой команды Git начинает "отслеживать" изменения в указанных файлах и подготавливает их для следующего коммита.

🚩Пример использования

🟠Рабочая директория
У вас есть файл example.txt. Вы вносите в него изменения.
Добавление в staging

   git add example.txt


Просмотр статуса

   git status

Вы увидите, что файл находится в состоянии готовности к коммиту

   Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: example.txt


🟠Фиксация изменений
После добавления в staging вы можете зафиксировать изменения:

   git commit -m "Обновлён example.txt"


🚩Почему это нужно?

🟠Контроль над изменениями
Вы можете подготовить к коммиту только часть изменений (например, только в одном файле или даже в части файла).
🟠Множественные изменения
Если в вашем проекте много изменений, вы можете добавлять их в staging постепенно и коммитить по частям.
🟠Подготовка чистой истории
Staging area помогает организовать логически связные изменения в отдельных коммитах.
🟠Альтернативный синтаксис
Некоторые интерфейсы (например, Git GUI или плагины в IDE) используют термин stage вместо git add. Также в Git есть alias:
git stage <file> = git add <file>


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

29 Jan, 16:10


🤔 Какие известны методы запроса?

1. GET: получение данных.
2. POST: создание новых данных.
3. PUT: создание или обновление данных.
4. PATCH: частичное обновление данных.
5. DELETE: удаление данных.
6. OPTIONS: получение поддерживаемых методов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

29 Jan, 09:10


🤔 Куда относится черный, белый, серый ящик?

Черный, белый и серый ящик – это подходы к тестированию программного обеспечения, которые относятся к методам тестирования. Они классифицируются по уровню знания тестировщика о внутреннем устройстве системы, которую он тестирует.

🚩Черный ящик (Black Box Testing)

Тестировщик не знает, как работает внутренний код или логика системы. Он видит только интерфейс (входы и выходы). Это тестирование основывается исключительно на функциональных требованиях.
Этот метод проверяет, правильно ли система выполняет свои функции без анализа внутренней структуры. Главная цель – проверить соответствие системы спецификациям и ожиданиям пользователя.
Тестировщик создает тестовые сценарии на основании входных данных и ожидаемых результатов, не зная, как они обрабатываются "внутри".
Вы тестируете калькулятор. Если вы вводите "2 + 2" и ожидаете получить "4", вам не важно, как программа выполняет операцию сложения. Вас интересует только результат.

🚩Белый ящик (White Box Testing)

Тестировщик имеет полное понимание внутренней структуры кода. Он знает, как работает система изнутри, и тесты создаются на основании анализа кода.
Этот метод позволяет находить ошибки на уровне логики, алгоритмов или конкретных участков кода. Также он проверяет покрытия кода (например, покрытие строк или ветвей).
Используется разработчиками или опытными тестировщиками, которые имеют доступ к коду и могут анализировать его.
Вы анализируете функцию, которая рассчитывает площадь прямоугольника. Код выглядит так:
def calculate_area(width, height):
return width * height


🚩Серый ящик (Gray Box Testing)

Это комбинация черного и белого ящиков. Тестировщик имеет частичное знание внутренней структуры системы. Он знает общую архитектуру или ключевые аспекты работы, но не все детали.
Позволяет балансировать между функциональным тестированием и анализом кода. Увеличивает эффективность, так как есть доступ к ключевым внутренним аспектам, но тестирование остается сосредоточенным на функциональности.
Применяется для интеграционного тестирования или тестирования сложных систем, где понимание ключевых компонентов важно, но не требует полного анализа кода.
Вы тестируете веб-приложение и знаете, что запрос к серверу проходит через определенные API. Вы проверяете работу этих API, но не вникаете в их полную внутреннюю реализацию.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

28 Jan, 16:10


🤔 Что покрываем тестами при тестировании белым ящиком?

1. Логика выполнения кода: ветвления, циклы, условия.
2. Точность обработки данных.
3. Полный охват функциональности, включая редкие сценарии.
4. Корректность взаимодействия между модулями.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

28 Jan, 09:10


🤔 Зачем нужна команда Git Cherry-pick?

Команда git cherry-pick используется для выбора конкретных коммитов из одной ветки и их переноса в другую. Это позволяет взять отдельные изменения, внесённые в одном месте, и применить их в другом, без необходимости переносить всю историю изменений.

🚩Почему это важно и где используется?

🟠Решение локальных проблем
Если в одной ветке был сделан важный фикс (например, исправление багов), но вы не хотите сливать всю ветку, можно выбрать только нужный коммит.
🟠Избежание конфликтов
Вместо объединения (merge) или ребейза (rebase), которые могут привести к большим конфликтам, cherry-pick позволяет избирательно брать изменения.
🟠Поддержка нескольких веток
Когда вы работаете над несколькими версиями продукта (например, основная ветка и версия с долгосрочной поддержкой), cherry-pick помогает перенести исправления между ними.

🚩Как работает git cherry-pick?

Основной синтаксис
git cherry-pick <commit-hash>


Пример:
Допустим, вы работаете в ветке main и вам нужно перенести коммит из ветки feature-branch.
# Сначала переключаемся в нужную ветку
git checkout main

# Берем конкретный коммит из другой ветки
git cherry-pick a1b2c3d


Если вы хотите выбрать несколько коммитов, это можно сделать так
git cherry-pick a1b2c3d e4f5g6h


Вы также можете выбрать диапазон коммитов
git cherry-pick a1b2c3d..e4f5g6h


🚩Что происходит в процессе cherry-pick?

Git создает новый коммит в текущей ветке с изменениями из указанного коммита.
Хеш нового коммита будет другим, но содержимое изменений сохранится.
Если изменения конфликтуют с текущей веткой, Git остановится и попросит вручную разрешить конфликты.

🚩Пример
Предположим, в ветке feature-branch есть два коммита:
a1b2c3d — Исправление бага.
e4f5g6h — Обновление документации.
Вы хотите перенести только исправление бага в ветку main.
# Находитесь в ветке main
git checkout main

# Переносите исправление
git cherry-pick a1b2c3d


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

27 Jan, 16:10


🤔 Что делать, если нужно пройти регрессию, а времени нет?

1. Приоритизировать тесты: запускать критические и основные сценарии.
2. Использовать автоматизацию для часто проверяемых функций.
3. Сфокусироваться на областях, затронутых последними изменениями.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

27 Jan, 09:10


🤔 Что такое JSON?

Это текстовый формат обмена данными, основанный. Этот формат является независимым от языка стандартом, который поддерживается многими языками программирования. Это делает его идеальным для передачи данных между сервером и клиентскими приложениями, а также для хранения конфигураций и настроек.
Коллекции пар ключ/значение (реализованные в большинстве языков как объекты, записи, структуры, словари, хеш-таблицы, и т.д.).
Упорядоченные списки значений (в большинстве языков реализуются как массивы, векторы, списки и т.д.).
{
"имя": "Иван",
"возраст": 30,
"isDeveloper": true,
"навыки": ["JavaScript", "React", "Node.js"],
"контакты": {
"email": "[email protected]",
"сайт": "https://ivan.dev"
}
}


🚩Почему JSON так популярен?

🟠Легкость чтения и написания
Для человека этот формат довольно прост и понятен, а для машины — легко разбираем и генерируем.

🟠Широкая поддержка
Большинство языков программирования имеют встроенные библиотеки для работы с ним, что делает его удобным для межплатформенного обмена данными.

🟠Эффективность
Будучи текстовым форматом, оптимален для обмена данными через сеть и легко сжимается, что снижает затраты на трафик.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

26 Jan, 16:10


🤔 В чем отличие XML от JSON?

- XML: более громоздкий, использует теги для описания структуры данных, поддерживает атрибуты и вложенность.
- JSON: легче, использует ключ-значение, проще читать и обрабатывать, предпочтителен для API.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

26 Jan, 09:10


🤔 Как сервер проверит что ключ доступа соответствует?

Проверка ключа доступа сервером осуществляется с использованием различных методов аутентификации и валидации. Вот процесс проверки с объяснением:

🟠Получение ключа от клиента
Когда клиент отправляет запрос, он включает ключ доступа (например, в заголовке, параметрах запроса или теле).
GET /api/resource HTTP/1.1
Authorization: Bearer your_access_token


🟠Сопоставление ключа с базой данных
Сервер проверяет ключ, сравнивая его с сохраненными данными:
Где хранятся ключи? Обычно ключи хранятся в защищенной базе данных в виде:
- Оригинала (например, API-ключей).
- Хэша (например, для JWT или паролей, чтобы не хранить оригинальные данные).
Что проверяется?
- Существование ключа.
- Связанная с ним информация (например, пользователь, срок действия, права доступа).

🟠Проверка срока действия (Expiration Time)
Для токенов (например, JWT) или временных ключей сервер проверяет, не истек ли срок действия: Для API-ключей это может быть статическое поле "срок действия" в базе данных.
Для JWT срок действия зашит в самом токене в поле exp.

🟠Валидация подписи (для JWT или шифрованных ключей)
Если используется токен, сервер проверяет его подлинность с помощью подписи:
JWT: Сервер декодирует токен и проверяет подпись, используя секретный ключ (HS256) или открытый ключ (RS256). Если подпись невалидна, запрос отклоняется.
Зачем подпись?
Чтобы удостовериться, что токен был выдан сервером и не изменен.
Пример кода валидации JWT на Python с использованием библиотеки PyJWT
import jwt

SECRET_KEY = "your_secret_key"

def validate_jwt(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
return payload # Возвращает данные токена, если он валиден
except jwt.ExpiredSignatureError:
return "Token expired"
except jwt.InvalidTokenError:
return "Invalid token"


🟠Проверка прав доступа
Сервер анализирует связанный с ключом контекст (например, роли или разрешения):
Пример: Пользователь с ключом KEY123 имеет доступ только к определенным данным или функциям.
Реализация: Хранение прав в базе данных или в самом токене (внутри payload).

🟠Ответ на основе результата проверки
Если ключ валиден, сервер разрешает доступ к ресурсу и возвращает данные. Если ключ недействителен (не существует, истек, не имеет прав), сервер возвращает ошибку, например:
401 Unauthorized (для отсутствия или невалидного ключа).
403 Forbidden (если прав недостаточно).

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

25 Jan, 16:10


🤔 Какая разница между негативным и позитивным тестированием?

- Позитивное тестирование: проверяет, как система работает при вводе ожидаемых и корректных данных.
- Негативное тестирование: проверяет систему на некорректных данных или в условиях, которые могут вызвать ошибки, чтобы выявить потенциальные сбои


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

25 Jan, 09:10


🤔 Какие есть атрибуты тест-кейса?

Это документ для проверки функциональности системы. Его атрибуты обеспечивают ясность, повторяемость и контроль тестирования.

🟠ID (Идентификатор)
Уникальный код для поиска тест-кейса (например, TC001).
🟠Название
Краткое описание цели теста ("Проверка входа").
🟠Описание
Детализация того, что проверяется.
🟠Предусловия
Условия, которые должны быть выполнены до теста (например, "Пользователь зарегистрирован").
🟠Шаги
Последовательность действий для выполнения теста.
🟠Ожидаемый результат
То, что должно произойти при правильной работе системы.
🟠Фактический результат
Результат, полученный во время теста.
🟠Приоритет
Важность теста (например, высокий для критической функции).
🟠Статус
Состояние теста (готов, пройден, провален).
🟠Тип
Категория теста (функциональный, UI).
🟠Данные
Информация для выполнения теста (логины, файлы).
🟠Окружение
Среда, где проводится тест (dev, test).
🟠Связи
Ссылки на требования или баги.
🟠Автор
Кто создал тест-кейс.
🟠Примечания
Дополнительная информация.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

24 Jan, 16:10


🤔 Какая разница между подтверждающим и регрессивным тестированием?

1. Подтверждающее тестирование: проверяет конкретное исправление бага, чтобы убедиться в его устранении.
2. Регрессивное тестирование: проверяет, что новое изменение не нарушило уже существующий функционал.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

23 Jan, 16:10


🤔 Что известно про тестирование чёрного ящика

Да, это вид тестирования, где внутреннее устройство системы неизвестно тестировщику.
1. Проверяются входные данные и ожидаемые результаты без анализа внутренней реализации.
2. Используется для проверки функциональности и соответствия требованиям.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

23 Jan, 09:10


🤔 Когда нужен чек лист?

Чек-лист необходим в различных ситуациях для организации и структурирования процесса тестирования. Он помогает обеспечить, что все важные аспекты и функции приложения проверены, и ни одна критическая область не упущена.

🚩Основные случаи применения

🟠Регрессионное тестирование
Чтобы убедиться, что все важные функции приложения работают после внесения изменений в код.

🟠Санитарное тестирование (Sanity Testing)
Быстрая проверка критических функций после мелких изменений или исправлений.

🟠Смоук-тестирование (Smoke Testing)
Первичная проверка основных функций системы перед началом более детального тестирования.

🟠Тестирование по сценариям (Scenario-Based Testing)
Проверка специфических сценариев использования приложения, чтобы убедиться, что они выполняются правильно.

🟠Ручное тестирование (Manual Testing)
Помогает тестировщикам не пропустить важные шаги и систематизировать процесс.

🟠Повторяющиеся тесты
Когда необходимо многократно выполнять одни и те же тесты в течение длительного времени, чек-лист помогает поддерживать качество и последовательность.

🟠Тестирование по требованию
Для тестирования специфических требований и бизнес-правил, чтобы убедиться, что они правильно реализованы.

🟠Новые члены команды
Чек-лист помогает новым членам команды быстрее освоиться и следовать установленным процессам.

🚩Пример

1⃣Авторизация
Проверка ввода корректного логина и пароля. Проверка реакции на некорректный логин и пароль. Проверка функции восстановления пароля.

2⃣Корзина
Добавление товара в корзину. Удаление товара из корзины. Обновление количества товара в корзине.

3⃣Оформление заказа
Проверка процесса ввода данных для доставки. Проверка различных методов оплаты. Проверка отправки подтверждения заказа.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

22 Jan, 16:10


🤔 Какие JOIN бывают?

1. INNER JOIN: возвращает только совпадающие строки из двух таблиц.
2. LEFT JOIN: возвращает все строки из левой таблицы и совпадающие из правой.
3. RIGHT JOIN: возвращает все строки из правой таблицы и совпадающие из левой.
4. FULL OUTER JOIN: возвращает все строки из обеих таблиц.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

22 Jan, 11:29


📺 Уникальная база IT собеседований

370+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы.

Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.

🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

Тестировщик | Вопросы собесов

22 Jan, 09:10


🤔 Что значит структурированная база данных?

Это система хранения данных, организованная в четко определенные форматы и структуры, такие как таблицы, строки и столбцы. Эти данные организуются по определенной схеме, которая задается заранее, обычно в виде реляционной модели. Примеры таких баз данных — SQL-базы данных, такие как MySQL, PostgreSQL или Oracle.

🚩Зачем нужна структурированная база данных?

🟠Упорядоченность данных
Структурированные базы данных организуют данные в таблицах, что упрощает их чтение, анализ и обработку.
🟠Эффективное управление
Благодаря четкой схеме можно легко добавлять, изменять и удалять данные без риска нарушения логики хранения.
🟠Быстрый доступ к данным
Используя запросы на языке SQL, можно быстро извлекать нужные данные даже из огромных массивов.
🟠Обеспечение целостности данных
Реляционные базы поддерживают механизмы, такие как первичные и внешние ключи, чтобы гарантировать согласованность данных.

🚩Как это работает?

🟠Таблицы
Представляют собой набор данных, состоящий из строк и столбцов.
🟠Столбцы
Описывают свойства данных (например, имя, возраст), а строки представляют отдельные записи (конкретных пользователей).

🚩Почему это важно?

🟠Легкость анализа
Например, запрос SQL вернет всех пользователей старше 25 лет. Это экономит время и упрощает работу с данными.
   SELECT Name, Age FROM Users WHERE Age > 25;


🟠Масштабируемость
Структурированные базы позволяют работать с миллионами записей, не теряя производительности.
🟠Поддержка транзакций
Такие базы обеспечивают выполнение операций в рамках транзакций, что защищает данные от ошибок при обработке.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

21 Jan, 16:10


🤔 Что такое хеддер HTTP-запроса?

1. Хеддер HTTP-запроса — это метаданные, передаваемые вместе с запросом для передачи информации о клиенте и его предпочтениях.
2. Содержат данные, такие как тип контента (Content-Type), пользовательский агент (User-Agent), авторизация (Authorization) и параметры кэширования.
3. Хеддеры позволяют серверу обрабатывать запросы корректно, учитывая переданную информацию.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

21 Jan, 09:10


🤔 В чем разница статического и динамического тестирования?

Два основных метода тестирования программного обеспечения, которые применяются на разных стадиях разработки для выявления ошибок и улучшения качества продукта.

🚩Статическое тестирование

🟠Код ревью
Анализ кода разработчиками для выявления ошибок, нарушения стиля и улучшения качества.
🟠Анализ документации
Проверка требований, дизайна, планов тестирования и другой документации на соответствие стандартам и полноту.
🟠Статический анализ кода
Использование инструментов для автоматической проверки кода на наличие ошибок, нарушений стандартов и потенциальных уязвимостей.

🚩Плюсы и минусы

Обнаружение ошибок на ранних стадиях разработки.
Снижение затрат на исправление ошибок.
Улучшение качества кода и документации.
Не выявляет ошибки, связанные с выполнением кода и его взаимодействием с другими компонентами.
Требует квалифицированных специалистов для проведения ревью и анализа.

🚩Динамическое тестирование

🟠Функциональное тестирование
Проверка соответствия функциональности требованиям.
🟠Нагрузочное тестирование
Оценка производительности под различными нагрузками.
🟠Тестирование безопасности
Проверка на уязвимости и угрозы.
🟠Тестирование пользовательского интерфейса (UI)
Оценка удобства использования и правильности отображения.

🚩Плюсы и минусы

Выявление ошибок, связанных с реальным выполнением кода.
Оценка поведения системы в различных условиях эксплуатации.
Проверка интеграции и взаимодействия различных компонентов системы.
Требует больше времени и ресурсов для выполнения.
Ошибки могут быть обнаружены на более поздних стадиях, что увеличивает затраты на их исправление.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

21 Jan, 07:00


🚩 Красные флаги на собесе

или почему ты опять не получил оффер

- не умеешь говорить о зарплате
- не знаешь, как представить предыдущий опыт
- не можешь рассказать о своих сильных сторонах

В итоге - HR так и не узнал о твоих удачных проектах, собес провален, на вакансии откликаться страшно.

Чтобы это не было твоей историей, приходи на лекцию от команды FAANG School

Что тебя ждет:
- увидишь, как HR собеседует программиста в прямом эфире
- поймешь, как отвечать на неудобные вопросы про зарплату
- разберешь частые ошибки начинающих на собесах
- научишься представлять предыдущий опыт
- узнаешь, как говорить о своих сильных сторонах без пафоса
- поймешь, что нужно спросить у HR, чтобы понять уровень компании

Приходи на эфир и получи пошаговый план подготовки к каждому этапу интервью. Исправь ошибки на собесе, чтобы HR выстроились в очередь.

Тестировщик | Вопросы собесов

20 Jan, 16:10


🤔 Какой инструмент для автоматизации API есть?

1. Postman — удобен для тестирования и автоматизации API-запросов.
2. SoapUI — подходит для тестирования SOAP и REST API.
3. JMeter — используется для нагрузочного тестирования API.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

20 Jan, 09:10


🤔 Какие направления данных используются у REST?

В REST (Representational State Transfer) используются три основных направления передачи данных между клиентом и сервером. Эти направления определяют, как данные передаются и используются в процессе взаимодействия.

🚩Передача данных от клиента к серверу (Request Data)

Клиент отправляет данные серверу для выполнения определенных операций, таких как создание, обновление или удаление ресурсов.

GET /products?category=electronics&sort=price_asc



🟠Пути запроса (Path Parameters)
- Данные передаются как часть URL.
- Используются для указания конкретного ресурса.

GET /products/123



🟠Тело запроса (Request Body)
- Данные передаются в основном для POST, PUT, PATCH запросов.
- Используются для передачи сложных структур данных.
- Форматы: JSON, XML, форматы форм (form-data, x-www-form-urlencoded).
    POST /users
{
"name": "John Doe",
"email": "[email protected]"
}


🚩Передача данных от сервера к клиенту (Response Data)

Сервер возвращает данные клиенту в ответ на его запрос.
🟠Способы передачи данных
- Тело ответа (Response Body):
- Основной способ передачи данных.
- Формат обычно JSON или XML.
    {
"id": 123,
"name": "Smartphone",
"price": 499.99
}


🟠Заголовки ответа (Response Headers):
- Передают метаинформацию о запросе или ответе.
- Примеры: Content-Type, Authorization, Cache-Control.

Content-Type: application/json


🟠Статус ответа (Response Status)
- HTTP-коды состояния указывают результат операции.
- Примеры:
- 200 OK — успешный запрос.
- 201 Created — ресурс успешно создан.
- 404 Not Found — ресурс не найден.
- 500 Internal Server Error — внутренняя ошибка сервера.

🚩Двусторонняя передача данных (Real-time Communication)

В REST взаимодействие обычно происходит по запросу-ответу, но в некоторых случаях требуется поддерживать двустороннюю связь между клиентом и сервером.
🟠Long Polling
Клиент отправляет запрос и ожидает ответа от сервера. Сервер отвечает только при наличии новых данных. Используется для чатов, уведомлений.
🟠WebSockets (не REST, но часто совместно используется):
Устанавливается постоянное соединение между клиентом и сервером. Сервер может отправлять данные клиенту без явного запроса. Пример: уведомления, онлайн-игры.
🟠Server-Sent Events (SSE):
Сервер отправляет данные клиенту в режиме реального времени через HTTP.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

19 Jan, 16:10


🤔 Разработчик пофиксил баг, что происходит с баг-репортом?

1. Баг-репорт переходит в статус "Исправлено" или аналогичный, в зависимости от используемого трекера.
2. Тестировщик выполняет проверку исправления, используя соответствующие тестовые кейсы.
3. Если баг устранён, репорт закрывается, иначе возвращается на доработку.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

19 Jan, 09:10


🤔 Как идет процесс разработки по waterfall?

Это традиционная последовательная модель разработки программного обеспечения. В ней каждая фаза должна быть завершена полностью перед началом следующей. Возврат к предыдущим этапам либо невозможен, либо требует значительных усилий.

🚩Этапы разработки по Waterfall

1⃣Анализ требований (Requirements Analysis)
На этом этапе собираются, анализируются и документируются все требования к системе. Результат: детальная документация с описанием того, что должно быть разработано. Примеры: Техническое задание (ТЗ), спецификация требований.

2⃣Проектирование системы (System Design)
Планирование архитектуры и структуры системы. Результат: документация по архитектуре, макеты интерфейса, диаграммы базы данных.

3⃣Разработка (Implementation)
Программисты пишут код на основе проектной документации. Код разделяется на модули, которые разрабатываются и интегрируются.

4⃣Тестирование (Testing)
Проверка всей системы на соответствие требованиям. Проверяются функциональность, производительность, безопасность, совместимость.

5⃣Развертывание (Deployment)
После успешного тестирования продукт доставляется заказчику и разворачивается на рабочем окружении.

6⃣Сопровождение (Maintenance)
Поддержка продукта, исправление багов, добавление небольших изменений.

🚩Особенности Waterfall

🟠Последовательность
Каждый этап выполняется строго один за другим.
🟠Фокус на документации
Вся работа документируется (например, ТЗ, проектная документация, тест-планы).
🟠Отсутствие гибкости
После завершения этапа сложно вернуться назад, если обнаружены ошибки.
🟠Подходит для проектов с четкими требованиями
Эффективна, если требования понятны и не изменяются в процессе разработки.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

18 Jan, 16:10


🤔 Что такое Web Sockets (веб сокет)?

Это протокол для двунаправленной коммуникации между клиентом и сервером через постоянное соединение.
1. Используется для приложений в реальном времени, например, чатов и игр.
2. Уменьшает задержки по сравнению с традиционными запросами HTTP.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

18 Jan, 09:10


🤔 Что такое интеграционное тестирование?

Это этап тестирования, на котором проверяется взаимодействие между различными модулями или компонентами системы. Его цель — убедиться, что модули, которые уже прошли индивидуальное (юнит) тестирование, работают корректно вместе.

🚩Почему оно важно?

В реальных приложениях модули редко работают изолированно. Например:
- Фронтенд взаимодействует с бекендом.
- Один сервис вызывает другой через API.
- Компоненты приложения используют общую базу данных.
Ошибки могут возникать при интеграции, даже если каждый модуль работает корректно. Интеграционное тестирование помогает обнаружить такие проблемы.

🚩Основные задачи интеграционного тестирования

🟠Проверка взаимодействия модулей
Убедиться, что данные корректно передаются между компонентами.

🟠Обнаружение ошибок, возникающих на стыке
Например: Различия в формате данных.
Некорректные вызовы API.

🟠Проверка работы с внешними системами
Например, взаимодействие с базами данных, API сторонних сервисов или файловыми хранилищами.

Удостовериться в согласованности работы модулей
Например, фронтенд отправляет запрос, а бекенд возвращает данные в ожидаемом формате.

🚩Методы интеграционного тестирования

🟠Big Bang Testing (Тестирование "Большим взрывом")
Все модули объединяются и тестируются одновременно. Подходит для небольших систем. Недостаток: если возникает ошибка, сложно определить, в каком модуле проблема.

🟠Incremental Testing (Инкрементное тестирование)
Модули интегрируются и тестируются постепенно. Восходящее тестирование (Bottom-up). Сначала тестируются низкоуровневые модули (например, работа с базой данных), а затем высокоуровневые. Используются "заглушки" для имитации поведения высокоуровневых модулей.

🟠Тестирование интерфейсов (Interface Testing)
Проверка взаимодействия через интерфейсы: API, базы данных, файловые системы и т.д.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

17 Jan, 16:10


🤔 Что известно про HTTPS?

Это безопасная версия HTTP.
1. Использует SSL/TLS для шифрования данных между клиентом и сервером.
2. Обеспечивает защиту от перехвата данных и гарантирует подлинность сервера.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

17 Jan, 09:10


🤔 Для чего нужен CI/CD?

Это методика и инструменты, которые помогают автоматизировать процесс разработки, тестирования и развертывания приложений. Она используется для ускорения разработки и повышения качества программного обеспечения.

🚩Компоненты CI/CD

🟠Continuous Integration (CI)
Непрерывная интеграция. Позволяет автоматически интегрировать код от разных разработчиков в общий репозиторий и проверять его на наличие ошибок.
🟠Continuous Delivery (CD)
Автоматизация всех этапов после CI: сборки, тестирования и подготовки к развертыванию.
🟠Continuous Deployment (CD)
Полная автоматизация развертывания приложения на продакшн.

🚩Почему CI/CD важен?

🟠Быстрее выпуск новых версий
Автоматизация тестов и развертывания сокращает время между написанием кода и его использованием пользователями.

🟠Высокое качество кода
Автоматические проверки помогают обнаруживать баги на ранних этапах. Меньше человеческих ошибок благодаря автоматизации.

🟠Постоянная доступность продукта
Код в репозитории всегда находится в рабочем состоянии благодаря постоянной интеграции и тестированию.

🟠Стабильность и уверенность
Любые изменения проходят через одинаковый, заранее настроенный процесс проверки и тестирования.

🟠Снижение затрат на исправление ошибок
Раннее обнаружение багов снижает стоимость их исправления.

🚩Как CI/CD помогает в работе QA?

QA-специалисты получают автоматизированные проверки, которые они могут настроить для проверки функциональности, производительности и безопасности. Легко воспроизводить ошибки: если тест падает, CI/CD хранит логи и окружение для анализа. QA меньше времени тратит на рутинные проверки, сосредотачиваясь на сложных сценариях.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

16 Jan, 16:10


🤔 Что такое user agent?

Это строка, передаваемая браузером или клиентом серверу, описывающая устройство, операционную систему и браузер.
Используется сервером для адаптации содержимого или отслеживания статистики.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

16 Jan, 09:10


🤔 Как проверишь, сохранились ли данные пользователя о карте или нет?

Чтобы проверить, сохранились ли данные пользователя о карте, нужно учесть несколько аспектов: где и как хранятся эти данные, и какие способы проверки доступны в рамках тестирования.

🚩Определение хранилища данных

Данные о карте пользователя могут храниться в:
Базе данных (Backend)
Например, в зашифрованном виде в таблице, связанной с профилем пользователя.
Сторонних платежных сервисах
Например, Stripe, PayPal или других провайдерах.
Локальном хранилище на клиенте
Например, в cookies, localStorage, sessionStorage (не рекомендуется для карт).

🚩Тестирование через пользовательский интерфейс (UI)

1⃣Авторизация
Войдите в систему под тестовым аккаунтом.

2⃣Навигация
Перейдите в раздел профиля/платежей, где должны отображаться сохраненные карты.

3⃣Проверка наличия карты
Убедитесь, что:Видна информация о сохраненной карте (обычно отображается последние 4 цифры карты и её тип, например, Visa ****1234). Есть кнопки для управления (удаление, добавление другой карты).

🚩Автоматизация

Используйте инструменты, такие как Selenium или Cypress, чтобы проверить отображение карты
# Selenium пример на Python
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com/login")

# Авторизация
driver.find_element("id", "email").send_keys("[email protected]")
driver.find_element("id", "password").send_keys("password123")
driver.find_element("id", "login-button").click()

# Навигация к сохраненным картам
driver.get("https://example.com/profile/cards")

# Проверка наличия карты
saved_card = driver.find_element("css selector", ".card-info")
assert "****1234" in saved_card.text


🚩3. Тестирование через API

🟠Отправьте запрос на получение информации о сохраненных картах
Используйте API, предоставляемый сервером (например, GET /api/users/{id}/cards).

🟠Проверьте ответ сервера
Убедитесь, что данные карты (например, последние 4 цифры и тип карты) присутствуют в ответе.

import requests

url = "https://example.com/api/users/123/cards"
headers = {
"Authorization": "Bearer your_token"
}

response = requests.get(url, headers=headers)
assert response.status_code == 200

data = response.json()
assert data[0]["last4"] == "1234"
assert data[0]["brand"] == "Visa"


🚩Тестирование на уровне базы данных

🟠Подключитесь к базе данных
Используйте SQL-запрос для проверки сохраненных данных.

🟠Проверьте сохранение карты
Найдите запись, соответствующую пользователю, и убедитесь, что данные карты сохранены (например, хэш карты или её идентификатор в платежной системе).

SELECT * FROM user_cards WHERE user_id = 123;


🚩Проверка интеграции с платежными системами
Если данные карты сохраняются на стороне платежного провайдера:
1. Запрос через SDK или API платежного провайдера.
2. Проверка сохраненных карт:
   import stripe

stripe.api_key = "your_stripe_secret_key"
customer = stripe.Customer.retrieve("cus_12345")

saved_card = customer["sources"]["data"][0]
assert saved_card["last4"] == "1234"
assert saved_card["brand"] == "Visa"


🚩Проверка безопасности

При тестировании сохранения карты обязательно убедитесь в следующем:
Карта не отображается полностью. Только последние 4 цифры. Данные карты зашифрованы или не хранятся локально. Проверьте, что данные карты не сохраняются в cookies или localStorage. Соответствие PCI DSS. Сервер должен соответствовать стандартам безопасности PCI DSS.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

15 Jan, 16:10


🤔 Что такое баг?

Это ошибка или дефект в системе, из-за которого приложение работает некорректно.
Он может нарушать функциональность, производительность или пользовательский опыт.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

15 Jan, 09:10


🤔 Что передаем по http методу?

HTTP-методы (глаголы HTTP) определяют тип операции, которую клиент хочет выполнить на сервере. Каждый HTTP-метод передает определенную информацию или выполняет определенные действия.

🟠GET
Назначение: Запросить данные с сервера.
Передаваемая информация: Все данные передаются в URL в виде параметров запроса.
GET /api/products?category=books&page=2 HTTP/1.1
Host: example.com


🟠POST
Назначение: Отправить данные на сервер для создания ресурса или выполнения операции.
Передаваемая информация: Данные передаются в теле запроса. Обычно используется для отправки формы, JSON или других данных.

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "[email protected]"
}


🟠PUT
Назначение: Отправить данные для создания или полного обновления ресурса.
Передаваемая информация: Данные передаются в теле запроса.

PUT /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Jane Doe",
"email": "[email protected]"
}


🟠PATCH
Назначение: Отправить данные для частичного обновления ресурса.
Передаваемая информация: Данные передаются в теле запроса.

PATCH /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "[email protected]"
}


🟠DELETE
Назначение: Удалить ресурс с сервера.
Передаваемая информация: Иногда передаются идентификаторы ресурса в URL или в теле запроса (реже).

DELETE /api/users/1 HTTP/1.1
Host: example.com


🟠HEAD
Назначение: Получить метаинформацию о ресурсе (без тела ответа).
Передаваемая информация: То же, что и в запросе GET, но без возврата данных ресурса.

🟠OPTIONS
Назначение: Узнать, какие HTTP-методы поддерживаются сервером для конкретного ресурса.
Передаваемая информация: Обычно без тела, передается только URL.

🟠CONNECT и TRACE
CONNECT: Используется для создания туннелей (например, для SSL/TLS соединений).
TRACE: Выполняет отладку, возвращая запрос обратно в качестве ответа.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

14 Jan, 16:10


🤔 Что известно про HTML?

HTML (HyperText Markup Language) — язык разметки для создания веб-страниц.
1. Состоит из элементов, которые описывают структуру документа (заголовки, списки, ссылки).
2. Совместно с CSS и JavaScript создаёт современные динамические веб-приложения.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

14 Jan, 09:10


🤔 Зачем нужны чек-листы?

🚩Чек-листы нужны для

🟠Систематизации работы: Помогают организовать и структурировать выполнение задач, обеспечивая последовательность действий.
🟠Повышения качества: Гарантируют, что все важные шаги учтены и выполнены, что минимизирует пропуски и улучшает результат.
🟠Уменьшения ошибок: За счет контроля каждого пункта снижается вероятность ошибок и упущений.
🟠Упрощения проверок: Облегчают процесс контроля и аудита выполненных задач, делая их более прозрачными и легко проверяемыми.
🟠Обучения и адаптации: Служат полезным инструментом для обучения новых сотрудников, ускоряя их адаптацию и обеспечивая соблюдение стандартов работы.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

13 Jan, 16:10


🤔 Что происходит в начале спринта?

В начале спринта проводится планирование, где команда определяет задачи для выполнения.
1. Задачи выбираются из backlog и разбиваются на конкретные действия.
2. Уточняются критерии готовности (Definition of Done).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

13 Jan, 09:10


🤔 В чем разница между css и xpath?

Это два метода для поиска и выбора элементов на веб-странице, используемые в автоматизации тестирования (например, Selenium). Несмотря на их схожую задачу, они имеют принципиальные различия в синтаксисе, функциональности и применении.

🟠Определение
CSS (Cascading Style Sheets Selectors)
CSS-селекторы используют правила, подобные тем, которые применяются в стилях CSS, для поиска элементов в DOM (Document Object Model). Пример: div#header .menu-item находит элемент с классом menu-item, который находится внутри элемента с id header. XPath (XML Path Language) XPath – это язык для навигации по XML и HTML-документам. Он позволяет находить элементы на основе их местоположения в иерархии. Пример: //div[@id='header']//a[text()='Home'] находит ссылку с текстом "Home", которая находится внутри элемента с id header.

🟠Синтаксис
CSS: Использует комбинации идентификаторов (id), классов (class), тегов и других атрибутов. Примеры:
#id – элемент с определенным id.
.class – элемент с определенным классом.
div > p – параграфы, находящиеся непосредственно внутри div.
XPath: Более сложный, с поддержкой логических операций и функций.
Примеры:
//input[@type='text'] – находит все текстовые поля.
//div[2] – второй div на странице.
//a[contains(@href, 'login')] – ссылки, содержащие "login" в атрибуте href.

🟠Функциональные различия
CSS: Подходит для большинства сценариев поиска элементов. Не поддерживает переход "назад" по иерархии (например, нельзя найти родителя элемента). Работает быстрее в большинстве браузеров, так как это нативный метод.
XPath: Поддерживает сложные операции, такие как навигация к родителю (..) или выбор по тексту. Может перемещаться как вниз, так и вверх по дереву DOM. Не всегда стабилен в браузерах (особенно в старых версиях IE).

🟠Примеры на практике
Найти кнопку с текстом "Login":
CSS:button.login – кнопка с классом login.
XPath://button[text()='Login'] – кнопка с текстом "Login".
Найти поле с определенным атрибутом:
CSS:input[type='email'] – поле ввода с атрибутом type="email".
XPath://input[@type='email'] – то же самое, но в XPath.
Найти ссылку внутри определенного div:
CSS:div#menu a – все ссылки внутри div с id menu.
XPath://div[@id='menu']//a – то же самое в XPath.

🚩Когда использовать?

🟠CSS
Когда вы хотите быстрый и простой способ выбрать элементы. Для тестирования базовой функциональности и стабильных структур DOM.
🟠XPath
Когда структура сложная, и нужно использовать функции (например, искать по тексту или атрибутам). Когда необходимо двигаться по DOM вверх или искать по сложным условиям.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

12 Jan, 16:10


🤔 Что такое функциональное тестирование

Функциональное тестирование проверяет, соответствует ли система заданным требованиям.
1. Проверяются функции приложения на основе предоставленных спецификаций.
2. Основной фокус — корректность работы, независимо от внутренних механизмов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

12 Jan, 09:10


🤔 Какие виды тестирования используются при валидации?

Это процесс оценки готового продукта на соответствие ожиданиям и потребностям пользователя. Цель валидации – убедиться, что продукт "делает то, что нужно", т.е. соответствует требованиям реального использования.

🚩Основные виды тестирования

🟠Функциональное тестирование
Это основной тип тестирования для проверки, выполняет ли продукт свои функции в соответствии с требованиями. Проверка всех функциональных аспектов системы: входные данные, поведение приложения и его отклик. Если у вас есть калькулятор, который должен складывать числа, вы проверяете, правильно ли он складывает:
Ввод: 2 + 3
Ожидаемый результат: 5.
Это напрямую подтверждает, что продукт соответствует описанным требованиям.

🟠Юзабилити-тестирование
Цель – проверить удобство использования приложения для конечных пользователей. Логичность интерфейса, простота выполнения задач, читаемость текстов. Если у вас есть веб-приложение, проверяется, насколько удобно пользователь может найти нужную кнопку, завершить покупку или зарегистрироваться. Даже идеально работающая функция может быть бесполезна, если пользователю трудно ею воспользоваться.

🟠Тестирование пользовательского интерфейса (UI Testing)
Это проверка внешнего вида продукта. Правильное отображение всех элементов интерфейса на экранах разных размеров и в разных браузерах. Если кнопка "Отправить" должна быть синей и размещена в правом углу, тестирование проверит, правильно ли она отображается на всех устройствах. Пользователи ожидают, что интерфейс будет соответствовать их привычкам и стандартам.

🟠Интеграционное тестирование
Проверка взаимодействия между компонентами системы. Слаженная работа модулей вместе, например, API взаимодействие между фронтендом и бекендом. Если пользователь отправляет форму, тестируется, приходит ли запрос на сервер и возвращается ли ожидаемый ответ. Даже работающие по отдельности модули могут "сломаться", если они неправильно интегрированы.

🟠Тестирование совместимости
Проверка работы продукта на различных устройствах, операционных системах и браузерах. Корректная работа системы в разных условиях. Проверка мобильного приложения на iOS и Android или веб-приложения в Chrome, Firefox и Safari. Пользователи используют продукт в разных средах, и везде он должен быть функциональным.

🟠Тестирование производительности (Performance Testing)
Проверяется, как система ведет себя при различных нагрузках. Время отклика, устойчивость при большом количестве пользователей. Тестирование интернет-магазина во время "Черной пятницы", чтобы убедиться, что сайт не "упадет". Медленное или нестабильное приложение может отпугнуть пользователей.

🟠Альфа- и бета-тестирование
Финальные этапы тестирования перед выпуском продукта. Проводится внутренней командой разработчиков и QA, чтобы найти оставшиеся баги. Проводится с участием реальных пользователей для получения обратной связи. Это помогает получить объективную оценку и убедиться, что продукт готов к реальной эксплуатации.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

11 Jan, 16:10


🤔 Какое ожидаемое поведение в негативном тестировании

Негативное тестирование проверяет поведение системы при вводе некорректных данных или в нестандартных условиях.
1. Ожидаемое поведение — система корректно обрабатывает ошибку, например, возвращает сообщение об ошибке или код 400.
2. Система не должна завершаться аварийно или создавать угрозу безопасности.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

11 Jan, 09:10


🤔 Когда проводится smoke тестирование?

Это тип тестирования ПО, который проводится для быстрой оценки работоспособности основных функций системы. Оно выполняется на ранних этапах тестирования, чтобы удостовериться, что основные аспекты системы функционируют корректно и что дальнейшее, более детальное тестирование может быть проведено.

🚩Когда проводится

🟠После сборки или интеграции новой версии ПО
Смоук-тестирование проводится сразу после сборки новой версии программного обеспечения или после интеграции новых модулей. Это позволяет убедиться, что основные функции системы работают правильно и что сборка или интеграция прошла успешно.

🟠Перед началом полного цикла тестирования
Смоук-тестирование выполняется до начала полного цикла функционального, регрессионного или другого вида тестирования. Это позволяет выявить крупные дефекты на ранней стадии и сэкономить время и ресурсы на последующие тесты.

🟠Перед релизом в тестовую или продакшн среду
Смоук-тестирование может быть выполнено перед развертыванием приложения в тестовую среду для более детального тестирования или перед выпуском в продакшн, чтобы убедиться в готовности системы к релизу.

🟠При внесении небольших изменений или исправлений (патчей)
Смоук-тестирование проводится после внесения небольших изменений или исправлений в систему, чтобы проверить, не повлияли ли эти изменения на основные функции системы.

🚩Основные цели и задачи

🟠Проверка основных функций
Убедиться, что основные функции приложения работают корректно. Это может включать проверку запуска приложения, выполнения ключевых операций и работы основных интерфейсов.

🟠Выявление крупных дефектов
Быстрое выявление крупных дефектов, которые могут сделать дальнейшее тестирование нецелесообразным. Например, если приложение не запускается или ключевая функция не работает, дальнейшее тестирование теряет смысл.

🟠Экономия времени и ресурсов
Снижение затрат времени и ресурсов на проведение полного тестирования в случае наличия критических дефектов. Смоук-тестирование помогает определить, стоит ли продолжать с более детальным тестированием.

🚩Пример

🟠Запуск приложения
Убедиться, что главная страница загружается без ошибок.
🟠Авторизация пользователя
Проверить, что пользователи могут успешно войти в систему.
🟠Поиск товаров
Проверить, что функция поиска работает и отображает результаты.
🟠Добавление товара в корзину
Проверить, что пользователь может добавить товар в корзину.
🟠Оформление заказа
Проверить, что процесс оформления заказа работает корректно.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

10 Jan, 16:10


🤔 Какие бывают статусы кода в ответе от сервера

1. 1xx (Информационные): например, 100 Continue, указывает на продолжение обработки запроса.
2. 2xx (Успешные): например, 200 OK, обозначает успешное выполнение запроса.
3. 3xx (Перенаправления): например, 301 Moved Permanently, означает, что ресурс перемещён.
4. 4xx (Клиентские ошибки): например, 404 Not Found, указывает на ошибку клиента.
5. 5xx (Серверные ошибки): например, 500 Internal Server Error, сигнализирует о проблеме на сервере.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

10 Jan, 09:10


🤔 Какая разница между приоритетностью и серьезностью бага?

Это два важных атрибута, используемых для классификации багов (дефектов) в ПО. Они помогают командам тестирования и разработки эффективно управлять и устранять дефекты. Хотя эти термины часто используются вместе, они обозначают разные аспекты проблемы.

🚩Серьезность (Severity)

Определяет влияние бага на работу системы. Это техническая оценка того, насколько сильно дефект нарушает функциональность приложения.

🟠Блокирующий (Blocker)
Дефект, который делает систему или основную часть системы полностью неработоспособной. Пример: Система падает при запуске.

🟠Критический (Critical)
Дефект, который сильно нарушает основную функциональность и не имеет простого обходного пути. Пример: Ошибка при проведении транзакций в банковском приложении.

🟠Высокий (Major)
Дефект, который нарушает важную функциональность, но имеет обходной путь. Пример: Ошибка в логике расчетов, которая приводит к неправильным результатам.

🟠Средний (Minor)
Дефект, который вызывает небольшие отклонения в работе системы, но незначительно влияет на её использование. Пример: Некорректное отображение UI элементов.

🟠Низкий (Trivial)
Дефект, который не влияет на функциональность и носит косметический характер. Пример: Опечатка в тексте сообщения.

🚩Приоритетность (Priority)

Определяет срочность исправления бага. Это бизнес-оценка того, насколько быстро дефект должен быть устранен.
🟠Высокий (High)
Дефект должен быть исправлен как можно скорее, так как он критичен для текущего релиза или этапа разработки. Пример: Дефект, влияющий на основные функции, которые будут демонстрироваться заказчику.

🟠Средний (Medium)
Дефект должен быть исправлен, но не является критичным для текущего релиза. Пример: Ошибка в менее важной функции, которую можно исправить в следующем обновлении.

🟠Низкий (Low)
Дефект может быть исправлен в более позднем релизе, так как он незначительно влияет на работу системы. Пример: Косметические ошибки или улучшения.

🚩Примеры

🟠Высокая серьезность и высокий приоритет
Дефект: Приложение падает при запуске.
Серьезность: Блокирующий (Blocker).
Приоритетность: Высокий (High).
Обоснование: Критическая ошибка, делающая систему полностью неработоспособной. Требует немедленного исправления.

🟠Высокая серьезность и низкий приоритет
Дефект: Сложный и редко возникающий сбой в модуле администрирования, используемом только раз в месяц.
Серьезность: Критический (Critical).
Приоритетность: Низкий (Low).
Обоснование: Несмотря на высокую серьезность, дефект имеет низкий приоритет, так как его влияние минимально в повседневной работе и может быть исправлено позже.

🟠Низкая серьезность и высокий приоритет
Дефект: Опечатка в имени компании на главной странице веб-сайта.
Серьезность: Низкий (Trivial).
Приоритетность: Высокий (High).
Обоснование: Хотя дефект не влияет на функциональность, он сильно влияет на восприятие бренда и должен быть исправлен как можно скорее.

🟠Низкая серьезность и низкий приоритет
Дефект: Неправильный цвет кнопки на нечасто используемой странице.
Серьезность: Низкий (Trivial).
Приоритетность: Низкий (Low).
Обоснование: Дефект незначительный и может быть исправлен в более позднем релизе.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

09 Jan, 16:10


🤔 Чем отличаются реляционные от нереляционных баз данных?

1. Реляционные базы:
o Данные хранятся в таблицах с фиксированной структурой.
o Используют SQL для запросов.
o Хорошо подходят для сложных взаимосвязанных данных.
2. Нереляционные базы:
o Хранят данные в гибких структурах (документы, ключ-значение, графы).
o Не требуют жёсткой схемы.
o Предназначены для масштабируемых, высокопроизводительных приложений, работающих с большими объёмами данных.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

09 Jan, 12:55


📊 Реклама в сети телеграм каналов easyoffer
✈️ Для заказа пишите @easyoffer_adv

easyoffer
Backend

Python | Вопросы
Python | Удалёнка
Python | LeetCode
Python | Тесты

Frontend | Вопросы
Frontend | Удалёнка
JavaScript | LeetCode
Frontend | Тесты

Java | Вопросы
Java | Удалёнка
Java | LeetCode
Java | Тесты

Тестировщик | Вопросы
Тестировщик | Удалёнка
Тестировщик | Тесты

Data Science | Вопросы
Data Science | Удалёнка
Data Science | Тесты

C# | Вопросы
C# | Удалёнка
C# | LeetCode
C# | Тесты

C/C++ | Вопросы
C/C++ | Удалёнка
C/C++ | LeetCode
C/C++ | Тесты

Golang | Вопросы
Golang | Удалёнка
Golang | LeetCode
Golang | Тесты

DevOps | Вопросы
DevOps | Удалёнка
DevOps | Тесты

PHP | Вопросы
PHP | Удалёнка
PHP | LeetCode
PHP | Тесты

Kotlin | Вопросы
Kotlin | Удалёнка
Kotlin | LeetCode
Kotlin | Тесты

Swift | Вопросы
Swift | Удалёнка
Swift | LeetCode
Swift | Тесты

📊 Реклама в сети телеграм каналов easyoffer
✈️ Для заказа пишите @easyoffer_adv

Тестировщик | Вопросы собесов

09 Jan, 09:10


🤔 Зачем нужны SQL запросы?

Запросы необходимы для взаимодействия с базами данных. Они позволяют выполнять различные операции с данными, такие как извлечение, вставка, обновление и удаление данных, а также управление структурами данных в базе.

🟠Извлечение данных (SELECT)
Получение данных из одной или нескольких таблиц базы данных.
Извлечение всех записей из таблицы.
Извлечение конкретных столбцов.
Фильтрация данных с помощью условий.
Сортировка данных.
SELECT name, age FROM users WHERE age > 18 ORDER BY name;


🟠Вставка данных (INSERT)
Добавление новых записей в таблицу.
Вставка одной записи.
Вставка нескольких записей.
INSERT INTO users (name, age) VALUES ('John Doe', 30);


🟠Обновление данных (UPDATE)
Обновление существующих записей в таблице.
Обновление одного или нескольких столбцов для одной или нескольких записей. Фильтрация данных для обновления.
UPDATE users SET age = 31 WHERE name = 'John Doe';


🟠Удаление данных (DELETE)
Удаление записей из таблицы.
Удаление всех записей. Удаление записей, удовлетворяющих определенным условиям.
DELETE FROM users WHERE age < 18;


🟠Управление структурами данных
Создание, изменение и удаление таблиц и других объектов базы данных.
Создание новой таблицы.
Изменение структуры существующей таблицы.
Удаление таблицы.
Создание таблицы
  CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);


Изменение таблицы
ALTER TABLE users ADD email VARCHAR(100);  


Удаление таблицы
DROP TABLE users;  


🟠Обеспечение целостности данных
Гарантировать, что данные в базе данных остаются целостными и соответствуют определенным правилам.
Установление первичных и внешних ключей.
Определение ограничений.
ALTER TABLE orders ADD CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id);


🟠Оптимизация запросов и управление производительностью
Повышение производительности запросов и управление ресурсами базы данных.
Создание индексов для ускорения поиска данных.
Использование представлений (views) для упрощения сложных запросов.
CREATE INDEX idx_name ON users (name);


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

08 Jan, 16:10


🤔 Что такое Critical Path?

Это самая длинная последовательность зависимых задач в проекте, определяющая минимальное время его завершения.
1. Любое изменение задач на этом пути влияет на общий срок выполнения проекта.
2. Используется в управлении проектами для анализа сроков и планирования ресурсов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

08 Jan, 09:10


🤔 В каких случаях пишем тест-кейсы?

Тест-кейсы пишутся для систематического и подробного тестирования ПО. Они обеспечивают структурированный подход к тестированию и помогают убедиться, что все аспекты системы проверены и работают должным образом.

🟠Новая функциональность или фича
Когда разрабатывается новая функциональность или добавляется новая фича, тест-кейсы помогают убедиться, что эта новая часть системы работает правильно и соответствует требованиям.

🟠Регрессионное тестирование
При внесении изменений в код, исправлении багов или добавлении новых функций необходимо убедиться, что эти изменения не вызвали регрессии (нарушений в уже работающем функционале).

🟠Сложные и критически важные системы
Для сложных систем с множеством взаимодействующих компонентов или для систем, где ошибки могут иметь серьёзные последствия (например, медицинское ПО, банковские системы), тест-кейсы необходимы для обеспечения корректности работы.

🟠Соответствие требованиям и спецификациям
Помогают убедиться, что система соответствует всем требованиям и спецификациям, предоставленным заказчиком или определённым стандартам.

🟠Тестирование критически важных бизнес-процессов
Используются для проверки ключевых бизнес-процессов, чтобы убедиться, что они выполняются правильно и без ошибок.

🟠Приемочное тестирование (UAT)
Для проверки того, что система отвечает ожиданиям конечных пользователей и готова к выпуску в эксплуатацию.

🟠Обеспечение качества и документирование
Служат документом, который показывает, что система была протестирована и прошла все необходимые проверки. Это важно для последующих итераций разработки и для новых членов команды.

🚩Пример

Тестирование функции входа в систему. Проверка возможности входа в систему с корректными данными пользователя.
Предусловия: Пользователь зарегистрирован в системе.

🚩Шаги выполнения

1⃣Открыть страницу входа.
2⃣Ввести корректный логин пользователя.
3⃣Ввести корректный пароль пользователя.
4⃣Нажать кнопку "Войти".

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

07 Jan, 16:10


🤔 Что такое интернационализация?

Это процесс подготовки программного обеспечения для поддержки нескольких языков и региональных особенностей.
1. Включает использование локалей, поддержки разных форматов времени, валюты и текстов.
2. Делает продукт универсальным, чтобы локализация стала проще.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

07 Jan, 09:10


🤔 Что такое Summary?

Это краткий обзор или сводка, которая предоставляет основные детали и ключевую информацию о тестовом сценарии, баге, проекте, релизе или любом другом важном аспекте. Резюме помогает быстро понять суть проблемы или ситуации без необходимости вникать в детали.

🟠Summary в баг-репорте:
Обеспечить краткое описание обнаруженного дефекта. Должно содержать достаточно информации, чтобы понять основную проблему, но без подробностей.
Summary: Ошибка отображения кнопки "Отправить" в браузере Firefox на странице регистрации.   


🟠Summary в тест-кейсе
Обобщить суть теста, чтобы быстро понять, что проверяется. Краткое описание тестируемого сценария или функции.
Summary: Проверка функции входа в систему с корректными учетными данными.   


🟠Summary в отчете о тестировании
Дать обзор текущего состояния тестирования и ключевых результатов. Общее состояние тестирования, количество пройденных и проваленных тестов, критические дефекты и общие замечания.
Summary: Тестирование завершено на 80%. Обнаружено 10 критических багов, 5 из которых исправлены. 90% функциональных тестов прошли успешно.   


🟠Summary для релиза
Предоставить обзор изменений и улучшений, внесенных в текущем релизе. Основные функции, исправления багов и улучшения.
Summary: Релиз версии 2.1 включает в себя новые функции управления профилем, улучшения производительности и исправления 15 багов.   


🚩Зачем он нужен

🟠Быстрое понимание
Помогает быстро понять основную суть информации без необходимости читать весь документ или отчет.
🟠Эффективное общение
Позволяет эффективно передавать ключевую информацию между членами команды и заинтересованными сторонами.
🟠Упрощение поиска
Облегчает поиск и идентификацию нужной информации в длинных документах или отчетах.
🟠Фокус на главном
Помогает сфокусироваться на ключевых аспектах проблемы или ситуации, что важно для принятия решений.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

06 Jan, 16:10


🤔 Что такое идентификация?

Это процесс определения личности или объекта.
1. В системах безопасности — это подтверждение, кто пользователь (например, по имени пользователя или идентификатору).
2. Это первый этап процесса аутентификации и авторизации.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

06 Jan, 09:10


🤔 Что такое модульное тестирование?

Это метод тестирования ПО, при котором отдельные компоненты или модули кода проверяются на правильность работы. Основной целью модульного тестирования является подтверждение того, что каждый отдельный модуль системы работает правильно и соответствует своим спецификациям. Обычно модульное тестирование проводится разработчиками и автоматизируется с использованием специальных фреймворков и инструментов.

🚩Основные характеристики

🟠Изолированность
Каждый модуль тестируется в изоляции от других частей системы. Это помогает точно определить, где возникают ошибки. Для достижения изолированности могут использоваться заглушки (stubs) и моки (mocks).

🟠Автоматизация
Модульные тесты часто автоматизируются с использованием специальных фреймворков, таких как JUnit, NUnit, pytest и других. Автоматизация позволяет быстро и эффективно проверять код при каждом изменении.

🟠Повторяемость
Модульные тесты могут выполняться многократно без изменений и должны давать одинаковые результаты при каждом запуске. Это обеспечивает стабильность и предсказуемость тестирования.

🟠Мелкозернистость
Тестируются самые маленькие компоненты кода, такие как функции или методы. Это позволяет точно определить, какая часть кода вызывает ошибку.

🚩Плюсы

Раннее обнаружение ошибок
Модульное тестирование помогает выявлять ошибки на ранних этапах разработки, что позволяет снизить затраты на исправление дефектов.
Упрощение отладки
Тестирование отдельных модулей упрощает процесс отладки, так как ошибки легче локализовать.
Документирование кода
Тесты служат своего рода документацией, показывая, как должен работать код.
Обеспечение регрессионного тестирования
Автоматические модульные тесты обеспечивают возможность быстрого регрессионного тестирования при внесении изменений в код.
Повышение качества кода
Разработка с учетом тестируемости и написание тестов способствует созданию более качественного и поддерживаемого кода.

🚩Инструменты

🟠JUnit
Популярный фреймворк для модульного тестирования на языке Java. Предоставляет аннотации и утилиты для написания и выполнения тестов.

🟠NUnit
Фреймворк для модульного тестирования на языке C#. Позволяет писать и запускать тесты, используя удобный синтаксис и аннотации.

🟠pytest
Фреймворк для тестирования на языке Python. Поддерживает простое написание тестов и предоставляет мощные возможности для расширения и настройки.

🟠JUnit
Популярный фреймворк для модульного тестирования на языке Java. Предоставляет аннотации и утилиты для написания и выполнения тестов.

🟠pytest
Фреймворк для тестирования на языке Python. Поддерживает простое написание тестов и предоставляет мощные возможности для расширения и настройки.

Предположим, у нас есть функция, которая вычисляет сумму двух чисел
def add(a, b):
return a + b


Пример теста для этой функции с использованием pytest
import pytest

def test_add():
assert add(1, 2) == 3
assert add(-1, 1) == 0
assert add(0, 0) == 0


Для запуска теста выполните команду
pytest


Предположим, у нас есть метод, который вычисляет сумму двух чисел
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

05 Jan, 16:10


🤔 Что такое Quality Control?

Это процесс проверки продукта на соответствие заданным требованиям.
1. Включает тестирование, валидацию и инспекции для выявления дефектов.
2. QC направлен на предотвращение выпуска дефектного продукта пользователю.
3. Это одна из частей общего процесса управления качеством (Quality Assurance).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

05 Jan, 09:10


🤔 Что значит код ответа 505 от сервера ?

От сервера означает, что сервер не поддерживает, или отказывается поддерживать, версию HTTP-протокола, используемую в запросе. Этот статус код указывает на то, что сервер не может или не желает обработать запрос с указанной версией HTTP-протокола.

🚩Возможные причины возникновения

🟠Устаревшая версия протокола
Клиент использует устаревшую версию HTTP (например, HTTP/0.9), которую сервер больше не поддерживает.
🟠Неподдерживаемая версия протокола
Клиент использует версию HTTP, которую сервер не поддерживает (например, HTTP/2.0 на сервере, который поддерживает только HTTP/1.1).
🟠Ошибки в конфигурации сервера
Сервер может быть неправильно настроен и не распознает указанную версию HTTP-протокола.

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/html; charset=UTF-8
Content-Length: 1234

<html>
<head>
<title>505 HTTP Version Not Supported</title>
</head>
<body>
<h1>HTTP Version Not Supported</h1>
<p>The server does not support the HTTP protocol version that was used in the request.</p>
</body>
</html>


🚩Как справиться с ним

🟠Проверка версии HTTP в запросе
Убедитесь, что клиент использует поддерживаемую версию HTTP (например, HTTP/1.1 или HTTP/2.0).
🟠Обновление клиента
Если клиент использует устаревшую версию HTTP, обновите его до использования более новой версии.
🟠Конфигурация сервера
Проверьте и обновите конфигурацию сервера, чтобы он поддерживал необходимые версии HTTP-протокола.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

04 Jan, 16:10


🤔 Что такое Git?

Это распределённая система управления версиями, используемая для отслеживания изменений в коде и совместной работы разработчиков.
1. Позволяет хранить историю изменений, создавать ветки и сливать их.
2. Обеспечивает быстрый доступ к репозиториям, синхронизацию и восстановление.
3. Используется для контроля версий в разработке ПО.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

04 Jan, 09:10


🤔 Какие есть события в scrum ?

Популярной методологии Agile, существует несколько ключевых событий (или церемоний), которые помогают команде организовать и управлять своей работой. Эти события способствуют планированию, координации, проверке прогресса и улучшению процессов.

🟠Планирование спринта (Sprint Planning)
Определить, что команда будет делать в следующем спринте и как она будет это делать.
Детали:
Когда проводится: В начале каждого спринта.
Продолжительность: Обычно 2-4 часа для двухнедельного спринта.
Участники: Вся Scrum-команда (Scrum-мастер, владелец продукта и команда разработки).
Что будет сделано: Команда выбирает элементы из бэклога продукта и формулирует цель спринта.
Как это будет сделано: Команда разбивает выбранные элементы на задачи и оценивает их.

🟠Ежедневное совещание (Daily Scrum)
Координировать работу команды, выявлять препятствия и корректировать план на следующий день.
Детали:
Когда проводится: Каждый день в одно и то же время.
Продолжительность: 15 минут.
Участники: Вся команда разработки (Scrum-мастер и владелец продукта могут присутствовать, но не обязаны).
Формат: Каждый член команды отвечает на три вопроса:
Что я сделал вчера, чтобы помочь команде достичь цели спринта?
Что я собираюсь сделать сегодня, чтобы помочь команде достичь цели спринта?
Какие препятствия мешают мне или команде?

🟠Обзор спринта (Sprint Review)
Демонстрация выполненной работы, получение обратной связи от заинтересованных сторон и обсуждение, что делать дальше.
Детали:
Когда проводится: В конце каждого спринта.
Продолжительность: Обычно 1-2 часа для двухнедельного спринта.
Участники: Вся Scrum-команда и заинтересованные стороны.
Формат:
Демонстрация инкремента.
Обсуждение проделанной работы и полученной ценности.
Обсуждение бэклога продукта и возможных изменений.

🟠Ретроспектива спринта (Sprint Retrospective)
Обсудить, что прошло хорошо, что можно улучшить, и сформулировать действия для улучшения процессов.
Детали:
Когда проводится: В конце каждого спринта, после обзора спринта.
Продолжительность: Обычно 1-1.5 часа для двухнедельного спринта.
Участники: Вся Scrum-команда.
Формат:
Обсуждение того, что прошло хорошо.
Обсуждение того, что можно улучшить.
Формулировка конкретных действий для улучшения процессов.

🟠Планирование релиза (Release Planning) (не является официальным событием Scrum, но часто используется)
Определить, что и когда будет включено в следующий релиз продукта.
Детали:
Когда проводится: Периодически, по мере необходимости.
Продолжительность: Варьируется в зависимости от объема работы.
Участники: Владелец продукта, Scrum-мастер и команда разработки.
Формат:
Обзор текущего состояния продукта.
Определение приоритетов и дат выпуска.
Оценка работы, необходимой для завершения релиза.

🚩Пример

🟠Планирование спринта
Владелец продукта представляет приоритетные элементы бэклога.
Команда обсуждает и оценивает эти элементы.
Команда определяет цель спринта.
Команда разбивает элементы на задачи и оценивает их.

🟠Ежедневное совещание
Каждый участник отвечает на три вопроса.
Обсуждаются выявленные препятствия.
Корректируется план на следующий день.

🟠Обзор
Команда демонстрирует инкремент.
Заинтересованные стороны дают обратную связь.
Обсуждаются возможные изменения в бэклоге продукта.

🟠Ретроспектива
Команда обсуждает, что прошло хорошо.
Команда обсуждает, что можно улучшить.
Формулируются действия для улучшения процесса.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

04 Jan, 07:00


Каждый ITшник получает от 250к

Оставьте эту чушь для курсов, на которых дают обещания вместо реальных знаний. В 2025 году получить заветный оффер сможет только тот, у кого есть эти 10 мануалов:

– Пошаговая road map по Java
– Redis - 5 улучшений для твоего пет-проекта
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Ребята из FAANG School собрали бесплатную библиотеку Java Junior с мега полезными материалами, которые помогут освоить сложные темы, упростить и ускорить работу, а также получить приглашение от IT-гигантов.

Свежее пополнение - то, без чего не обойтись ни одному джуну - шпаргалка по основным командам SQL!

Забрать можно по оранжевой кнопке. Доступ открыт всего на сутки - успевай.

Тестировщик | Вопросы собесов

03 Jan, 16:10


🤔 Что такое Dev Tools?

Это встроенные инструменты браузера для анализа и отладки веб-приложений.
1. Позволяют инспектировать элементы DOM, анализировать стили CSS и структуру страницы.
2. Используются для мониторинга запросов, ресурсов и производительности страницы.
3. Помогают отлаживать клиентский JavaScript и выявлять ошибки.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

03 Jan, 09:10


🤔 Что известно про Postman?

Это популярный инструмент для тестирования и разработки API (Application Programming Interface). Он предоставляет мощный и удобный интерфейс для взаимодействия с веб-сервисами, позволяя разработчикам, тестировщикам и другим специалистам эффективно работать с API.

🚩Основные возможности

🟠Создание и отправка запросов
Поддержка различных типов HTTP-запросов: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS и др. Введение параметров, заголовков, тела запросов и аутентификационной информации.

🟠Управление коллекциями запросов
Сохранение запросов в коллекции для их повторного использования и организации. Возможность группировки запросов по папкам для лучшей структуры.

🟠Автоматизация тестирования
Написание тестов с использованием JavaScript для автоматической проверки ответов API. Запуск тестов в коллекциях для автоматизации тестирования всего набора API.

🟠Работа с окружениями (Environments)
Создание и управление окружениями для тестирования в разных конфигурациях (например, разработка, тестирование, продакшн). Использование переменных окружений для динамической подстановки значений в запросах.

🟠Мониторинг и отчетность
Настройка мониторинга API для проверки доступности и производительности. Генерация отчетов по результатам тестирования и мониторинга.

🟠Интеграция с CI/CD
Поддержка интеграции с системами непрерывной интеграции и развертывания (CI/CD) для автоматизации тестирования API. Использование Newman, командного интерфейса Postman, для выполнения тестов в среде CI/CD.

🟠Документирование API
Автоматическое создание документации для API на основе коллекций запросов. Возможность публикации документации и предоставления доступа командам и клиентам.

🚩Создание запроса

🟠Выбор типа запроса
Выберите метод запроса (например, GET).
🟠Ввод URL
Введите URL-адрес API.
🟠Добавление заголовков
Добавьте необходимые заголовки (например, Content-Type, Authorization).
🟠Тело запроса (для POST, PUT и PATCH)
Введите данные для тела запроса в формате JSON, XML или другом.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

02 Jan, 16:10


🤔 Какие виды тестирования важны для нативных приложений?

1. Функциональное тестирование: проверка всех функций приложения на соответствие требованиям.
2. Тестирование производительности: оценка скорости, времени отклика и использования ресурсов на устройстве.
3. Тестирование совместимости: проверка работы на разных устройствах, версиях ОС и экранах.
4. UI/UX тестирование: проверка интерфейса и удобства использования для конечного пользователя.
5. Тестирование безопасности: защита данных и предотвращение уязвимостей.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

02 Jan, 09:10


🤔 Какая разница между негативным и позитивным тестированием?

Это два основных подхода в тестировании ПО, которые используются для проверки корректности работы системы под различными условиями. Оба подхода имеют свои цели и сценарии использования.

🟠Позитивное тестирование
Проверка того, что система работает правильно при вводе корректных и ожидаемых данных.
Сценарии: В нем используются входные данные и сценарии, которые соответствуют требованиям и спецификациям системы. Оно направлено на подтверждение того, что система выполняет свои функции как ожидается. Ввод корректных данных для входа в систему (правильное имя пользователя и пароль). Заполнение формы регистрации с валидными данными. Совершение покупки с действительной кредитной картой.
Тест-кейс: Вход в систему с корректными данными
Шаги:
1. Открыть страницу входа.
2. Ввести корректный логин пользователя.
3. Ввести корректный пароль пользователя.
4. Нажать кнопку "Войти".
Ожидаемый результат: Пользователь успешно входит в систему.


🟠Негативное тестирование
Проверка того, что система правильно обрабатывает некорректные, неожиданные или экстремальные данные и ситуации.
Сценарии: В нем используются входные данные и сценарии, которые выходят за пределы нормальной работы системы. Оно направлено на выявление ошибок и проверку устойчивости системы. Ввод неправильного пароля для входа в систему. Попытка регистрации с уже существующим именем пользователя. Ввод текста вместо чисел в числовые поля.
Тест-кейс: Вход в систему с некорректным паролем
Шаги:
1. Открыть страницу входа.
2. Ввести корректный логин пользователя.
3. Ввести некорректный пароль.
4. Нажать кнопку "Войти".
Ожидаемый результат: Система отображает сообщение об ошибке "Неправильный пароль".


🚩Когда использовать

🟠Позитивное тестирование
В начале процесса тестирования для проверки базовой функциональности. Для подтверждения того, что система соответствует требованиям и спецификациям.

🟠Негативное тестирование
Для проверки устойчивости и надежности системы. Для выявления потенциальных уязвимостей и дефектов. В дополнение к позитивному тестированию, чтобы обеспечить всестороннее покрытие тестов.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

01 Jan, 16:10


🤔 Как работают веб-приложения?

1. Клиент (браузер) отправляет запрос к серверу через HTTP/HTTPS для получения данных или функционала.
2. Сервер обрабатывает запрос, взаимодействует с базой данных, бизнес-логикой и отправляет ответ (HTML, JSON, XML и т. д.).
3. Браузер рендерит содержимое, а клиентский код (например, JavaScript) обеспечивает интерактивность, отправляя асинхронные запросы для обновления данных без перезагрузки страницы.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

01 Jan, 09:10


🤔 Из чего состоит HTTP запрос ?

Запрос состоит из нескольких компонентов, каждый из которых выполняет свою роль в передаче информации от клиента (например, веб-браузера) к серверу.

🚩Основные компоненты

🟠Стартовая строка (Request Line)
Метод (Method): Определяет действие, которое клиент хочет выполнить. Примеры методов: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH.
URL (Uniform Resource Locator): Указывает путь к ресурсу на сервере.
Версия протокола (HTTP Version): Указывает версию протокола HTTP, которую использует клиент. Примеры: HTTP/1.1, HTTP/2.
GET /index.html HTTP/1.1


🟠Заголовки запроса (Request Headers)
Содержат метаинформацию о запросе. Они передаются в формате ключ: значение и предоставляют дополнительную информацию о клиенте, сервере, теле запроса и других аспектах соединения.
Примеры:
Host: Указывает имя хоста и порт сервера.
User-Agent: Информация о клиенте (например, браузере).
Accept: Типы медиа, которые клиент может обрабатывать.
Content-Type: Тип содержимого тела запроса (например, application/json для JSON данных).
Authorization: Указывает данные для аутентификации.
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8


🟠Тело запроса (Request Body)
Используется для передачи данных на сервер, особенно в методах POST, PUT, PATCH. Тело запроса может содержать данные формы, JSON, XML, файлы и другие типы данных.
{
"username": "exampleUser",
"password": "examplePassword"
}


🟠Пустая строка
Отделяет заголовки запроса от тела запроса. Она обязательна, если тело запроса присутствует.
POST /login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Content-Type: application/json
Content-Length: 48

{
"username": "exampleUser",
"password": "examplePassword"
}


Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

31 Dec, 16:10


🤔 Что такое XML?

Это язык разметки для структурирования и передачи данных. Он широко используется для обмена данными между системами, так как позволяет описывать данные в человеко-читаемом формате.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

31 Dec, 09:10


🤔 Что подразумевает под собой работа тестировщиком?


Работа тестировщиком ПО подразумевает широкий спектр задач и обязанностей, направленных на обеспечение качества программного продукта. Играют ключевую роль в процессе разработки, помогая выявлять дефекты и обеспечивать соответствие продукта требованиям и ожиданиям пользователей.

🚩Основные обязанности

🟠Анализ требований
Изучение и понимание требований к программному обеспечению. Участие в обсуждении и уточнении требований с аналитиками, разработчиками и заказчиками.

🟠Планирование тестирования
Разработка планов тестирования, определение стратегии и методологии тестирования. Определение объемов и приоритетов тестирования. Оценка времени и ресурсов, необходимых для тестирования.

🟠Разработка тест-кейсов и сценариев
Создание тест-кейсов на основе требований и спецификаций. Разработка тестовых сценариев, которые охватывают различные аспекты функциональности и производительности системы.

🟠Выполнение тестов
Проведение различных видов тестирования: функционального, регрессионного, интеграционного, системного, нагрузочного, приемочного и других. Запуск автоматизированных тестов (если используется автоматизация).

🟠Документирование результатов тестирования
Запись результатов тестирования, ведение тестовой документации. Оформление отчетов о тестировании, включающих найденные дефекты и их статус.

🟠Управление дефектами
Регистрация найденных дефектов в системе отслеживания багов (например, Jira, Bugzilla). Классификация дефектов по степени серьезности и приоритетности. Взаимодействие с разработчиками для обсуждения и устранения дефектов. Повторное тестирование (ретестинг) после исправления дефектов.

🟠Взаимодействие с командой
Сотрудничество с разработчиками, аналитиками, менеджерами проектов и другими членами команды. Участие в ежедневных встречах (stand-up meetings) и других мероприятиях команды.

🟠Автоматизация тестирования
Разработка и поддержка автоматизированных тестов (если применимо). Использование инструментов автоматизации тестирования (например, Selenium, TestNG, JUnit, Appium).

🟠Обеспечение качества
Следование методологиям и процессам обеспечения качества (QA). Выполнение ревью кода и тестов, участие в ретроспективах и обсуждениях улучшения процессов.

🚩Виды

🟠Функциональное
Проверка соответствия системы функциональным требованиям.
🟠Нефункциональное
Проверка аспектов, не связанных с функциональностью, таких как производительность, безопасность, удобство использования.
🟠Ручное
Проведение тестов вручную без использования автоматизации.
🟠Автоматизированное
Использование скриптов и инструментов для автоматического выполнения тестов.
🟠Регрессионное
Проверка, что изменения в коде не вызвали новых дефектов.
🟠Приемочное
Подтверждение, что система соответствует требованиям заказчика и готова к использованию.

🚩Пример

1⃣Анализ требований
Тестировщик изучает спецификации и требования к новому функционалу интернет-магазина.

2⃣Планирование тестирования
Разрабатывается план тестирования, определяются ключевые области для проверки.

3⃣Разработка тест-кейсов
Создаются тест-кейсы для проверки процесса регистрации нового пользователя, добавления товаров в корзину и оформления заказа.

4⃣Выполнение тестов
Тестировщик проводит тестирование функциональности на различных устройствах и браузерах.

5⃣Документирование результатов
Результаты тестов записываются, найденные дефекты регистрируются в системе отслеживания багов.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

30 Dec, 16:10


🤔 Чем API отличается для веб-клиента от мобильного?

API для веб-клиентов обычно предоставляет более крупные ответы, так как браузеры могут обрабатывать большие объёмы данных. Для мобильных клиентов данные оптимизируются (меньший объём, сжатие), чтобы сократить задержки и расход трафика.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

30 Dec, 09:10


🤔 В чем особенности тестирования разных типов приложений по технической работе?

Особенности тестирования разных типов приложений зависят от их назначения и технической реализации: веб-приложения тестируются на кросс-браузерность и производительность, мобильные — на адаптивность и ресурсоемкость, десктопные — на совместимость с ОС и установку, а серверные — на стабильность, безопасность и нагрузку.

🟠Веб-приложения
Кроссбраузерное тестирование: Проверка в разных браузерах. Производительность: Время загрузки страниц. Безопасность: Проверка уязвимостей. Интерфейс: Проверка отображения на разных экранах.

🟠Мобильные приложения
Кроссплатформенное тестирование: Проверка на iOS и Android. Реальные устройства: Тестирование на разных моделях. Производительность: Использование ресурсов и время отклика. Батарея: Влияние на заряд батареи. Сети: Проверка в разных сетевых условиях.

🟠Десктопные приложения
Кросс-платформенное тестирование: Проверка на Windows, macOS. Установка и обновление: Проверка процесса установки. Производительность: Использование ресурсов системы. Функциональность: Проверка всех функций приложения. Безопасность: Проверка защиты данных.

🟠Гибридные приложения
Кроссплатформенное тестирование: Проверка на iOS и Android. Производительность: Проверка скорости веб-контента. Интерфейс: Проверка на разных устройствах и разрешениях. Функциональность: Интеграция веб-части с нативными функциями. Безопасность: Проверка уязвимостей веб- и нативной частей.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

29 Dec, 16:10


🤔 Что такое эффект пестицида?

Эффект пестицида в тестировании программного обеспечения описывает ситуацию, когда повторное выполнение одного и того же теста перестаёт выявлять новые ошибки. Чтобы избежать этого эффекта, необходимо регулярно обновлять тестовые сценарии и добавлять новые тесты.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

29 Dec, 09:10


🤔 Что происходит с баг репортом, если он был не исправлен?

Если баг-репорт не исправлен, он переводится в статус "отложен", "открыт" или переносится на будущие релизы, может быть закрыт как нерелевантный или отмечен как "не воспроизводится" или "не критичный".

🟠Закрытие с определенным статусом
Баг-репорт может быть закрыт с одним из следующих статусов: Won't Fix (Не будет исправлен): Ошибка признана, но ее исправление не планируется из-за низкого приоритета, незначительного влияния или бизнес-решения. Duplicate (Дубликат): Баг-репорт дублирует уже существующую ошибку. Not Reproducible (Не воспроизводится): Ошибка не может быть воспроизведена ни тестировщиками, ни разработчиками. Works as Designed (Работает как задумано): Поведение системы соответствует спецификациям и ожиданиям. Deferred (Отложен): Исправление ошибки откладывается на неопределённый срок. Obsolete (Устарел): Ошибка устарела, поскольку функциональность изменилась или была удалена.

🟠Повторное рассмотрение
Иногда баг-репорт может быть оставлен открытым и рассматриваться повторно в будущем: На последующих итерациях: Баг-репорт может быть пересмотрен в следующих спринтах или релизах. В рамках рефакторинга: Если планируется значительное изменение или рефакторинг кода, баг может быть исправлен в этом контексте.

🟠Изменение приоритета
В зависимости от изменений в проекте, приоритет баг-репорта может быть пересмотрен: Повышение приоритета: Если ошибка начинает сильно влиять на пользователей или бизнес-процессы. Снижение приоритета: Если ошибка имеет минимальное влияние и не является критической.

🚩Пример

1⃣Won't Fix
Решено не исправлять, так как это происходит в редких случаях и есть обходной путь.
2⃣Duplicate
Ошибка уже зарегистрирована, текущий баг-репорт закрывается.
3⃣Not Reproducible
Ошибка не может быть воспроизведена ни на одном из тестируемых устройств.
4⃣Works as Designed
Поведение является запланированным, пользователи должны обновить страницу для корректной работы.
5⃣Deferred
Исправление отложено до следующего крупного обновления системы.
6⃣Obsolete
Функциональность корзины была полностью переделана, и ошибка более не актуальна.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

28 Dec, 16:10


🤔 Что означает 405 ошибка?

Ошибка 405 (Method Not Allowed) возникает, если сервер поддерживает ресурс, но метод HTTP, указанный в запросе, не разрешён. Например, если запрос DELETE отправляется к ресурсу, который поддерживает только GET и POST.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

28 Dec, 09:10


🤔 Какой человек отвечают за документацию проекта?

В проектной команде за документацию проекта обычно отвечает технический писатель, однако ответственность может также распределяться среди нескольких ролей в зависимости от структуры и масштабов проекта.

🚩Основные роли

🟠Технический писатель (Technical Writer)
Основная роль: Специализируется на создании и поддержании технической документации. Задачи: Написание пользовательских руководств, справочных материалов, документации для разработчиков и т.д.

🟠Руководитель проекта (Project Manager)
Роль: Координирует процессы, включая документацию, чтобы обеспечить их соответствие требованиям и срокам. Задачи: Обеспечение актуальности проектной документации, мониторинг выполнения задач, связанных с документацией.

🟠Бизнес-аналитик (Business Analyst)
Роль: Создает и поддерживает документацию, связанную с бизнес-требованиями и спецификациями. Задачи: Сбор и документирование требований, создание спецификаций и диаграмм.

🟠Разработчики (Developers)
Роль: Могут создавать и поддерживать техническую документацию для кода и API. Задачи: Написание комментариев к коду, документации API, технических описаний.

🟠Тестировщики (QA Engineers)
Роль: Документируют тестовые сценарии, планы тестирования и результаты тестов. Задачи: Создание и поддержание тестовой документации, отчетов о дефектах.

🟠DevOps инженеры
Роль: Документируют процессы развертывания и интеграции. Задачи: Создание и поддержание документации по CI/CD, инструкций по развертыванию.

🚩Пример

🟠Технический писатель
Создает руководство пользователя и справочные материалы.
🟠Руководитель проекта
Обеспечивает наличие и актуальность всей документации, координирует процесс.
🟠Бизнес-аналитик
Документирует бизнес-требования и спецификации.
🟠Разработчики
Пишут техническую документацию для кода и API.
🟠Тестировщики
Создают и поддерживают тестовую документацию и отчеты о дефектах.
🟠DevOps инженеры
Документируют процессы CI/CD и инструкции по развертыванию.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

27 Dec, 16:10


🤔 Что такое 500 ошибка?

Ошибка 500 (Internal Server Error) означает, что сервер столкнулся с внутренней проблемой, которую не смог обработать. Причиной может быть ошибка в коде, сбой конфигурации или перегрузка сервера.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

27 Dec, 09:10


🤔 С каких источников как правило устанавливаются нативные приложения?

🟠Apple App Store
iOS. iPhone, iPad
🟠Google Play Store
Android смартфоны и планшеты Android
🟠Microsoft Store
Windows ПК с Windows 10 и 11
🟠Samsung Galaxy Store
Android смартфоны Samsung Galaxy
🟠Huawei AppGallery
Android смартфоны Huawei

🚩Альтернативные источники
🟠Сторонние магазины приложений
Aptoide, F-Droid
🟠Прямые загрузки APK-файлов (Android)
Из веб-сайтов разработчиков
🟠Корпоративные магазины
Для внутренних приложений компаний

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

26 Dec, 16:10


🤔 Какие HTTP методы могут быть?

Основные HTTP методы:
• GET: для получения данных.
• POST: для отправки данных на сервер.
• PUT: для замены или обновления ресурса.
• DELETE: для удаления ресурса.
• PATCH: для частичного обновления ресурса.
• OPTIONS: для получения информации о доступных методах на сервере.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

26 Dec, 09:10


🤔 Какие есть особенности гибридных приложений?

Гибридные приложения сочетают в себе элементы как нативных, так и веб-приложений. Это приводит к определённым особенностям, которые влияют на их разработку, тестирование и использование.

🟠Использование веб-технологий
HTML, CSS, JavaScript: Основные технологии, используемые для создания интерфейсов гибридных приложений. WebView: Встраиваемый компонент, позволяющий отображать веб-контент внутри нативного приложения.

🟠Кроссплатформенность
Мультиплатформенная поддержка: Одно и то же приложение может работать на различных платформах (iOS, Android, Windows) с минимальными изменениями. Единая кодовая база: Позволяет сократить время и затраты на разработку и поддержку.

🟠Производительность
Скорость выполнения: Гибридные приложения могут быть медленнее нативных из-за использования WebView для отображения контента. Ограниченные возможности графики и анимации: Веб-технологии могут не поддерживать все возможности графики и анимации, доступные в нативных приложениях.

🟠Доступ к нативным функциям
Плагины и мосты: Для доступа к нативным функциям устройства (камере, GPS, датчикам) используются плагины, такие как Apache Cordova или Capacitor. Ограничения доступа: Не все нативные функции могут быть доступны через гибридные решения.

🟠Обновления и развёртывание
Быстрое обновление: Обновления веб-части гибридного приложения могут быть развернуты без необходимости проходить процесс повторного утверждения в магазинах приложений. Публикация в App Store и Google Play: Тем не менее, для обновлений, затрагивающих нативную часть, потребуется проходить стандартный процесс публикации в магазинах приложений.

🟠Разработка и тестирование
Инструменты разработки: Используются инструменты как для веб-разработки (например, браузеры для отладки), так и для нативной разработки (например, Xcode, Android Studio). Тестирование на различных платформах: Необходимо проводить тестирование на всех поддерживаемых платформах, учитывая их особенности.

🟠Пользовательский интерфейс и опыт
Единый UI/UX: Гибридные приложения могут обеспечить единый пользовательский интерфейс на всех платформах. Интеграция с платформенными стандартами: Может быть сложнее интегрироваться с платформенными UI/UX стандартами по сравнению с нативными приложениями.

🚩Пример

1⃣Использование веб-технологий
Каталог товаров и страницы товаров разрабатываются с использованием HTML, CSS, JavaScript.
2⃣Кроссплатформенность
Приложение работает как на iOS, так и на Android, используя одну кодовую базу.
3⃣Доступ к нативным функциям
Фотографии товаров можно загружать с помощью камеры устройства через плагин.
4⃣Обновления
Обновление дизайна страницы товара может быть выполнено без необходимости перепубликации приложения в магазинах.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

25 Dec, 09:10


🤔 Можно ли отказаться от регрессионного тестирования?

Отказ от регрессионного тестирования может иметь серьезные последствия для качества программного обеспечения. Регрессионное тестирование направлено на проверку того, что изменения в коде не привели к новым ошибкам в уже работающей функциональности.

🚩Почему это важно

🟠Предотвращение возврата ошибок
Изменения в коде могут непреднамеренно вызвать дефекты в ранее работающих функциях. Регрессионное тестирование помогает выявить такие проблемы на ранней стадии.

🟠Поддержание стабильности системы
Регрессионное тестирование обеспечивает стабильность и надежность системы, что особенно важно для сложных и критически важных приложений.

🟠Снижение риска отказа
Помогает снизить риск отказа системы в производственной среде, что может привести к потере данных, доходов и доверия пользователей.

🟠Ускорение выпуска обновлений
Автоматизация регрессионных тестов позволяет быстрее проверять изменения и выпускать обновления, что особенно важно в условиях Agile и DevOps.

🚩Последствия отказа

🟠Необнаруженные дефекты
Без регрессионного тестирования велика вероятность того, что дефекты останутся незамеченными и попадут в продакшн, что может привести к сбоям и негативным отзывам пользователей.

🟠Повышенные затраты на исправление ошибок
Исправление ошибок в продакшн среде часто требует больше времени и ресурсов, чем их обнаружение и устранение на стадии тестирования.

🟠Снижение качества продукта
Продукт может потерять качество и надежность, что негативно скажется на его репутации и конкурентоспособности.

🟠Ухудшение пользовательского опыта
Пользователи могут столкнуться с нестабильной работой приложения, что приведет к неудовлетворенности и оттоку клиентов.

🚩В каких случаях можно минимизировать

🟠Малые изменения
Если изменения в коде минимальны и изолированы, можно ограничиться санитарным тестированием.
🟠Четко определенные области
Если изменения касаются только определенных модулей, можно сфокусироваться на тестировании этих модулей.
🟠Отсутствие критичности
Для незначительных приложений с небольшим числом пользователей отказ от регрессионного тестирования может быть менее критичен.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

24 Dec, 16:10


🤔 Какие знаешь ящики тестирования?

Чёрный ящик (Black Box) — тестирование без знания внутренней структуры. Белый ящик (White Box) — тестирование с анализом внутренней логики. Серый ящик (Gray Box) — комбинация обоих подходов, с частичным знанием внутренней структуры.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

24 Dec, 09:10


🤔 Когда нужен чек лист?

Чек-лист необходим в различных ситуациях для организации и структурирования процесса тестирования. Он помогает обеспечить, что все важные аспекты и функции приложения проверены, и ни одна критическая область не упущена.

🚩Основные случаи применения

🟠Регрессионное тестирование
Чтобы убедиться, что все важные функции приложения работают после внесения изменений в код.

🟠Санитарное тестирование (Sanity Testing)
Быстрая проверка критических функций после мелких изменений или исправлений.

🟠Смоук-тестирование (Smoke Testing)
Первичная проверка основных функций системы перед началом более детального тестирования.

🟠Тестирование по сценариям (Scenario-Based Testing)
Проверка специфических сценариев использования приложения, чтобы убедиться, что они выполняются правильно.

🟠Ручное тестирование (Manual Testing)
Помогает тестировщикам не пропустить важные шаги и систематизировать процесс.

🟠Повторяющиеся тесты
Когда необходимо многократно выполнять одни и те же тесты в течение длительного времени, чек-лист помогает поддерживать качество и последовательность.

🟠Тестирование по требованию
Для тестирования специфических требований и бизнес-правил, чтобы убедиться, что они правильно реализованы.

🟠Новые члены команды
Чек-лист помогает новым членам команды быстрее освоиться и следовать установленным процессам.

🚩Пример

1⃣Авторизация
Проверка ввода корректного логина и пароля. Проверка реакции на некорректный логин и пароль. Проверка функции восстановления пароля.

2⃣Корзина
Добавление товара в корзину. Удаление товара из корзины. Обновление количества товара в корзине.

3⃣Оформление заказа
Проверка процесса ввода данных для доставки. Проверка различных методов оплаты. Проверка отправки подтверждения заказа.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

23 Dec, 16:10


🤔 Расскажи про гибридные приложения?

Гибридные приложения сочетают элементы веб-приложений (HTML, CSS, JavaScript) и платформенно-зависимые компоненты. Они развёртываются как нативные приложения, но используют встроенные браузеры для отображения веб-контента. Такие приложения легче разрабатывать, но их производительность может быть ниже, чем у нативных.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

23 Dec, 09:10


🤔 Какие есть классификации тестирования?

🟠По цели
Функциональное: Проверка выполнения функций (например, юнит-тестирование). Нефункциональное: Оценка производительности, безопасности и удобства использования.

🟠По уровню
Модульное (Unit Testing): Тестирование отдельных компонентов. Интеграционное (Integration Testing): Проверка взаимодействия между модулями. Системное (System Testing): Полное тестирование всей системы. Приемочное (Acceptance Testing): Проверка готовности к эксплуатации.

🟠По доступу к коду
Белый ящик (White Box): Тестирование с доступом к коду. Черный ящик (Black Box): Тестирование без знания кода. Серый ящик (Gray Box): Комбинация белого и черного ящика.

🟠По степени автоматизации
Ручное (Manual Testing): Тестирование без автоматизации. Автоматизированное (Automated Testing): Использование инструментов для тестирования.

🟠По типу системы
Веб-приложения: Проверка веб-сайтов. Мобильные приложения: Проверка на мобильных устройствах. Настольные приложения: Проверка ПО для ПК.

🟠По специфическим целям
Регрессионное: Проверка, что изменения не сломали существующую функциональность. Санитарное (Sanity Testing): Быстрая проверка основных функций. Смоук-тестирование (Smoke Testing): Первичная проверка базовой работоспособности.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

22 Dec, 16:10


🤔 Расскажи про нефункциональные виды тестирования

Нефункциональные виды тестирования оценивают параметры, не связанные с функциональностью системы, а с её качеством, такими как производительность, надёжность и безопасность. К основным видам относятся нагрузочное тестирование, тестирование безопасности, юзабилити-тестирование и тестирование на отказоустойчивость. Эти тесты помогают определить, насколько эффективно система справляется с внешними факторами и может выдерживать ожидаемые нагрузки.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

22 Dec, 09:10


🤔 Что делается на ретроспективе?

Это встреча команды, обычно проводимая в конце спринта или итерации, где участники обсуждают, что прошло хорошо, что можно улучшить и какие действия предпринять для повышения эффективности в будущем.

🚩Основные этапы ретроспективы

🟠Открытие встречи
Приветствие участников. Определение цели ретроспективы. Обсуждение правил встречи.
🟠Сбор данных
Обсуждение событий спринта. Использование методик сбора информации (например, "Start, Stop, Continue").
🟠Генерация инсайтов
Анализ данных. Выявление проблем и успехов. Поиск корневых причин.
🟠Выработка действий
Разработка плана улучшений. Постановка целей на следующий спринт. Назначение ответственных.
🟠Закрытие ретроспективы
Обзор принятых решений. Благодарности участникам. Оценка эффективности ретроспективы.

Ставь 👍 и забирай 📚 Базу знаний

Тестировщик | Вопросы собесов

21 Dec, 16:10


🤔 Расскажи про кросс-браузерное тестирование.

Кросс-браузерное тестирование — это процесс проверки совместимости веб-приложений или сайтов в различных веб-браузерах. Тестирование помогает убедиться, что веб-приложение или сайт корректно отображается и работает в браузерах, которые могут отличаться по своим движкам, версиям и настройкам. Цель кросс-браузерного тестирования — обеспечить одинаково хорошее пользовательское взаимодействие вне зависимости от выбора браузера.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний