100 Вопросов Тестировщику PDF

Summary

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

Full Transcript

Основы 1.​ Что такое тестирование программного обеспечения?​ Это процесс оценки качества программного продукта путем поиска дефектов и проверки соответствия требованиям, чтобы убедиться, что продукт работает так, как ожидалось. 2.​ Каковы основные цели тестирования ПО?...

Основы 1.​ Что такое тестирование программного обеспечения?​ Это процесс оценки качества программного продукта путем поиска дефектов и проверки соответствия требованиям, чтобы убедиться, что продукт работает так, как ожидалось. 2.​ Каковы основные цели тестирования ПО? ○​ Обнаружение дефектов. ○​ Проверка соответствия требованиям. ○​ Улучшение качества продукта. ○​ Обеспечение надежности и стабильности ПО. ○​ Предотвращение ошибок на более ранних стадиях разработки. 3.​ Какие основные уровни тестирования существуют? ○​ Модульное тестирование. ○​ Интеграционное тестирование. ○​ Системное тестирование. ○​ Приемочное тестирование. 4.​ Какие существуют виды тестирования? ○​ Функциональное тестирование. ○​ Нефункциональное тестирование (производительность, безопасность и т. д.). ○​ Ручное и автоматизированное тестирование. ○​ Регрессионное тестирование. ○​ Тестирование совместимости. 5.​ Чем отличается статическое тестирование от динамического? ○​ Статическое тестирование: Анализ документации, кода и других артефактов без их выполнения (например, ревью кода, проверка требований). ○​ Динамическое тестирование: Выполнение программы для поиска дефектов. 6.​ Какие артефакты используются в тестировании? ○​ Тест-планы. ○​ Тест-кейсы. ○​ Чек-листы. ○​ Отчеты о дефектах. ○​ Отчеты о тестировании. 7.​ Что такое позитивное и негативное тестирование? ○​ Позитивное тестирование: Проверка работы системы при вводе корректных данных. ○​ Негативное тестирование: Проверка поведения системы при вводе некорректных или неожиданных данных. 8.​ Что такое критерии выхода из тестирования?​ Это условия, при выполнении которых тестирование считается завершенным. Например: ○​ Достигнуто определенное покрытие тестами. ○​ Исправлены критические дефекты. ○​ Завершены все запланированные тестовые сценарии. 9.​ Какие основные техники проектирования тестов используются? ○​ Эквивалентное разбиение. ○​ Анализ граничных значений. ○​ Попарное тестирование (Pairwise). ○​ Тестирование на основе графов и таблиц решений. 10.​Какие этапы включает процесс тестирования? ○​ Анализ требований. ○​ Планирование тестирования. ○​ Разработка тест-кейсов. ○​ Выполнение тестов. ○​ Заведение дефектов. ○​ Анализ результатов тестирования и создание отчетов. Модульное тестирование 11.​Что такое модульное тестирование?​ Модульное тестирование – это процесс проверки отдельных компонентов или модулей программного обеспечения в изоляции для оценки их корректной работы. 12.​Какие основные цели преследует модульное тестирование? ​ Проверка функциональности отдельных частей кода. ​ Обнаружение ошибок на ранних этапах разработки. ​ Упрощение рефакторинга и внесения изменений в код. ​ Повышение качества кода. 13.​Какие инструменты используют для модульного тестирования? ​ Java: JUnit, TestNG. ​ Python: unittest, pytest. ​ JavaScript: Jest, Mocha, Jasmine. ​ C#: NUnit, MSTest, xUnit. ​ PHP: PHPUnit. 14.​Что такое мок-объекты?​ Мок-объекты – это объекты-заменители, которые имитируют поведение реальных зависимостей, таких как базы данных, API или внешние сервисы. Они помогают изолировать тестируемый модуль. 15.​Чем отличается модульное тестирование от интеграционного?​ Модульное тестирование проверяет работу отдельных компонентов в изоляции, а интеграционное тестирование проверяет взаимодействие между модулями и их совместную работу. 16.​Какие метрики важны в модульном тестировании? ​ Покрытие кода (coverage). ​ Количество успешно пройденных тестов. ​ Время выполнения тестов. ​ Количество обнаруженных ошибок. 17.​Какими характеристиками должен обладать хороший модульный тест? ​ Изолированность. ​ Повторяемость. ​ Простота. ​ Быстродействие. ​ Чёткая проверка ожидаемых результатов. 18.​Как определяется покрытие кода?​ Покрытие кода измеряется с помощью инструментов, таких как JaCoCo (Java), Coverage.py (Python) или Istanbul (JavaScript), и показывает процент строк или путей кода, выполненных при запуске тестов. 19.​Какие виды модульных тестов существуют? ​ Позитивные тесты: проверяют работу кода на правильных входных данных. ​ Негативные тесты: проверяют реакции на некорректные данные. ​ Граничные тесты: тестируют крайние значения входных данных. ​ Тесты исключений: проверяют обработку ошибок и исключений. 20.​Почему важно писать модульные тесты? Модульные тесты помогают находить ошибки на ранних стадиях, упрощают процесс разработки, делают код более надёжным, упрощают его модификацию и способствуют автоматизации тестирования. Интеграционное тестирование 21.​Что такое интеграционное тестирование?​ Интеграционное тестирование – это процесс проверки взаимодействия между модулями или компонентами системы для оценки их совместной работы. 22.​Какие цели преследует интеграционное тестирование? ​ Выявление проблем взаимодействия между модулями. ​ Проверка корректности передачи данных между компонентами. ​ Убедиться, что интегрированные модули работают как единая система. 23.​Какие стратегии используются в интеграционном тестировании? ​ Снизу вверх (Bottom-Up): тестирование начинается с низкоуровневых модулей и постепенно поднимается вверх. ​ Сверху вниз (Top-Down): тестирование начинается с высокоуровневых модулей, постепенно добавляя низкоуровневые. ​ Большой взрыв (Big Bang): все модули интегрируются и тестируются одновременно. ​ Смешанный подход (Sandwich): комбинация стратегий "снизу вверх" и "сверху вниз". 24.​Какие инструменты используются для интеграционного тестирования? ​ Postman, SoapUI – для тестирования API. ​ Selenium – для тестирования взаимодействия пользовательских интерфейсов. ​ JUnit, pytest – для тестирования взаимодействия между модулями. ​ Jenkins – для автоматизации интеграционных тестов. 25.​Чем интеграционное тестирование отличается от модульного?​ Модульное тестирование проверяет отдельные модули в изоляции, а интеграционное тестирование фокусируется на проверке взаимодействия между этими модулями. 26.​Какие метрики важны в интеграционном тестировании? ​ Количество выявленных ошибок взаимодействия. ​ Покрытие интеграции (процент взаимодействий, покрытых тестами). ​ Время выполнения тестов. ​ Уровень стабильности при интеграции новых модулей. 27.​Какими характеристиками должен обладать хороший интеграционный тест? ​ Учитывать реальный сценарий взаимодействия компонентов. ​ Быть изолированным от внешних зависимостей (если возможно). ​ Учитывать негативные сценарии и ошибки. ​ Проверять совместимость данных между модулями. 28.​Какие виды интеграционного тестирования существуют? ​ Тестирование точек взаимодействия: проверка API, интерфейсов и методов вызова. ​ Тестирование потоков данных: проверка корректности передачи данных между модулями. ​ Регрессионное тестирование: проверка, что интеграция новых модулей не нарушает работу существующих. 29.​Как проверить взаимодействие между модулями, зависящими от внешних сервисов?​ Используются заглушки (stubs) и мок-объекты для имитации поведения внешних сервисов и снижения зависимости от них. 30.​Почему важно проводить интеграционное тестирование?​ Интеграционное тестирование помогает обнаружить ошибки взаимодействия между модулями, обеспечивает стабильность всей системы и предотвращает дефекты, которые могут возникнуть в процессе интеграции компонентов. Системное тестирование 31.​Что такое системное тестирование?​ Системное тестирование – это этап тестирования, на котором проверяется полная, интегрированная система для оценки её соответствия установленным требованиям. 32.​Какие цели преследует системное тестирование? ​ Убедиться, что система работает как единое целое. ​ Проверить соответствие системы функциональным и нефункциональным требованиям. ​ Обнаружить ошибки, которые не были выявлены на предыдущих этапах тестирования. 33.​Какие виды тестов используются в системном тестировании? ​ Функциональное тестирование: проверка, соответствует ли система функциональным требованиям. ​ Нефункциональное тестирование: проверка производительности, безопасности, удобства использования и других аспектов. ​ Регрессионное тестирование: убедиться, что изменения в системе не привели к новым дефектам. 34.​Какие инструменты используются для системного тестирования? ​ Selenium, Appium – для автоматизации функциональных тестов. ​ JMeter, LoadRunner – для тестирования производительности. ​ OWASP ZAP, Burp Suite – для проверки безопасности. ​ TestRail, Zephyr – для управления тестовыми сценариями. 35.​Чем системное тестирование отличается от интеграционного?​ Интеграционное тестирование фокусируется на проверке взаимодействия между модулями, тогда как системное тестирование проверяет всю систему в целом, включая взаимодействие с внешними системами. 36.​Какие метрики важны в системном тестировании? ​ Количество найденных дефектов. ​ Покрытие требований тестами. ​ Уровень соответствия системы нефункциональным требованиям (например, время отклика). ​ Степень автоматизации тестирования. 37.​Какими характеристиками должен обладать хороший системный тест? ​ Отражать реальные сценарии использования. ​ Быть понятным и легко воспроизводимым. ​ Проверять как функциональные, так и нефункциональные требования. ​ Покрывать как позитивные, так и негативные сценарии. 38.​Какие виды нефункционального тестирования входят в системное тестирование? ​ Тестирование производительности: проверка скорости, масштабируемости и стабильности системы. ​ Тестирование безопасности: оценка устойчивости к атакам и защите данных. ​ Тестирование удобства использования (usability): проверка, насколько система удобна для конечных пользователей. ​ Тестирование совместимости: проверка работы системы в разных средах и с разными устройствами. 39.​Какие основные подходы к выполнению системного тестирования существуют? ​ Ручное тестирование: тестировщики вручную проверяют систему по тестовым сценариям. ​ Автоматизированное тестирование: использование инструментов для автоматизации повторяющихся тестов. ​ Сценарное тестирование: проверка системы по заранее разработанным пользовательским сценариям. ​ Исследовательское тестирование: тестировщик исследует систему без заранее подготовленных сценариев. 40.​Почему важно проводить системное тестирование? Системное тестирование позволяет убедиться, что система работает корректно, удовлетворяет требованиям и готова к использованию конечными пользователями. Оно выявляет критические дефекты перед выпуском продукта, снижая риски. Нефункциональное тестирование 41.​Что такое нефункциональное тестирование?​ Нефункциональное тестирование – это вид тестирования, направленный на проверку нефункциональных характеристик системы, таких как производительность, масштабируемость, надежность, удобство использования и безопасность. 42.​Какие цели преследует нефункциональное тестирование? ​ Оценка качества работы системы в различных условиях. ​ Проверка соответствия системы нефункциональным требованиям. ​ Выявление узких мест в производительности, безопасности или удобстве использования. 43.​Какие виды тестов относятся к нефункциональному тестированию? ​ Тестирование производительности. ​ Тестирование нагрузки. ​ Стресс-тестирование. ​ Тестирование безопасности. ​ Тестирование удобства использования (usability). ​ Тестирование совместимости. ​ Тестирование отказоустойчивости. 44.​Чем нефункциональное тестирование отличается от функционального?​ Функциональное тестирование проверяет, что система выполняет свои функции в соответствии с требованиями, а нефункциональное тестирование оценивает, как система работает, включая такие аспекты, как скорость, безопасность и стабильность. 45.​Какие инструменты используются для нефункционального тестирования? ​ Производительность: JMeter, LoadRunner, Gatling. ​ Безопасность: OWASP ZAP, Burp Suite, Nessus. ​ Удобство использования: Crazy Egg, Optimal Workshop. ​ Совместимость: BrowserStack, Sauce Labs. ​ Стресс-тестирование: Apache JMeter, NeoLoad. 46.​Какие метрики важны в нефункциональном тестировании? ​ Время отклика (response time). ​ Пропускная способность (throughput). ​ Уровень отказов (failure rate). ​ Уровень безопасности (security score). ​ Удовлетворенность пользователей (user satisfaction). ​ Совместимость с разными платформами. 47.​Что такое тестирование производительности?​ Тестирование производительности оценивает, насколько эффективно система функционирует под определенной нагрузкой, проверяя такие параметры, как скорость, стабильность и масштабируемость. 48.​Что такое нагрузочное тестирование?​ Нагрузочное тестирование проверяет, как система работает при увеличении количества пользователей или операций до нормального или близкого к максимальному уровня. 49.​Что такое стресс-тестирование?​ Стресс-тестирование оценивает поведение системы в экстремальных условиях, например, при превышении пиковых нагрузок или ограниченных ресурсах. 50.​Что такое тестирование отказоустойчивости?​ Тестирование отказоустойчивости проверяет способность системы продолжать работу при частичных отказах или сбоях компонентов. 51.​Что такое тестирование безопасности?​ Тестирование безопасности выявляет уязвимости системы, защищенность данных и устойчивость к атакам, таким как SQL-инъекции или атаки на отказ в обслуживании (DoS). 52.​Что такое тестирование удобства использования (usability)?​ Это тестирование оценивает удобство интерфейса системы, её интуитивность, доступность и удовлетворенность пользователей при использовании. 53.​Что такое тестирование совместимости?​ Это проверка работы системы в различных средах: операционных системах, браузерах, устройствах и сетевых конфигурациях. 54.​Какими характеристиками должен обладать хороший нефункциональный тест? ​ Быть ориентированным на реальные сценарии использования. ​ Учитывать как позитивные, так и негативные сценарии. ​ Проверять поведение системы при различных условиях. ​ Обеспечивать повторяемость результатов. 55.​Что такое базовое тестирование производительности?​ Это начальная проверка системы для установления базовых параметров, таких как среднее время отклика и пропускная способность. 56.​Что такое тестирование масштабируемости?​ Тестирование масштабируемости оценивает способность системы справляться с увеличением нагрузки путем добавления ресурсов. 57.​Что такое тестирование стабильности?​ Тестирование стабильности проверяет, как система работает в течение длительного времени под постоянной нагрузкой. 58.​Что такое тестирование пиковых нагрузок?​ Это тестирование системы при максимальной возможной нагрузке для проверки её работоспособности в таких условиях. 59.​Что такое тестирование пользовательского опыта (UX)?​ Тестирование UX направлено на оценку восприятия системы пользователями, удобства её использования и соответствия ожиданиям. 60.​Почему важно проводить нефункциональное тестирование?​ Оно помогает оценить качество работы системы, выявить узкие места, улучшить пользовательский опыт и обеспечить соответствие нефункциональным требованиям. Нагрузочное тестирование 61. Что такое нагрузочное тестирование? Нагрузочное тестирование – это тип тестирования, целью которого является проверка работы системы под ожидаемой или повышенной нагрузкой. Оно помогает оценить производительность приложения и выявить возможные узкие места. 62. Чем нагрузочное тестирование отличается от стресс-тестирования? ​ Нагрузочное тестирование проверяет, как система справляется с ожидаемой нагрузкой. ​ Стресс-тестирование проверяет поведение системы за пределами её нормальных возможностей, чтобы выявить, где она перестаёт работать. 63. Какие метрики используются в нагрузочном тестировании? ​ Время отклика (Response Time) ​ Пропускная способность (Throughput) ​ Использование ресурсов (CPU, RAM, диск, сеть) ​ Количество ошибок (Error Rate) ​ Время выполнения транзакций. 64. Какие инструменты используются для нагрузочного тестирования? ​ Apache JMeter ​ LoadRunner ​ Gatling ​ Locust ​ k6 ​ Artillery. 65. Как определить уровень нагрузки для тестирования? Уровень нагрузки определяется исходя из: ​ Количества пользователей, активно работающих с системой. ​ Количества транзакций в секунду. ​ Типа запросов (например, чтение данных или запись). Анализ реальных данных использования помогает определить эти параметры. 66. Что такое пиковая нагрузка и зачем её тестировать? Пиковая нагрузка – это максимальная нагрузка, которую система должна выдерживать в течение короткого периода времени. Тестирование пиковой нагрузки необходимо, чтобы убедиться, что система будет стабильно работать в часы наибольшей активности. 67. Какие проблемы можно выявить с помощью нагрузочного тестирования? ​ Узкие места в производительности. ​ Нехватка ресурсов (CPU, память). ​ Проблемы с масштабируемостью. ​ Ошибки в обработке запросов под нагрузкой. ​ Долгое время отклика. 68. Что такое базовая линия в нагрузочном тестировании? Базовая линия – это начальное состояние системы, при котором фиксируются ключевые метрики производительности. Она используется для сравнения результатов других тестов и оценки изменений в системе. 69. Как правильно интерпретировать результаты нагрузочного тестирования? Результаты интерпретируются с учётом: ​ Ожидаемой производительности. ​ Сравнения с базовой линией. ​ Количества ошибок и времени отклика. ​ Соответствия требованиям SLA (Service Level Agreement). 70. Какие подходы существуют для проведения нагрузочного тестирования? Основные подходы: ​ Пошаговое увеличение нагрузки: постепенное увеличение числа пользователей. ​ Тестирование с постоянной нагрузкой: проверка стабильности при фиксированной нагрузке. ​ Стресс-тестирование: проверка системы за пределами её возможностей. ​ Тестирование на деградацию: измерение производительности при длительном использовании. ​ Тестирование при отказе компонентов: оценка системы при сбоях отдельных частей. Мобильное тестирование 71.​Что такое мобильное тестирование?​ Мобильное тестирование – это процесс проверки функциональности, производительности, удобства использования и других аспектов мобильных приложений на различных устройствах, операционных системах и сетях. 72.​Какие цели преследует мобильное тестирование? ​ Проверка корректности работы приложения на различных устройствах и платформах. ​ Оценка удобства использования (usability) для конечных пользователей. ​ Выявление багов, связанных с производительностью, совместимостью и безопасностью. ​ Проверка работы приложения в различных сетевых условиях. 73.​Какие виды тестов используются в мобильном тестировании? ​ Функциональное тестирование. ​ Тестирование производительности. ​ Тестирование безопасности. ​ Тестирование удобства использования (usability). ​ Тестирование совместимости. ​ Тестирование на реальных устройствах и эмуляторах. ​ Тестирование сетевых подключений. 74.​Какие инструменты используются для мобильного тестирования? ​ Автоматизация тестов: Appium, Selendroid, Espresso. ​ Тестирование производительности: JMeter, NeoLoad. ​ Мониторинг крашей: Firebase Crashlytics, BugSnag. ​ Совместимость: BrowserStack, Sauce Labs. ​ Сетевые тесты: Charles Proxy, Wireshark. 75.​Какие платформы нужно учитывать при мобильном тестировании?​ Основные платформы – iOS и Android. Иногда также учитываются менее популярные ОС, такие как HarmonyOS или KaiOS, если это релевантно для продукта. 76.​Чем мобильное тестирование отличается от тестирования веб-приложений? ​ Большое разнообразие устройств и разрешений экранов. ​ Различные версии мобильных ОС. ​ Ограниченные ресурсы устройств (память, процессор). ​ Учет условий сети (Wi-Fi, 4G/5G, слабый сигнал). ​ Необходимость тестирования на жесты (тач, свайп, многопальцевые действия). 77.​Какие метрики важны в мобильном тестировании? ​ Время отклика приложения. ​ Использование ресурсов устройства (процессор, память, батарея). ​ Количество багов на устройстве/платформе. ​ Статистика падений (crash rate). ​ Уровень покрытия тестами. 78.​Что такое тестирование совместимости в мобильных приложениях?​ Это проверка работы приложения на различных устройствах, экранах, версиях ОС, а также его взаимодействия с другими приложениями и системами. 79.​Какие основные проблемы могут возникнуть в процессе мобильного тестирования? ​ Огромное количество устройств и ОС для проверки. ​ Различия в поведении приложений на реальных устройствах и эмуляторах. ​ Ограниченные ресурсы для тестирования (время, оборудование). ​ Сложность моделирования реальных сетевых условий. ​ Быстро меняющиеся требования и частые обновления ОС. 80.​Почему важно проводить мобильное тестирование? Мобильное тестирование позволяет гарантировать, что приложение работает корректно, удобно для пользователей, не содержит критических ошибок и соответствует ожиданиям рынка, что особенно важно в условиях высокой конкуренции. Практические вопросы на собеседовании 81.​Как проверить функциональность формы авторизации в мобильном приложении? Проверяйте следующие сценарии: ​ Ввод правильных данных (позитивный сценарий). ​ Ввод неверного логина или пароля (негативный сценарий). ​ Пустые поля. ​ Проверка блокировки после нескольких неудачных попыток. ​ Проверка автозаполнения полей. ​ Работа кнопок "Забыли пароль?" и "Регистрация". 82.​Как протестировать производительность приложения при слабом соединении? Используйте инструменты для симуляции сетевых условий, например, Charles Proxy. Настройте ограничение скорости до 2G/3G и проверьте: ​ Время загрузки контента. ​ Корректность обработки ошибок при отсутствии интернета. ​ Поведение приложения при переподключении. 83.​Как проверить корректность отображения UI на разных устройствах? ​ Тестируйте на реальных устройствах с различными разрешениями экранов. ​ Проверьте адаптивность интерфейса в портретной и ландшафтной ориентациях. ​ Убедитесь, что текст, изображения и кнопки отображаются корректно и не обрезаются. 84.​Как протестировать работу уведомлений? ​ Разрешите и запретите отправку уведомлений для приложения. ​ Проверьте получение уведомлений при заблокированном и разблокированном экране. ​ Нажмите на уведомление и убедитесь, что оно открывает нужный раздел приложения. ​ Проверьте настройки уведомлений внутри приложения. 85.​Как протестировать работу приложения с камерой? ​ Проверьте запрос на доступ к камере при первом использовании. ​ Отключите разрешение для камеры в настройках устройства и проверьте реакцию приложения. ​ Проверьте, что происходит, если камера занята другим приложением. ​ Убедитесь, что фото или видео корректно сохраняются. 86.​Как проверить работу приложения при получении звонка? ​ Запустите приложение, начните выполнение действия, например, загрузку. ​ Ответьте на входящий звонок. ​ Проверьте, возобновляет ли приложение свою работу после завершения звонка. 87.​Как протестировать приложение при низком уровне заряда батареи? ​ Убедитесь, что приложение работает корректно при уровне заряда

Use Quizgecko on...
Browser
Browser