QA Общие вопросы Flashcards
Нужно ли проверять все кейсы для поля ввода, если возможных кейсов очень много?
Можно ответить, что важна значимость этого поля в логике работы программы. Если поле критично - нужно
сделать все возможные проверки.
Какие причины возникновения ошибок ПО вы знаете?
Ошибки в документации, отсутствие требований или постоянное их изменение, ошибки в коде, отсутствие
коммуникации в команде
Почему ушли с предыдущих проектов?
Можно ответить, что проекты завершились
Делали регрес? Как стек тестов составляли?
Тесты составлялись исходя из критичности, крит. пути, покрытия основного функционала
Расскажи об идеальном процессе тестирования
На проекте существует документация.
1.Анализ требований
2. Уточнение требований
3.Разработка актуальной тестовой документации
4.Выполнение тестов
Как будешь работать, если нет документации ?
Буду проводить исследовательское тестирование, также буду уточнять какие-то особенности работы у
команды
В каком виде чаще всего хранятся пароли
В хешированном
Чем отличается хеширование от шифрования?
Хеш невозможно разхешировать, зашифрованные данные можно разшифровать
Логин и пароль хранятся в БД. Пароль в хешированном виде. Каким образом система удостоверится
что пароль верный. Пароль нельзя разхешировать
Система захеширует введённый пароль и сравнит с захешированным паролем в БД
Для чего используются брокеры сообщений
- проверка сообщения на ошибки;
- маршрутизация конкретному приемнику(ам);
- разбиение сообщения на несколько маленьких, а затем агрегирование ответов приёмников и отправка
результата источнику; - сохранение сообщений в базе данных;
- вызов веб-сервисов;
- распространение сообщений подписчикам, если используются шаблоны типа издатель-подписчик.
Что такое диспетчер очереди
Брокер сообщений (он же диспетчер очереди) — это приложение, которое принимает и отдает сообщения между отдельными модулями/приложениями внутри некоторой сложной системы, где модули/приложения должны общаться между собой — то есть пересылать данные друг другу
Какие брокеры сообщений ты знаешь
Apache Kafka
RabbitMQ
Amazon Web Services (AWS) SQS/SNS
Что такое микросервисы?
Микросервис — это веб-сервис, отвечающий за один элемент логики в некой предметной области.
Микросервисы взаимодействуют друг с другом через простые сетевые протоколы, например REST, и
совместно выполняют некоторые действия, но при этом ни один из них не имеет представления о внутреннем устройстве других сервисов.
Что такое кластеризация?
Кластеризация – это разбиение элементов некоторого множества на группы на основе их схожести. Задача кластеризации состоит в разбиении объектов из X на несколько подмножеств (кластеров), в которых объекты более схожи между собой, чем с объектами из других кластеров
Что такое балансировщик?
Сервисы перераспределения нагрузки, которые повышают производительность приложений, увеличивая время отклика и уменьшая задержку сети. Они выполняют несколько критически важных задач, таких как:
- Равномерное распределение нагрузки между серверами для повышения производительности приложений
- Перенаправление клиентских запросов на географически более близкий сервер, чтобы уменьшить задержку
- Обеспечение надежности и производительности физических и виртуальных вычислительных ресурсов
В процессе тестирования найден дефект, который сразу же исправили. Необходимо ли заносить его
в систему баг трекинга
Да. Т.к. так будет задокументирована работа проведённая тестировщиком, а также в случае повторного
обнаружения бага от будет считаться не новым, а повторным
У вас 10000 тестов и день на проверку. Как будете тестить?
Будем, например, при ответе исходить из ситуации выхода нового релиза. Проверим новый функционал,
критический функционал, связанный с последним изменением функционал, а также кейсы, относящиеся к уже
закрытым багам (баги могли открыться снова). Собеседующий ответил, что после этого кейсов стало 3000, и
их все равно не успеть проверить все. Можно сказать, что обратишься за помощью к команде и сообщишь PM
о рисках.
У вас есть 2.5 часа, 300 тестов (4 часа итого), как быть.
Нужно уведомить ПМ, что у меня есть ограниченное время, общий объем такой то, риски при выкидывании,
оставляем критический путь и т.д. ПМ должен уведомить заказчика и заказчик принимает решение об
допустимости сокращения времени при жертве определенными кейсами.
При тестировании формы на сайте вылетает эксепшен “Нул аларм эксепшен” твои действия?
Нужно открыть DevTools и посмотреть уходит ли вообще запрос на бэк и тогда можно понять ошибка на фронте или на бэке
Как часто у вас были релизы и как проходил процесс выпуска релиза?
По разному было. Было, где у релизов не было жестких временных рамок со стороны заказчика, т.е отталкивались от разработки конкретного функционоала. Так же работала по классическому так сказать
спринту в две недели. Был бэклог продукта, из него формировался бэклог спринта, далее уходили в спринт. В середине спринта был созвон по метрикам - успеваем мы вообще или не успеваем, какие у нас есть проблемы. Далее, в конце спринта формировалась релизная ветка, она накатывалась на тестовое окружение, далее шел ретест задач, регрес и если всё хорошо, то деплоились на продакшен, там шел смоук, повторный ретест задач.
В резюме указан Linux\Unix. Что там умеете делать?
Рассказывать свои навыки с позиции чем может быть полезно именно в тестировании. Например: удалённые
подключения по ssh; просмотр логов в /var/log; смена прав и владельцев на файлах
Как вы будете подключаться к удаленному серверу в Windows?
PuTTY, в win 10 можно и через терминал
Знакомы ли вы с CI/CD?
CI/CD— это комбинация непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery или continuous deployment) программного обеспечения в процессе разработки
Разница между симулятором и эмулятором?
Симулятор - это программа, имитирующая поведение необходимого устройства, без учета аппаратных характеристик (процессор, память и т.д.). Копирует только повеление и интерфейс устройства, позволяет создать визуальный экземпляр мобильного устройства. Xcode (iOS)
Эмулятор - это программа, которая аппаратно и программно имитирует работу реального устройства. Требует много ресурсов, работает медленнее, предоставляется производителем мобильного устройства. (Android Studio)
С прода прилетает заявка с скриншотом номера заявки и комментарием “все пропало”, расскажи
какие будут твои действия?
Как локализовать баг и найти ответственного по данной проблеме?
Локализовать баг, если сложности обратиться за помощью МП, аналитик, разработчик.
Как вы будете тестировать если готов back, но нет фронта?
Использовать Postman, Swagger
Как зная хост узнать ip сервера?
Использовать Cmd. Ввести ping “имя хоста”
Почтовые клиенты и их особенности
Outlook, Mailspring, TouchMail, Spark
Плюсы:
Объединение нескольких почтовых сервисов, дополнительный функционал, отсутствие навязчивой рекламы
Минусы:
Не поддерживает некоторые элементы письма, требует установки, платная подписка
Что такое логирование?
процесс записи информации о событиях, происходящих в рамках какого-либо
процесса с некоторым объектом. Запись может проводиться в файл регистрации или в базу данных.
По сути логирование - это то, что позволяет следить за ходом выполнения вашего приложения, вашего кода.
При работе приложения надо понимать, что вообще происходит внутри, особенно при разборе ошибок и
инцидентов. В этом как раз и помогают логи - это как запись черного ящика на самолетах.
Какие уровни логирования ты знаешь
1 Debug — запись масштабных переходов состояний, например, обращение к базе данных, старт/пауза сервиса,
успешная обработка записи и пр.
2 Warning — нештатная ситуация, потенциальная проблема, может быть странный формат запроса или
некорректный параметр вызова.
3 Error — типичная ошибка.
4 Fatal — тотальный сбой работоспособности, когда нет доступа к базе данных или сети, сервису не хватает
места на жестком диске.
Дополнительно файл логирования может расширяться записями еще двух уровней:
5 Trace — пошаговые записи процесса. Полезен, когда сложно локализовать ошибку.
6 Info — общая информация о работе службы или сервиса.
Какие типы логов ты знаешь
1 системные логи, то есть те, которые связаны с системными событиями;
2 серверные логи, регистрирующие обращения к серверу и возникшие при этом ошибки;
3 логи баз данных, фиксирующие запросы к базам данных;
4 почтовые логи, относящиеся к входящим/исходящим письмам и отслеживающие ошибки, из-за которых письма
не были доставлены;
5 логи авторизации;
6 логи аутентификации;
7 логи приложений, установленных на этих операционных системах.
Какие системы логирования ты знаешь
Graylog
ELK
Loggy
Splunk
Elasticsearch
Logstash
Kibana
Telescope
Использовали ли вы реальные устройства в тестировании приложения, или же обходились
эмуляторами
Можно ответить, что использовал реальные устройства, в моем случае планшет, так как удобнее было
использовать с устройство с большим экраном
Что нравится в работе больше всего?
Можно рассказать про “исследовательский элемент” в работе, поиск и локализация багов, общее
удовлетворение от высокого качества конечного продукта, коммуникация с командой
Что такое кеш?
Кеш (cache) браузера — это папка с копиями некоторых данных со страниц, которые вы посещали. Обычно в кеше сохраняются те элементы страницы, которые вряд ли успели измениться за промежуток времени между двумя запросами, — музыка, видео, изображения, стили, скрипты.
Что такое инвалидация кеша?
Инвалидация кеша - это процесс удаления всех кешированных объектов, связанных с изменениями в состоянии вашей модели. Наиболее распространённым типом инвалидации является прямое удаление объектов. Но если состояние первоначального источника распространилось на несколько кешированных объектов, то содержать их в синхронизрованном состоянии может быть сложно.
Слышал ли что-то про BPMN
Нотация бизнес-процессов (Схематичное представление структуры бизнес процесса)
Как предложишь решать проблему, если с прода от пользователя прилетает баг?
В идеале получить от пользователя подробное описание бага - в каком модуле он был найден, на каком окружении, какие шаги воспроизведения, какой результат ожидал пользователь и какой получил в итоге. На основе полученных данных можно выносить решение о критичности и серьёзности бага.
4 принципа ООП
1 Абстракция — отделение концепции от ее экземпляра;
2 Полиморфизм — реализация задач одной и той же идеи разными способами;
3 Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;
4 Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
Необходима ли ретроспектива в процессах и как часто её проводить?
Ретроспектива должна проводиться регулярно. Вообще всё в Scrum должно делаться регулярно. И планирование, и обзор, и ретро. “Сила” методологии именно в том, чтобы превратить непредсказуемый творческий процесс разработки в предсказуемый и планируемый.
Насколько необходимо общение с разработчиками? Эффективно ли это общение? Можно ли доверять разработчику?
Общение с разработчиком полезно обоим: разработчик лучше понимает суть дефекта, а тестер лучше понимает программную реализацию. Доверять в рамках командной работы нужно, но необходимо все равно все тестировать - может быть обнаружен баг, даже если разработчик уверен, что все работает
Разработали небольшую новую фичу, читаете документацию и не понимаете что там написано (для чего написана фича, как её проверить), но фича уже написана. Обращаетесь к разработчику, он
отвечает, что понял её вот так. Что делать в данной ситуации?
Организовать созвон с разработчиком и аналитиком. Если нет общего понимания, значит требования непонятны и не однозначны (требования к требованиям). Выяснить, что хотел донести аналитик в
документации, правильно ли понял его разработчик. При необходимости подключить ПМа
Были ли ситуации, когда функциональность протестирована и выпущена в прод, но на проде найдены баги и вы могли их найти при тестировании. Что происходило после?
Разбор причин пропуска бага, анализ покрытия тест кейсами продукта. Актуализация тест кейсов
Что является самым главным в работе тестировщика? Какие качества важны для тестировщика?
коммуникабельность, не стесняться просить о помощи, принятие своих ошибок, логическое мышление
Что такое эквайринг?
Интернет-эквайринг – это возможность принимать оплату банковскими картами при покупках в интернет-магазине или расчет за товары и услуги онлайн при помощи банковской карточки.
Различия между scrum и kanban
scrum работает по спринтам, kanban по канбан доске
Работали с jira, testrail, confluence?