и посмотреть медиа
Tester | Interview Questions
и посмотреть медиа
Interview questions for testers.
Interview questions for testers.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Testing questions: ISTQB, Selenium, API. With examples.
🤔 Для чего используется блок Finaly? Блок finally в Java используется для гарантированного выполнения кода, независимо от того, было ли исключение в try-блоке или нет. 🚩Как работает `finally`? Синтаксис try { // Код, который может вызвать исключение } catch (Exception e) { // Обработка ошибки } finally { // Этот код выполнится в любом случае } 🚩Зачем нужен `finally`? 🟠Освобождение ресурсов (файлы, базы данных, сети) Закрытие файлов, соединений с базой данных, сокетов. 🟠Очистка памяти или завершение операций Удаление временных файлов, сброс флагов. 🟠Гарантия выполнения кода Даже если в try или catch произошел return, finally все равно выполнится. 🚩Примеры использования `finally` Закрытие файла (важный случай!) import java.io.FileWriter; import java.io.IOException; public class Example { public static void main(String[] args) { FileWriter writer = null; try { writer = new FileWriter("example.txt"); writer.write("Hello, world!"); } catch (IOException e) { System.out.println("Ошибка при записи в файл: " + e.getMessage()); } finally { if (writer != null) { try { writer.close(); // Закрытие файла в finally } catch (IOException e) { System.out.println("Ошибка при закрытии файла"); } } } } } finally выполняется даже при return public class Example { public static void main(String[] args) { System.out.println(testMethod()); } static String testMethod() { try { return "Try block"; } finally { System.out.println("Finally block executed"); } } } Вывод Finally block executed Try block 🚩Когда `finally` НЕ выполняется? Если программа завершается принудительно (System.exit(0)) Если JVM крашится try { System.exit(0); // Завершает программу } finally { System.out.println("Этот код НЕ выполнится"); } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Расскажи о критериях начала тестирования Критерии начала тестирования – это условия, которые должны быть выполнены перед тем, как тестировщики могут приступить к тестированию. Если эти условия не соблюдены, тестирование может быть неэффективным или невозможно. 🚩Требования и документация 🟠Функциональные и нефункциональные требования должны быть четко определены и утверждены. Без требований сложно понять, что тестировать. 🟠Тестовая документация тест-план, тест-кейсы, чек-листы должны быть подготовлены и согласованы. 🟠Критерии приемки (Acceptance Criteria) должны быть прописаны, чтобы знать, что считать успешным тестированием. 🚩Подготовка окружения и данных 🟠Тестовое окружение сервер, база данных, API должны быть настроены и доступны. 🟠Тестовые данные учетные записи пользователей, тестовые заказы, email-адреса и другие данные должны быть готовы. 🟠Доступы тестировщики должны иметь доступ ко всем нужным системам (бэкенд, админка, API). 🚩Готовность кода и билдов 🟠Код разработан и собран если продукт еще не готов или билд падает, тестировать нечего. 🟠Smoke-тесты пройдены базовая проверка, что приложение запускается и не падает сразу. 🟠Исправлены критические баги если приложение не загружается, смысла в тестировании нет. 🚩Инструменты и ресурсы 🟠Тестовые инструменты настроены например, Postman для API-тестирования, Selenium для UI. 🟠Логирование и мониторинг нужны доступы к логам, чтобы видеть ошибки. 🟠Команда готова тестировщики должны понимать задачи, сроки и зоны ответственности. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие типы приемочного тестирования знаешь? Приемочное тестирование (Acceptance Testing, UAT) — это проверка, соответствует ли система требованиям заказчика и готова ли она к выпуску. 🚩Пользовательское приемочное тестирование (User Acceptance Testing, UAT) Тестирование выполняют конечные пользователи или заказчики перед выпуском продукта. Проверяют, удобно ли использовать систему и соответствует ли она бизнес-требованиям. 🚩Операционное приемочное тестирование (Operational Acceptance Testing, OAT) Проверяет, готова ли система к эксплуатации и обслуживанию. Фокус на производительность, резервное копирование, обновления. 🚩Договорное приемочное тестирование (Contract Acceptance Testing, CAT) Проверяет, соответствует ли продукт требованиям контракта с заказчиком. Если не соответствует — проект могут не принять или не оплатить. 🚩Регламентное приемочное тестирование (Regulatory Acceptance Testing, RАT) - Проверяет соответствие продукта законам, стандартам и нормативам. - Важно для банков, медицины, авиаперевозок. 🚩Бета-тестирование (Beta Testing) Продукт отдают ограниченной группе пользователей перед официальным запуском. Позволяет выявить баги и улучшить UX на основе реального использования. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие браузеры используешь для тестов? - Google Chrome — основной. - Firefox — кросс-движок. - Safari — для проверки на macOS/iOS. - Edge — для Windows. - Samsung Internet, UC Browser, Opera — при необходимости на Android. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как проверить чек-боксы? Является важной частью тестирования пользовательского интерфейса. Она включает в себя проверку функциональности, правильности состояния и взаимодействия с другими элементами на странице. 🟠Функциональное тестирование Клик по чекбоксу. Чекбокс устанавливается (помечается галочкой) или снимается (галочка убирается). Открыть страницу или форму, где находится чекбокс. Чекбокс должен быть в заранее определённом состоянии (отмечен или не отмечен). Установить или снять отметку и отправить форму. После отправки формы и обновления страницы состояние чекбокса должно сохраниться. 🟠Тестирование взаимодействий Кликнуть на чекбокс, от которого зависят другие чекбоксы (например, "Выбрать все"). Все зависимые чекбоксы должны изменять своё состояние соответственно. Изменить состояние чекбокса и проверить влияние на другие элементы формы (например, кнопки, поля ввода). Другие элементы должны изменять своё состояние (активироваться, деактивироваться) в зависимости от состояния чекбокса. 🟠Валидность данных Установить или снять чекбокс и отправить форму. Проверьте, что данные формы правильно передаются на сервер. Оставить обязательный чекбокс неотмеченным и попытаться отправить форму. Появляется сообщение об ошибке или предупреждение, что чекбокс должен быть отмечен. 🟠Тестирование пользовательского опыта (UX) Проверить, можно ли управлять чекбоксами с клавиатуры (Tab, Space, Enter). Чекбокс должен быть фокусируемым и изменять состояние при использовании клавиатуры. Открыть страницу на разных устройствах (мобильные телефоны, планшеты, компьютеры). Чекбоксы должны правильно отображаться и быть интерактивными на всех устройствах. 🚩Примеры автоматизированного тестирования чекбоксов Пример на Selenium (Java) // Инициализация WebDriver WebDriver driver = new ChromeDriver(); driver.get("Ссылка скрыта // Найти чекбокс WebElement checkBox = driver.findElement(By.id("checkbox")); // Проверить начальное состояние boolean isSelected = checkBox.isSelected(); assertFalse(isSelected); // Установить чекбокс checkBox.click(); assertTrue(checkBox.isSelected()); // Снять чекбокс checkBox.click(); assertFalse(checkBox.isSelected()); // Закрытие браузера driver.quit(); Пример на Cypress (JavaScript) // Открыть страницу cy.visit('Ссылка скрыта // Проверить начальное состояние чекбокса cy.get('#checkbox').should('not.be.checked'); // Установить чекбокс cy.get('#checkbox').check().should('be.checked'); // Снять чекбокс cy.get('#checkbox').uncheck().should('not.be.checked'); Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое статические переменные? Статическая переменная — это переменная, значение которой сохраняется между вызовами функции или существования класса. В разных языках программирования она работает по-разному, но общий смысл — она общая для всех экземпляров и хранит свое значение в одном месте в памяти. 🟠В Java (статические переменные в классах) В Java статическая переменная объявляется с ключевым словом static внутри класса. Она принадлежит самому классу, а не его объектам. class Counter { static int count = 0; // Статическая переменная Counter() { count++; // Увеличиваем значение } void showCount() { System.out.println("Общее количество объектов: " + count); } } public class Main { public static void main(String[] args) { Counter obj1 = new Counter(); Counter obj2 = new Counter(); Counter obj3 = new Counter(); obj1.showCount(); // Выведет: Общее количество объектов: 3 } } 🟠В C (статические переменные в функциях и файлах) В C и С++ статическая переменная объявляется с static, но работает немного по-другому #include void counter() { static int count = 0; // Значение сохраняется между вызовами count++; printf("Count: %d\n", count); } int main() { counter(); // Count: 1 counter(); // Count: 2 counter(); // Count: 3 return 0; } Внутри файла (ограниченная область видимости) static int secretValue = 42; // Эта переменная доступна только в этом файле 🟠В Python (статические переменные в классах) В Python нет ключевого слова static, но аналог статической переменной — переменная класса. class Counter: count = 0 # Это статическая переменная def __init__(self): Counter.count += 1 print(Counter.count) # 0 a = Counter() b = Counter() print(Counter.count) # 2 🟠В JavaScript (через замыкания и свойства класса) В JavaScript можно создать статическую переменную с помощью static внутри класса class Counter { static count = 0; // Статическая переменная constructor() { Counter.count++; } static getCount() { return Counter.count; } } new Counter(); new Counter(); console.log(Counter.getCount()); // 2 Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что лучше 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. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 В чем разница между promise.all и promise.any? В JavaScript Promise.all() и Promise.any() – это методы, которые работают с массивом промисов и возвращают один итоговый промис. Но они ведут себя по-разному при успешных и неуспешных результатах. 🚩`Promise.all()` – ждет ВСЕ промисы Успешно выполняется только если ВСЕ промисы успешны. Если хотя бы ОДИН промис ошибочный, Promise.all() сразу отклоняется (reject). const p1 = Promise.resolve(1); const p2 = Promise.resolve(2); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]).then(result => { console.log(result); // [1, 2, 3] (все успешны) }); Пример с ошибкой const p1 = Promise.resolve(1); const p2 = Promise.reject("Ошибка!"); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]).catch(error => { console.log(error); // "Ошибка!" (первый reject ломает всё) }); 🚩`Promise.any()` – ждет ЛЮБОЙ успешный промис Выполняется, как только первый промис исполнится (resolve). Если все промисы завершаются с ошибкой, Promise.any() отклоняется с AggregateError. const p1 = Promise.reject("Ошибка 1"); const p2 = Promise.resolve(2); const p3 = Promise.resolve(3); Promise.any([p1, p2, p3]).then(result => { console.log(result); // 2 (берётся первый успешный) }); Пример (все с ошибками – ошибка) const p1 = Promise.reject("Ошибка 1"); const p2 = Promise.reject("Ошибка 2"); Promise.any([p1, p2]).catch(error => { console.log(error.errors); // ["Ошибка 1", "Ошибка 2"] }); Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что тестируется на smoke? Smoke-тестирование (дымовое тестирование) – это поверхностная проверка критически важного функционала приложения перед основными тестами. 🚩Что тестируется в Smoke? 🟠Основной функционал приложения Запускается ли система без ошибок? Работает ли авторизация? Можно ли создать, редактировать, удалять объекты? Загружаются ли основные страницы/экраны? 🟠Основные API и интеграции Отвечает ли сервер? Работают ли основные эндпоинты? Доступна ли база данных? 🟠UI и кнопки (если тестируем веб или мобильное приложение) Загружается ли интерфейс? Работает ли навигация по основным страницам? 🟠Ошибки и креши Нет ли фатальных ошибок, из-за которых приложение "падает"? Корректно ли обрабатываются основные сценарии? 🚩Как выполняется Smoke-тестирование? 🟠Автоматически (Selenium, Cypress, Postman) Запускаются автотесты для проверки ключевых функций. Например, тест входа в систему, проверка доступности страниц. 🟠Вручную (по чек-листу) QA проверяет базовые сценарии без углубленного тестирования. Например, открылось ли приложение, можно ли зайти в профиль. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!