😇
На testengineer.ru мы не размещаем рекламу, но над сайтом регулярно работают несколько человек. Поддержите нас, подписавшись на телеграм-канал "Тестировщик от бога"!
ДомойОбучениеАвтоматизированное тестированиеВопросы на собеседовании тестировщика - стажер/джуниор

Вопросы на собеседовании тестировщика — стажер/джуниор

Автор

Дата

Категория

Содержание

Стажер

Что такое тестирование, своими словами?

Проверка, соответствует ли реальное поведение программы ожидаемому. 

Чем отличается позитивное тестирование от негативного?

В позитивном используют только корректные вводные (данные), и проверяют, правильно ли программа выполняет свои функции.

В негативном работают с некорректными вводными, проверяют “нештатные ситуации”.

Подробнее о негативном тестировании и отличиях от позитивного.

Перечислите этапы жизненного цикла тестирования.

Планирование тестовАнализ требований, создание стратегии тестирования проекта
Создание тест-кейсовQA-инженеры пишут тест-кейсы
Настройка тестового окруженияНастройка хард- и софт-компонентов тестового окружения
Выполнение тестовВыполнение тестов и сравнение ожидаемого с полученными результатами
Закрытие циклаМитинг QA-команды по результатам, оценка критериев завершения цикла, глядя на тестовое покрытие, качество, стоимость, потраченное время, критически важные бизнес-цели, и особенности продукта

Подробнее — Жизненный цикл тестирования

Какие существуют общие методики тестирования?

( = стратегии тестирования, подходы к тестированию, etc)

  • Тестирование черного ящика. Стратегия, которая основывается только на требованиях и спецификациях. Не обязательно знание «внутренностей» приложения, его структуры и особенностей имплементации.
  • Тестирование белого ящика. Подход основан на знании кода проекта, внутренних связей, структуры и имплементации. “Белый ящик” обычно требует хороших скиллов программирования. 
  • Тестирование серого ящика: это стратегия дебага, в которой тестировщик имеет ограниченное знание внутренностей программы.

Подробнее о черном и белом ящике

Какие существуют уровни тестирования?

Их четыре:

  • Юнит-тестирование
  • Интеграционное
  • Системное
  • Приемочное

Что такое жизненный цикл бага?

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

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

Что такое тест-кейс?

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

Подробнее — Тест-кейс

В чем разница между функциональным и нефункциональным тестированием?

Функциональное тестированиеНефункциональное тестирование
Выполняется сначала, перед нефункциональнымВыполняется во вторую очередь
Основано на требованиях клиентаОсновано на ожиданиях клиента
Описывает, что приложение делаетОписывает, как приложение работает

Подробнее — Функциональное тестирование

Что такое верификация и валидация в тестировании?

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

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

Подробно о Верификации и валидации

Почему разработчики не тестируют код? Так же проще?

Основная причина — недостаток объективности. Поэтому, за исключением юнит-тестов, вся тяжесть обеспечения качества ПО возлагается на тестировщиков.

Что такое юзабилити-тестирование?

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

Какие бывают категории ошибок с выполнением требований?

  • Некорректность. Требование как бы выполнено, но неправильно, некорректно; видится явное отклонение от заданной спецификации (требования клиента).
  • Отсутствие. Тоже явное отклонение от спецификаций, заключается в том, что требование вообще не выполнено (не внедрено); чаще всего потому, что требование клиента не было изложено достаточно ясно и полно.
  • Избыточность. В продукте есть вещи, о которых не упоминалось в требованиях. Это тоже отклонение от спецификации, но, теоретически, функция может понравиться конечному пользователю.

Не путать с категориями багов 

Что такое критерии приемки?

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

Что такое предугадывание ошибок?

Одна из техник тест-дизайна, которую применяют, если нет однозначной идентификации возможной ошибки. Полностью зависит от опытности тестировщика — он должен “угадать” суть ошибки, опираясь на свой опыт, знание продукта, и требования к продукту. Зная, где ошибки имеют свойство обычно возникать и «скапливаться», может быть очень просто найти их.

В чем разница между альфа- и бета-тестированием?

  • Альфа-тестирование выполняется силами компании, или представителями конечного пользователя, в офисе компании-разработчика. 
  • Бета-тестирование выполняют потенциальные пользователи-”добровольцы” у себя в офисе или дома.
  • Альфа- делается сначала и “с самым основным”, бета — позже, и ”глубже”.

Отлично! А есть гамма-тестирование?

Да, есть. Так иногда называют последнюю стадию тестирования перед релизом, когда исправляют незначительные баги, обнаруженные при бета-тестировании, и вообще “шлифуют” приложение.

Опишите своими словами пользу от автоматизации.

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

Почему Selenium стал стандартом автоматизации?

Во первых, он с открытым кодом, это уже многое дает — настраиваемость под задачи; затем, бесплатный, не нужно платить за лицензию, в отличие от многих других QA-инструментов. Еще плюсы:

  • Тесты пишутся на (практически) всех языках программирования — Java, Python, JS, C#. Ruby, даже Perl
  • И в (практически) любой операционной системе — Windows, Mac, Linux
  • И работает со всеми (практически) браузерами — Firefox, IE, Chrome, Safari, Opera
  • Интегрируется с инструментами управления тест-кейсами и создания репортов, типа TestNG и JUnit
  • Интегрируется с инструментами непрерывного тестирования типа Maven, Jenkins и Docker

Из чего состоит Selenium?

  • IDE — Firefox-плагин записи действий пользователя и их воспроизведения. Генерирует код для Selenium WebDriver. Ленивые тестировщики, которые не хотят учить языки программирования, используют Selenium IDE как самостоятельный продукт, без преобразования записанных сценариев в программный код.
  • Server — сервер для управления браузером удаленно по сети
  • WebDriver — библиотека для управления браузерами. Отправляет команды браузеру через его API и получает результаты тестирования. Еще называется Selenium 2.0
  • Grid — кластер Selenium-серверов для управления браузерами на разных компьютерах в сети
  • (Еще есть Selenium RC, устаревшая библиотека для управления браузерами. Годится только для простых тестов. Поставляется в дистрибутиве, но не развивается. Еще называют Selenium 1.0)
selenium-1

Вопросы о Selenium на собеседовании — в отдельном материале.

Что такое локатор в Selenium? Какие локаторы знаете?

Локатор — указатель, однозначно идентифицирующий веб-элемент на странице. 

Локаторы в Selenium:

  • ID
  • ClassName
  • Name
  • TagName
  • linkText
  • PartialLinkText
  • Xpath
  • CSS Selector
  • DOM

Что такое XPath?

  • XPath — XML Path, язык запросов к элементам документа XML (и HTML). Один из предпочитаемых способов поиска веб-элементов в Selenium. 
  • Синтаксис напоминает URL-адреса, тем что “ветки” DOM-дерева отделяются косой чертой /, вот так: /store/item/title
  • Есть более 200 встроенных методов
  • XPath-запросы позволяют искать любые элементы и атрибуты на странице
  • XPath дает более удобные локаторы, чем например через теги или названия CSS-классов

В чем разница между абсолютным и относительным путем XPath?

  • Абсолютный XPath

Это прямой, полный путь к элементу DOM, но минус в том, что если что-то изменилось в структуре страницы, то XPath падает

Примеры абсолютного XPath:

 /html/body/div[1]/section/div[1]/div
html/body/form/input[2]
  • Относительный Xpath

В этом случае указание пути начинается с элемента где-то внутри DOM-структуры. То есть указание начинается с // , что значит поиск элемента где-либо на странице. Относительный как правило предпочтительный: если были изменения в структуре страницы, это не повлияет на поиск и выбор элемента в тесте, тест будет стабильнее.

Примеры относительного XPath:

//input[@id=‘app_email’]
//form/input[2] - ( без html/body/ )

Какие эксепшены в Selenium WebDriver помните?

Самые частые:

  • TimeoutException
  • NoSuchElementException
  • ElementNotVisibleException
  • StaleElementException

Здесь подробнее об эксепшенах в Selenium

В чем разница между приемочным и системным тестированием?

Приемочное (пользовательское) тестирование (UAT) — проводят конечные пользователи, оценивая, годен ли продукт. Создание почти любого продукта (или доработка по требованию) проходит через такое тестирование.

Системное тестирование — программной системы в целом. Тестирование “полной”, интегрированной (“собранной полностью”) системы. Сюда входит как функциональное, так и нефункциональное тестирование.

Как запустить браузер через WebDriver?

  • WebDriver driver = new FirefoxDriver();
  • WebDriver driver = new ChromeDriver();
  • WebDriver driver = new InternetExplorerDriver();

Джуниор

Когда нужно прекращать тестирование?

Когда QA-команда видит, что соблюдаются следующие условия (“майлстоуны”, вехи):

  • Успешно выполнены все запланированные тест-кейсы, приближается конечная дата STLC-цикла, и все баги устранены (“финальный багфикс”).
  • Приближается дедлайн тестирования, конечная дата этапа валидации, то есть ее закрытие. Пофиксили все критические и высокоприоритетные дефекты.
  • Покрытие кода. Целевой показатель покрытия кода тестами (code coverage) — достигнут, пора закрывать этап валидации.
  • Средняя наработка на отказ (MBTF) — до целевого показателя снизилось усредненное время непрерывной работы приложения до его сбоя (сюда не входит время на “ремонт” приложения). 

Что такое латентный баг?

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

Дефект, который можно было пофиксить на одном из начальных этапов цикла разработки, пофиксили на позднем этапе. Почему так хуже?

Как только дефект найден на начальном этапе, он должен быть устранен сразу, не откладывая на потом. Хорошо известно, что “отложенный” дефект приносит гораздо больше вреда — на порядок. Если на этапе формулирования требований стоимость дефекта минимальна, то на этапе выполнения тестов его “стоимость” возрастает в 8-10 раз, а на этапе поддержки продукта — в 10, а то и 20 раз.

Зачем делают сквозное тестирование?

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

Известно, что вероятность работы приложения (хостится в облаке и работает непрерывно), без единого отказа на протяжении 6 месяцев равна 99,999%. Какой тип тестирования позволяет это проверить?

Тестирование стабильности (надежности).

Что делать, если нет тестовой документации?

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

  • Самостоятельное изучение продукта
  • Стандарные методики черного ящика
  • Попробовать сформулировать из косвенных источников, то есть так называемых неявных требований (регламентов, старых тестовых данных, и так далее)
  • Предыдущие версии приложения
  • Старое доброе ад-хок-тестирование

А также плотнее работают с разработчиками и бизнес-аналитиками. 

В чем разница между регрессионным и повторным тестированием?

  • Повторное проводят, чтобы убедиться, что багфикс проведен успешно. Регресс проверяет, не повлиял ли багфикс на другие модули.
  • У повторного, как правило, выше приоритет (но иногда делают параллельно)
  • Регрессионные тест-кейсы проверяют функциональность некоторых или всех модулей
  • “Регресс” проверяет, что пройденные тест-кейсы снова пройдут успешно. Повторное выполняет тест-кейсы, которые раньше падали.

Какие тест-кейсы пишутся сначала: черного или белого ящика?

Обычно пишут первыми тест-кейсы черного ящика. Для этого нужен документ с требованиями и дизайн (план проекта). Эти документы уже доступны на начальном этапе проекта. 

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

Что такое риск-тестирование?

Которое основывается на оценках вероятности рисков. Анализируется сложность приложения, критичность функций, частота применения, количество вероятных дефектов. В приоритете — самые важные и уязвимые функции. 

Подробнее: Риск-тестирование

Что пишут в стандартном баг-репорте?

  • Название проекта
  • Имя модуля
  • Дата и время, когда найден дефект
  • Кем найден
  • ID дефекта и присвоенное Имя
  • Снепшот дефекта
  • Статус: приоритет и серьезность
  • Кем устранен дефект
  • Дата и время устранения

Может ли статическое тестирование обнаружить утечки в памяти?

Нет — поскольку приложение не запускается.

Автоматизируют ли тесты в Agile?

Да, и очень эффективно. Этим достигается хорошее тестовое покрытие и экономится время.

Какие тест-кейсы выгоднее всего автоматизировать?

  • Смок-тесты
  • Регрессионные
  • Со сложными вычислениями
  • DDT (data-driven-тесты)
  • Нефункциональные

Как убедиться, что автоматизация принесла пользу?

  • Хорошие числовые показатели по дефектам (в первую очередь DDP, процент обнаруженных дефектов)
  • Автоматизация прошла быстро и действительно ускорила релиз
  • Явно сэкономлен рутинный труд manual-тестировщиков

Опишите нагрузочное тестирование своими словами

Чтобы прочесть страницу на сервере, пользователь отправляет запрос, сервер отвечает; нагрузочное тестирование заключается в увеличении количества таких запросов в единицу времени, чтобы проверить “пределы выносливости” сервера. Данные фиксируются и анализируются, что позволяет найти “узкие места”.

Что такое мутационное тестирование?

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

Как “прокликать” ссылку через linkText() в Selenium?

driver.findElement(By.linkText(“Google”)).click();

Эта команда находит элемент и кликает его, осуществляя переход на страницу.

Что такое TestNG?

  • Фреймворк тестирования, полезный и разработчикам 
  • Юнит-, функциональное, сквозное, интеграционное 
  • “Заточен” под Java
  • Удобный встроенный механизм обработки эксепшенов

Как задать приоритет тест-кейсов в TestNG?

package TestNG;
import org.testng.annotations.*;

public class SettingPriority {
  @Test(priority=0)
  public void method1() {}

  @Test(priority=1)
  public void method2() {}

  @Test(priority=2)
  public void method3() {}
}

Выполнение:

Method1
Method2
Method3

Опишите разницу между Selenium и QTP

SeleniumQTP 
Поддерживает все популярные браузерыПоддерживает только IE, Firefox, Chrome. Работает только в Windows
Открытый исходный код; продукт бесплатныйКоммерческий продукт с платной лицензией
Тестирование только веб-приложенийТестирование веб- и Windows-приложений

Что такое репозиторий в Selenium?

Object Repository это коллекция веб-элементов тестируемого веб-приложения со значениями их локаторов, в формате “ключ:значение” в файле .properties (может также быть в XML-формате или Экселе).

Как ввести текст в текстовое поле через WebDriver?

Методом sendKeys()

Что такое каскадный дефект?

Дефект, спровоцированный другим дефектом. Если дефект существовал на первом этапе STLC и не был пофикшен, он может переходить на следующий этап и вызвать целый “каскад” других дефектов.

Пример. Модуль логина на странице.

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

На Этапе 2 создается форма Логина с именем пользователя и паролем. Одноразовый пароль отправляется на зарегистрированный номер мобильного — а номер отсутствует.

Теперь в Модуле регистрации имеем каскадный баг, который приводит к ошибке логина, или даже системной ошибке.

Как найти битые ссылки на странице WebDriver’ом ?

Требуется проверить, какие из например 20 ссылок на странице являются некорректными. Для этого нужно отправить HTTP-запросы на все ссылки, и проанализировать ответы. Применяем метод driver.get() (переход по ссылке), если ссылка корректная (документ по адресу существует), будет статус 200 (ОК). Любой другой статус будем считать признаком битой ссылки. Применяем теги <a>; в каждом теге <a> применяем атрибут ‘href’ для получения гиперссылки, и затем анализируем ответы, полученные через метод driver.get().

Как сделать скриншот в WebDriver?

Функцией TakeScreenshot, сохраняя скриншот методом getScreenshotAs()

Например, 

File scrFile = ((TakeScreenshot)driver).getScreenshotAs(outputType.FILE);

Как залогиниться на сайт, когда он выдает всплывающее окно с вводом имени-пароля?

Применяется команда с эксплицитным ожиданием, проверяющая, что такое окно появилось:

WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword(**username**, **password**));

Как пропустить (“скипнуть”) метод (или часть кода) в TestNG?

Параметр ‘enabled’ в аннотации выставляется в положение ‘false’.

@Test(enabled = false)

Что делает этот код?

WebElement sample = driver.findElement(By.xpath("//*[contains(text(), 'data')]"));

Здесь описывается переменная sample типа WebElement, применяется XPath-поиск для инициализации ее со ссылкой на элемент, содержащий строку “data”.

***

***

Удачи на собеседовании!

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

4 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Роман
Роман
2 месяцев назад

Не люблю когда смешивают часть девопса, часть разработчика и часть тестировщика. Зачем тестировщику тем более Джуниору, вникать в ci/cd. Тогда это уже не Джуниор. Не понятно для кого предназначена эта статья.

T
T
2 месяцев назад
Ответить на  Роман

И далеко не все работают с селениумом xD

Александр
Александр
2 месяцев назад

1. Что такое тестирование
— процесс оценки качества системы

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

3. В закрытии цикла можно указать «создание отчета о качестве»

4. Верификация и валидация — в той теории которую получил я, верификация = соответствие требованиям, валидация = соответсвие ожиданиям/потребностям заказчика. Код исполняется в обоих случаях.

Увы, не хватило времени разобрать дальше.

влад к
влад к
1 месяц назад
Ответить на  Александр

про веру и валю согласен), путает очень…

$1100*
медианная зарплата в QA в ноябре 2021

*по результатам опроса QA-инженеров в нашем телеграм-канале

Последние публикации

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

💬 Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать

Последние комментарии