Тестировщик | Вопросы собесов
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Ko'proq ko'rsatish📈 Telegram kanali Тестировщик | Вопросы собесов analitikasi
Тестировщик | Вопросы собесов (@easy_qa_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 215 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 965-o'rinni va Rossiya mintaqasida 52 704-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 215 obunachiga ega bo‘ldi.
30 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -16 ga, so‘nggi 24 soatda esa -1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 7.23% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.28% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 883 marta ko‘riladi; birinchi sutkada odatda 523 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 2 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent ставь, api, testing, ввод, интерфейс kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @easyoffer_adv”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 31 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
body {
font-size: 16px;
}
@media (max-width: 768px) {
body {
font-size: 14px;
}
}
🟠Гибкие сетки (Flexible Grids, Flexbox, CSS Grid)
Позволяют располагать элементы на странице так, чтобы они адаптировались под экран.
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 1 300px; /* Блоки с минимальной шириной 300px */
}
🟠Отзывчивые изображения (Responsive Images)
Изображения должны подстраиваться под размер экрана.
img {
max-width: 100%;
height: auto;
}
🟠Viewport в `<meta>`
Обязательный тег для адаптивности на мобильных устройствах.
<meta name="viewport" content="width=device-width, initial-scale=1">
Ставь 👍 и забирай 📚 Базу знанийint divide(int a, int b) {
return a / b; // Ошибка: нет проверки на деление на 0
}
🚩Дефект (Defect, Bug, Issue)
Дефект – это некорректное поведение программы, вызванное ошибкой в коде.
Дефект – это конкретная проблема в продукте, найденная тестировщиком или пользователем.
Если дефект мешает пользователям – он становится проблемой (issue).
Пример дефекта:
Кнопка "Войти" не работает.
При вводе 0 приложение вылетает с ошибкой.
Цена товара на сайте отображается неправильно.
Ставь 👍 и забирай 📚 Базу знанийfetch("https://api.example.com/products")
.then(response => response.json())
.then(data => console.log(data));
🚩Уровень бизнес-логики (Application Tier) – Бэкенд
Обрабатывает запросы от фронтенда.
Применяет правила и бизнес-логику.
Запрашивает и обновляет данные в базе.
Языки: Node.js, Java, Python, PHP, C#
Фреймворки: Express.js, Spring, Django, ASP.NET
API: REST, GraphQL, gRPC
app.get("/products", (req, res) => {
const products = db.getAllProducts();
res.json(products);
});
🚩Уровень данных (Data Tier) – База данных
Хранит структурированные (SQL) или неструктурированные (NoSQL) данные.
Отвечает на запросы сервера (CRUD: Create, Read, Update, Delete).
Примеры технологий:
SQL: **PostgreSQL, MySQL, MS SQL
NoSQL: MongoDB, Redis, Firebase
SELECT * FROM products WHERE category = 'electronics';
🚩Как взаимодействуют уровни?
Фронтенд (UI) делает запрос к API (https://api.example.com/products).
Бэкенд обрабатывает запрос, запрашивает данные из БД.
База данных возвращает данные бэкенду.
Бэкенд отправляет ответ фронтенду.
Фронтенд отображает данные пользователю.
Пользователь → Нажимает "Показать товары"
Фронтенд → Запрос на /products
Бэкенд → Запрос к БД
База данных → Отдаёт список товаров
Бэкенд → Отправляет JSON-ответ
Фронтенд → Показывает товары на экране
Ставь 👍 и забирай 📚 Базу знаний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)
Ставь 👍 и забирай 📚 Базу знаний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"));
}
Ставь 👍 и забирай 📚 Базу знаний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
Ставь 👍 и забирай 📚 Базу знанийasync function waitForCompletion(taskId, maxAttempts = 10, interval = 3000) {
let attempt = 0;
while (attempt < maxAttempts) {
console.log(`Попытка ${attempt + 1}: Проверка статуса...`);
const response = await fetch(`https://api.example.com/tasks/${taskId}`);
const data = await response.json();
if (data.status === "completed") {
console.log("Задача выполнена!");
return data;
}
attempt++;
if (attempt < maxAttempts) {
await new Promise(resolve => setTimeout(resolve, interval)); // Ожидание перед следующей попыткой
}
}
throw new Error("Время ожидания истекло, задача не завершена.");
}
// Использование
waitForCompletion("12345").then(console.log).catch(console.error);
🟠Реализация "вейтера" в Python (requests + time.sleep)
Используется в тестах и API-интеграциях.
import requests
import time
def wait_for_status(order_id, max_attempts=10, interval=5):
url = f"https://api.example.com/orders/{order_id}"
for attempt in range(max_attempts):
print(f"Попытка {attempt + 1}: Проверяем статус...")
response = requests.get(url)
data = response.json()
if data["status"] == "shipped":
print("Заказ отправлен!")
return data
time.sleep(interval) # Ждем перед следующей попыткой
raise TimeoutError("Время ожидания истекло, заказ не отправлен.")
# Использование
try:
order_data = wait_for_status("98765")
print(order_data)
except TimeoutError as e:
print(str(e))
🟠Реализация "вейтера" в Java (RestAssured + Thread.sleep)
В Java "вейтеры" часто используют в тестах API.
import io.restassured.RestAssured;
import io.restassured.response.Response;
public class ApiWaiter {
public static void waitForStatus(String taskId) throws InterruptedException {
int maxAttempts = 10;
int interval = 3000; // 3 секунды
for (int i = 0; i < maxAttempts; i++) {
System.out.println("Попытка " + (i + 1) + ": Проверяем статус...");
Response response = RestAssured.get("https://api.example.com/tasks/" + taskId);
String status = response.jsonPath().getString("status");
if ("done".equals(status)) {
System.out.println("Задача выполнена!");
return;
}
Thread.sleep(interval);
}
throw new RuntimeException("Время ожидания истекло, задача не завершена.");
}
public static void main(String[] args) throws InterruptedException {
waitForStatus("task123");
}
}
Ставь 👍 и забирай 📚 Базу знаний