Senior QA [38] Flashcards

1
Q

Как вы преодолеете трудности из-за отсутствия надлежащей документации для тестирования?

Теория

A
  1. В первую очередь, я бы попытался связаться с разработчиками или другими участниками проекта, чтобы запросить необходимую документацию. Если это не удается, я бы провел небольшое исследование самостоятельно, чтобы понять основные функциональные и нефункциональные требования продукта.
  2. Я бы также обратил внимание на предыдущие тестовые документы, если таковые имеются, и изучил результаты ранее проведенных тестов, чтобы получить представление о том, как продукт ведет себя в различных ситуациях.
  3. При необходимости, я бы воспользовался инструментами для автоматизации тестирования, чтобы создать тестовые сценарии на основе имеющихся данных и артефактов проекта.
  4. Важно также поддерживать коммуникацию с командой и представлять результаты своей работы, чтобы совместно решать проблемы, связанные с отсутствием документации.
  5. Наконец, я бы постоянно обновлял собственные навыки и знания в области тестирования, чтобы быть готовым к любым испытаниям, которые могут возникнуть вследствие отсутствия документации.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Каков самый подходящий подход для старта QA в проекте?

A

Для успешного старта QA в проекте рекомендуется следующий подход:

  1. Изучение продукта: Первым шагом является тщательное изучение продукта, его функциональности, требований и особенностей. Это поможет понять основные задачи QA в рамках проекта и определить приоритеты тестирования.
  2. Участие в планировании: QA-специалисту следует активно участвовать в планировании процесса тестирования, определении тестовых случаев и сценариев, выборе подходящих инструментов и технологий для тестирования.
  3. Разработка тестовых сценариев: Создание детальных тестовых сценариев и случаев на основе требований продукта, функциональности и пользовательских сценариев. Это поможет покрыть все аспекты продукта тестами и обеспечить высокое качество продукта.
  4. Автоматизация тестирования: При наличии возможности, рекомендуется автоматизировать тестирование для увеличения скорости выполнения тестов, улучшения качества тестов и повышения эффективности процесса тестирования.
  5. Сотрудничество с командой: Важно поддерживать открытую коммуникацию с разработчиками, аналитиками, менеджментом и другими участниками проекта. Совместная работа и обмен информацией помогут быстрее выявлять и исправлять дефекты.
  6. Постоянное обучение и саморазвитие: QA-специалисту важно постоянно совершенствовать свои навыки и знания в области тестирования, следить за последними тенденциями и технологиями. Это поможет быть готовым к изменениям и вызовам проекта, а также повысит профессиональную ценность специалиста.
  7. Постепенное параллельное внедрение бизнес-функционала: Чтобы добиться долгосрочных успехов, стоит постепенно внедрять новый бизнес-функционал для увеличения тестового покрытия и обеспечения полного тестирования всех аспектов продукта.
  8. Оценка эффективности и процесса тестирования: QA-специалисту стоит систематически оценивать эффективность проводимого тестирования, анализировать результаты, выявлять слабые места и внедрять улучшения для более эффективного и качественного процесса тестирования.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие препятствия могут возникнуть в обеспечении качества Agile Tester?

A

В обеспечении качества Agile Tester могут возникнуть следующие препятствия:

  1. Недостаточная документация: В Agile-проектах акцент делается на рабочем программном обеспечении более чем на подробной документации. Это может привести к нехватке у QA-специалистов достаточной информации для эффективного тестирования.
  2. Частые изменения и корректировки: Agile-проекты характеризуются частыми изменениями и корректировками требований. Это может означать, что QA-специалисты должны быстро переключаться между задачами и адаптироваться к новым условиям, что в свою очередь может повлиять на качество тестирования.
  3. Ограниченные ресурсы: В Agile-проектах часто есть ограничения по времени и ресурсам, что может осложнить работу QA-специалистов и привести к нехватке времени для полноценного тестирования.
  4. Отсутствие автоматизации: Недостаточное использование автоматизации тестирования может замедлить процесс тестирования и увеличить вероятность появления дефектов.
  5. Коммуникационные проблемы: Недостаточная коммуникация с другими участниками проекта (разработчиками, менеджментом, аналитиками) может привести к недоразумениям и неполноте информации, что затруднит обеспечение качества.
  6. Неопределенные роли и ответственности: В Agile-командах часто возникают неясности в распределении ролей и ответственностей между участниками, что может привести к неэффективному тестированию и недостаточному контролю качества.
  7. Отсутствие стабильной среды: Постоянные изменения в инфраструктуре или среде разработки могут создавать проблемы для тестирования, так как нестабильность окружения может влиять на результаты тестов и порождать ложноположительные или ложноотрицательные результаты.
  8. Недостаточное понимание принципов Agile: Не все участники команды разработки могут иметь достаточное понимание принципов Agile и практик тестирования в Agile. Это может затруднить согласование и эффективное взаимодействие внутри команды, что отразится на качестве тестирования.

Преодоление данных препятствий требует хорошего понимания Agile-методологии, умения быстро адаптироваться к изменениям и хорошей коммуникации со всеми участниками проекта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое Definition of Done?

A

Definition of Done (DoD) - это набор критериев, который определяет, когда работа на задаче или user story считается завершенной и готовой к передаче заказчику или следующему этапу разработки. DoD помогает команде разработки и QA-специалистам понять, когда задача или фича достигли требуемого уровня качества, функциональности и готовы к релизу.

В Definition of Done включаются различные критерии и составляющие, такие как:
- Функциональные требования: все функциональные требования задачи или user story должны быть реализованы и проверены.
- Тестирование: задача должна быть протестирована на соответствие требованиям и обеспечение корректной работы.
- Код-ревью: код должен быть проревьюено другим членом команды для обеспечения его качества, читаемости и соответствия стандартам.
- Документация: все необходимые документы, инструкции и описания должны быть созданы и обновлены.
- Интеграция: изменения должны быть интегрированы в основную ветвь и проверены на отсутствие конфликтов и ошибок.
- Верификация заказчиком: задача должна быть предоставлена заказчику или стейкхолдерам для верификации и утверждения.

Каждая команда разработки может иметь свой собственный Definition of Done, адаптированный под их специфические потребности и требования проекта. Правильное определение и соблюдение DoD важно для обеспечения качества продукта, ускорения процесса разработки и создания единого понимания в команде о завершенности работы. Definition of Done является важным инструментом Agile-подхода, который помогает обеспечить прозрачность, согласованность и эффективность в процессе разработки программного обеспечения. Четко определенное и соблюдаемое DoD позволяет избежать неоднозначностей, ускорить цикл разработки и повысить доверие заказчиков и пользователей к качеству продукта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Когда можно считать, что тестирование окончено?

A

Тестирование можно считать завершенным, когда все необходимые тесты были выполнены и выполнены следующие критерии:

  1. Все тестовые случаи были запланированы, разработаны и выполнены в соответствии с требованиями к продукту.
  2. Все выявленные дефекты были заполнены в баг-трекере, проанализированы и, где это возможно, устранены.
  3. Ключевые функциональности продукта были проверены и прошли тестирование.
  4. Тестирование безопасности и производительности, при необходимости, также было проведено и завершено успешно.
  5. Все необходимые виды тестирования (функциональное, интеграционное, системное, приемочное и др.) были проведены.
  6. Команда тестировщиков довольна результатами своей работы и уверена, что они соответствуют заявленным требованиям и ожиданиям пользователей.
  7. Заказчик или стейкхолдеры подтвердили готовность продукта к релизу или отметили, что все необходимые исправления и доработки были выполнены.
  8. Команда разработчиков и тестировщиков считает, что продукт готов к релизу и они удовлетворены его качеством.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое RCA в тестировании?Нужно ли его проводить?

A

RCA в тестировании означает Root Cause Analysis, то есть анализ корневых причин. Это процесс выявления и понимания истинных причин возникновения проблем или дефектов в процессе тестирования или разработки.

Проведение RCA в тестировании может быть очень полезным, поскольку это помогает не только исправить текущие проблемы, но и предотвратить их возникновение в будущем. Некоторые основные причины для проведения RCA в тестировании включают:

  1. Выяснение основных причин возникновения дефектов: RCA позволяет определить истинные причины дефектов, а не только их симптомы. Это помогает устранить проблему у истока.
  2. Улучшение процессов: Анализ корневых причин помогает выявить те шаги и процессы, в которых совершаются ошибки, и позволяет внести улучшения в рабочие процессы для предотвращения будущих проблем.
  3. Проактивное планирование: Знание корневых причин проблем позволяет принимать меры заранее для предотвращения их возникновения в будущем.
  4. Повышение качества: Проведение RCA способствует улучшению качества продукта путем устранения основных причин возникновения дефектов и ошибок.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какой подход вы используете для Test Cases Review?

A

Для проведения ревью тестовых случаев (Test Cases Review) я обычно использую следующий подход:

  1. Планирование ревью: Определяю цели и задачи ревью, уточняю ожидания от процесса, назначаю участников ревью и планирую время и место проведения.
  2. Подготовка к ревью: Предварительно ознакамливаюсь с тестовыми случаями, оцениваю их полноту, соответствие требованиям и правильность оформления.
  3. Проведение ревью: Пошагово просматриваю и обсуждаю каждый тестовый случай с участниками, обращая внимание на правильность формулировок, покрытие тестовых сценариев и обоснованность шагов.
  4. Обсуждение и фиксация замечаний: Поднимаю вопросы, замечания и предложения по улучшению тестовых случаев, фиксирую комментарии и предложения по исправлению.
  5. Решение вопросов и устранение недочетов: Взаимодействую с авторами тестовых случаев для исправления выявленных недочетов, неясностей или ошибок.
  6. Окончательное согласование: После внесения изменений и исправлений провожу окончательное ревью исправленных тестовых случаев и убеждаюсь, что все замечания были учтены.
  7. Документация и архивирование: Фиксирую результаты ревью, вношу изменения в тестовые случаи, обновляю документацию и архивирую результаты для последующего использования и/reference.
  8. Обратная связь и обучение: После завершения ревью делимся обратной связью с участниками, даем рекомендации по улучшению процесса создания тестовых случаев и обеспечиваем возможность обучения и развития для улучшения качества работы в будущем.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие виды рисков существуют?Что такое Mitigation Plan?

A

В обеспечении качества существует ряд различных видов рисков, которые могут возникнуть и оказать негативное воздействие на качество продукта. Некоторые из наиболее распространенных видов рисков в обеспечении качества включают:

  1. Технические риски: Связанные с недостаточными знаниями или навыками команды, сложностью реализации технических требований, проблемами с интеграцией систем и т.д.
  2. Риски планирования: Связанные с недооценкой времени и усилий, неправильными приоритетами, недостаточными ресурсами и т.д.
  3. Риски качества: Связанные с низким уровнем тестирования, недостаточным контролем качества, некорректными требованиями и т.д.
  4. Организационные риски: Связанные с изменениями в команде, непонятностью ролей и ответственностей, конфликтами между участниками команды и т.д.

Митигационный план (Mitigation Plan) - это план по смягчению или уменьшению воздействия рисков на проект или продукт. Mitigation Plan обычно включает в себя следующие шаги:

  1. Идентификация рисков: Определение конкретных рисков, их вероятности возникновения и потенциального воздействия на проект.
  2. Оценка рисков: Оценка важности и приоритет 2. Оценка рисков: Оценка важности и приоритизация выявленных рисков для определения того, на какие из них нужно сосредоточиться в первую очередь.
  3. Разработка стратегий смягчения: Создание планов действий для смягчения рисков, включая их предотвращение, минимизацию последствий или подготовку к ним.
  4. Определение ответственных: Назначение ответственных лиц, которые будут отвечать за исполнение мероприятий по смягчению рисков.
  5. Отслеживание и контроль: Регулярный мониторинг ситуации, оценка эффективности предпринятых мер и внесение коррективов в план, если необходимо.
  6. Документирование: Фиксация всех выявленных рисков, стратегий и планов смягчения в документации проекта для последующего использования и анализа.

Mitigation Plan является важным инструментом управления рисками, который помогает предотвращать или минимизировать негативное воздействие рисков на проект и обеспечивать успешную реализацию целей качества и продукта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

На основе чего нужно составлять стратегию для проведения тестирования нагрузки?

A

При разработке стратегии для проведения тестирования нагрузки необходимо учитывать следующие ключевые аспекты:

  1. Цели тестирования: Определите цели и задачи тестирования нагрузки – определить производительность, ёмкость и стабильность системы под нагрузкой, выявить узкие места и проблемные компоненты.
  2. Требования и критерии успеха: Определите требования к производительности системы (например, время отклика, пропускная способность, надежность) и критерии для оценки эффективности тестирования.
  3. Определение сценариев нагрузки: Разработка сценариев нагрузки, которые максимально приближены к реальным условиям использования системы. Включите различные типы нагрузки – нагрузку на пиковые периоды, постоянную нагрузку, стресс-тестирование и т.д.
  4. Выбор инструментов и технологий: Выберите подходящие инструменты для проведения тестирования нагрузки (например, JMeter, LoadRunner, Gatling) и определите методики и настройки для сбора и анализа результатов.
  5. Планирование и организация: Разработайте план тестирования нагрузки, включая определение ролей и ответственностей, расписание исполнения тестов, составление отчетов и мероприятий по проблемам.
  6. Измерение и анализ результатов: Оцените результаты тестирования, сравните их с установленными критериями производительности и требованиями, проанализируйте выявленные узкие места и проблемы, определите причины возникновения проблем.
  7. Улучшения и рекомендации: На основе анализа результатов разработайте рекомендации и план улучшений для системы, внесите изменения в архитектуру или настройки системы с целью повышения ее производительности и надежности.
  8. Документация: Оформите отчеты о проведенном тестировании нагрузки, включающие описание процесса тестирования, использованные сценарии, полученные результаты, анализ проблем и предложения по улучшению системы.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Как часто следует ревьюить тестовую документацию?

A

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

  1. При изменениях в требованиях: После внесения значительных изменений в функциональные требования или спецификацию продукта, тестовую документацию следует обновить и провести повторное ревью для убедительности в том, что тесты соответствуют обновленным требованиям.
  2. Перед началом новой фазы или релиза: Перед запуском новой фазы разработки или релиза продукта, рекомендуется провести ревью тестовой документации для обеспечения ее актуальности и правильности, а также выявления возможных проблем заранее.
  3. При добавлении нового функционала: При внесении изменений или дополнении нового функционала в продукт, тестовую документацию следует обновить и провести ревью для проверки соответствия новым требованиям и правильности плана тестирования.
  4. Регулярно: В зависимости от размера и сложности проекта, регулярное проведение ревью тестовой документации через определенные промежутки времени (например, еженедельно, ежемесячно) может помочь выявлять проблемы и улучшать процесс тестирования.

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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

A

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

  1. Оценка объема работы: Оцените общий объем работы, включая планируемое тестирование для каждой задачи, документирование результатов, исправление дефектов и другие задачи, требующие усилий тестировщиков.
  2. Учет приоритетов: Определите приоритеты задач тестирования в соответствии с бизнес-требованиями и сроками, чтобы правильно распределить усилия команды.
  3. Определение ролей и ответственностей: Определите роли и ответственности в команде тестировщиков, распределите задачи с учетом компетенций и опыта каждого участника.
  4. Использование методов оценки работоспособности: Используйте методы оценки работоспособности (например, метод оценки баллов, методика Planning Poker) для более точной оценки объема и сложности работ.
  5. Планирование времени: Учтите время, необходимое для каждого тестового этапа (подготовка, выполнение, анализ результатов), распределите нагрузку равномерно и учитывайте возможные задержки.
  6. Учет ресурсов: Обеспечьте команду тестировщиков необходимыми ресурсами (инструменты, оборудование, доступ к системам и данным) для эффективного выполнения задач, учитывая их доступность и возможные ограничения.
  7. Составление плана загруженности: На основе оценки объема работы, приоритетов задач, ролей и ответственностей, временных рамок и ресурсов, составьте план загруженности команды тестировщиков с указанием конкретных задач, сроков выполнения и ответственных исполнителей.
  8. Мониторинг и контроль: Следите за выполнением плана загруженности, контролируйте прогресс и результаты работы команды, регулярно проверяйте состояние задач и корректируйте план при необходимости.
  9. Коммуникация и сотрудничество: Обеспечьте открытую коммуникацию в команде тестировщиков, согласованный подход к работе, обмен опытом и знаниями, поддержку коллег в решении проблем и взаимодействие с другими участниками проекта.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как можно быстро сделать выборку необходимых проверок для смоук-тестирования?

A

Для быстрого формирования выборки необходимых проверок для smoke-тестирования можно использовать следующие подходы:

  1. Приоритезация задач: Определите наиболее критические для функциональности продукта проверки, которые необходимо включить в smoke-тесты. Это могут быть ключевые сценарии использования, основные функции продукта или модули, которые критически влияют на его работоспособность.
  2. Определение минимального набора проверок: Выберите минимальный набор проверок, необходимых для обеспечения базовой работоспособности системы. Этот набор должен содержать наиболее важные тесты, обнаруживающие наиболее вероятные проблемы и ошибки.
  3. Использование автоматизации: Воспользуйтесь автоматизированными тестами для быстрого выполнения smoke-тестов. Автоматизация позволяет сэкономить время и силы команды, ускорить процесс проверки и получить результаты быстрее.
  4. Регулярное обновление выборки: Постоянно обновляйте и оптимизируйте выборку проверок для smoke-тестирования, чтобы отслеживать изменения в продукте, учитывать новые функциональности и возможные проблемы.
  5. Структурирование в тест-кейсы: Структурируйте проверки для smoke-тестирования в виде тест-кейсов, группируя их по функциональности или приоритету. Это поможет упростить процесс выбора необходимых проверок и обеспечить их полное покрытие.
  6. Использование шаблонов и чек-листов: Создайте шаблоны и чек-листы для smoke-тестирования, включающие список необходимых проверок и шагов для их выполнения. Это поможет упростить процесс выбора и проведения проверок, а также обеспечит их полноту и систематичность.
  7. Привлечение команды: Вовлеките членов команды в формирование выборки проверок для smoke-тестирования. Коллективное обсуждение и согласование наиболее важных и критических проверок поможет получить общее понимание и поддержку в проведении smoke-тестов.
  8. Прагматичность: Будьте прагматичны в выборе проверок для smoke-тестирования, ориентируйтесь на наиболее критические для продукта сценарии и функциональности, которые могут сильно повлиять на его работоспособность. Не стремитесь к полному покрытию всех возможных сценариев, а сосредоточьтесь на основных и критически важных аспектах.

С учетом данных подходов можно быстро и эффективно сделать выборку необходимых проверок для smoke-тестирования, обеспечивая базовое тестирование и проверку работоспособности продукта в короткие сроки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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

A

Анализ результатов тестирования является важным этапом в обеспечении качества продукта и имеет ряд ценностей для команды и проекта в целом:

  1. Выявление дефектов: Анализ результатов тестирования позволяет выявить и зарегистрировать дефекты, ошибки и недоработки в продукте, что дает возможность своевременно исправить их и улучшить качество продукта.
  2. Оценка качества: Анализ результатов помогает оценить общее качество продукта, выявить его сильные и слабые стороны, определить уровень соответствия требованиям и ожиданиям пользователей.
  3. Повышение производительности: Анализ результатов позволяет выявить узкие места и проблемы производительности, определить возможности для оптимизации и повышения быстродействия продукта.
  4. Принятие решений: На основе анализа результатов тестирования можно принимать обоснованные решения по исправлению дефектов, улучшению процесса разработки, оптимизации архитектуры или принятию стратегических решений для благополучия проекта.
  5. Улучшение процессов: Анализ результатов тестирования способствует выявлению причин возникновения дефектов и проблем, что помогает улучшить процессы разработки, качество кода, продуктивность команды и управление рисками.
  6. Доверие пользователей: Качественный анализ результатов тестирования и обеспечение высокого уровня качества продукта повышают доверие пользователей к продукту и компании, что может привести к увеличению их удовлетворенности и лояльности.
  7. Экономия времени и ресурсов: Анализ результатов тестирования позволяет выявить проблемы и дефекты на ранних этапах разработки, что помогает сократить время на исправление ошибок и экономить ресурсы на последующих этапах проекта.
  8. Улучшение коммуникации: Анализ результатов тестирования способствует разработке отчетов, документации и обсуждению проблем с разработчиками, менеджментом и другими участниками команды, что способствует улучшению коммуникации и взаимодействия внутри проекта.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как можно подкорректировать флоу разработки, чтобы получать более чистые результаты на выходе и уменьшить количество багов на проде?

A

Для улучшения чистоты результатов на выходе и уменьшения количества багов на продукте можно внести коррективы в процесс разработки. Ниже приведены некоторые подходы к корректировке флоу разработки:

  1. Обеспечить четкое определение требований: Обеспечение продуманного и четкого определения требований к продукту поможет избежать недопониманий, уточнить ожидания заказчика и повысить понимание команды разработки.
  2. Разработать тщательное планирование: Тщательное планирование процесса разработки, включая определение задач, сроков, ресурсов и критериев успеха, помогает продумать каждый шаг и избежать хаоса и ошибок на этапе реализации.
  3. Разработать систему контроля качества: Внедрение строгих систем контроля качества, включая code review, автоматизированное тестирование, юнит-тестирование, интеграционное тестирование и др., позволит выявлять проблемы на ранних этапах разработки и предотвращать их попадание на продакшн.
  4. Обеспечить совместную работу и коммуникацию: Установление эффективной коммуникации и совместной работы между участниками команды разработки и QA способствует своевременному выявлению и исправлению проблем, уменьшает вероятность ошибок и улучшает качество продукта.
  5. Инвестиции в обучение и развитие: Поддерживайте постоянное обучение и развитие участников команды разработки, в том числе ознакомление с новыми технологиями, методами и инструментами, а также обмен опытом и знаниями. Обученная и квалифицированная команда способна выдавать более чистые и качественные результаты.
  6. Анализ и улучшение: Постоянный анализ результатов разработки и тестирования, обратная связь от пользователей и стейкхолдеров, выявление основных причин возникновения багов на продукте позволит выявить слабые места, улучшить процессы разработки и предотвратить повторение проблем в будущем.
  7. Практика непрерывного улучшения: Внедрение процесса непрерывного улучшения в работу команды поможет постоянно совершенствовать процессы, исправлять дефекты и проблемы, улучшать качество продукта и уменьшать количество багов на продукте в долгосрочной перспективе.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Расскажите о применяемых метриках качества.Зачем они нужны?

A

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

  1. Количество дефектов: Метрика, измеряющая количество обнаруженных дефектов в продукте или на определенных этапах разработки. Позволяет оценить уровень качества и надежности продукта.
  2. Время на разрешение дефектов: Метрика, отражающая время, затраченное на выявление, отчетность и исправление дефектов. Позволяет оценить эффективность процесса управления дефектами.
  3. Покрытие тестирования: Процент или количество кода, функций или требований, охваченных тестами. Позволяет оценить уровень покрытия тестирования и выявить пробелы в тестовой документации.
  4. Частота отказов: Частота возникновения отказов или недостатков в продукте. Позволяет измерить стабильность и надежность продукта.
  5. Время реакции на дефекты: Время, прошедшее с момента обнаружения дефекта до момента его исправления. Позволяет измерить эффективность команды в решении проблем.

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

Правильное применение метрик качества позволяет компаниям и командам разработки адекватно оценивать свои процессы и результаты, независимо от масштаба и сложности проекта, и стремиться к непрерывному улучшению качества продукта и процессов разработки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как провести эстимейт задачи?Каковы техники оценки объема тестирования?

A

Популярные техники оценки трудозатрат (эстимации)

  • Пальцем в небо (метод проб и ошибок)
  • Процентное отношение к разработке (например, на 1 тестировщика приходится 2-3 разработчика; значит на тестирование тратится в 2-3 раза меньше времени, чем на разработку)
  • Процентное распределение, при котором на все фазы SDLC выделяется определенный процент времени. Время выделенное на тестирование, разделяется на отдельные фазы STLC.
  • Эстимация, основанная на предыдущем опыте
  • Структурная декомпозиция, при которой крупные задачи разделяются на более мелкие, которые легко оценить
  • Эстимация по трем точкам

Простой пример эстимации

Вводные данные: команда состоит из 3 человек, в регрессионном наборе 30 кейсов, на прохождение одного кейса тратится 10 минут, обычно 20% тестов находят новые баги и нужен ретест. Для простоты подсчета не будем учитывать время на написание документации и уточнение требований.

Определяем время на регрессионное тестирование: (30 * 10) / 3 = 100 минут
Определяем время на ретест: 100 * 0.2 = 20 минут
Примерное время на тестирование 120 минут
Обязательно нужно учесть риски: недоступность членов команды, проблемы с ПО, внештатное увеличение количества багов. Заложим на это еще 10% времени.
Итого общее время на тестирование: 132 минут

Простой пример эстимации

Вводные данные: команда состоит из 3 человек, в регрессионном наборе 30 кейсов, на прохождение одного кейса тратится 10 минут, обычно 20% тестов находят новые баги и нужен ретест. Для простоты подсчета не будем учитывать время на написание документации и уточнение требований.

Определяем время на регрессионное тестирование: (30 * 10) / 3 = 100 минут
Определяем время на ретест: 100 * 0.2 = 20 минут
Примерное время на тестирование 120 минут
Обязательно нужно учесть риски: недоступность членов команды, проблемы с ПО, внештатное увеличение количества багов. Заложим на это еще 10% времени.
Итого общее время на тестирование: 132 минут

Эстимация по трем точкам

Наиболее точным методом оценки трудозатрат является оценка по трем точкам. Давайте усовершенствуем предыдущий расчет.

Рассчитывается по следующей формуле:

(O + (4 × M) + E)/6, где

O - оптимистичная оценка, когда все идет по плану
M - наиболее вероятная оценка, с учетом возникающих проблем
E - пессимистичная оценка, когда все идет не по плану

Также рассчитывается стандартное отклонение: (E − O)/6

На нашем примере это будет выглядеть так: (100 + (4*120) + 132)/6 = 118.7 минут

Финальный вариант: 118.7 ± 5.3 минут

15
Q

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

A

Рассчитать тестовое покрытие функционала можно через следующие метрики:

  1. Покрытие кода (Code Coverage): Это метрика, определяющая процент или количество кода, который был протестирован. Для расчета используются специальные инструменты, которые отслеживают выполнение кода во время запуска тестов и измеряют, какой процент линий кода или ветвлений был выполнен.
  2. Покрытие требований (Requirements Coverage): Оценивает, в какой степени тесты охватывают функциональные или нефункциональные требования продукта. Это позволяет определить, насколько полно тестовые сценарии проверяют требования к продукту.
  3. Матрица покрытия: Представляет собой матрицу, в которой на пересечении столбцов и строк указывается, какие функциональные возможности (функции, модули, сценарии, API и т.д.) были покрыты тестами. Такая матрица визуализирует степень покрытия функционала и позволяет идентифицировать пробелы в тестировании.
  4. Покрытие пользовательских сценариев: Оценка, насколько тесты обеспечивают полное покрытие пользовательских сценариев и потребностей. Позволяет оценить, как хорошо продукт соответствует ожиданиям и потребностям пользователей.

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

16
Q

Какое оптимальное количество шагов в тестовом сценарии?

A

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

  1. Простота и ясность: Тестовый сценарий должен быть простым и легко понимаемым. Если сценарий содержит слишком много шагов, это может усложнить его восприятие и проведение, и увеличить вероятность ошибок.
  2. Полнота покрытия: Хотя конкретное количество шагов может варьироваться, важно, чтобы тестовый сценарий покрывал все необходимые аспекты и сценарии использования продукта для полного тестирования.
  3. Оптимизация времени: Количество шагов в тестовом сценарии также должно оптимизировать время его выполнения. Слишком длинные и сложные сценарии могут занимать слишком много времени и ресурсов.

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

17
Q

Как избежать появления регрессионных дефектов?

A

Для предотвращения появления регрессионных дефектов можно использовать следующие методы и подходы:

  1. Автоматизация тестирования: Автоматизация повторяющихся тестов позволяет быстро и эффективно проверять изменения в коде на соответствие функциональности. Такие тесты могут быть запущены после каждого изменения для выявления потенциальных регрессионных дефектов.
  2. Создание набора регрессионных тестов: Определите ключевые сценарии и функциональности, которые подвергаются регрессионному тестированию, и создайте набор тестов для покрытия этих аспектов продукта.
  3. Регулярное регрессионное тестирование: Проводите регулярные регрессионные тесты после каждого изменения в коде или новых сборках, чтобы выявлять регрессионные дефекты на ранних этапах разработки.
  4. Мониторинг изменений: Внимательно следите за внесением изменений в код и функциональность продукта. Контролируйте, чтобы новые фичи или исправления не приводили к появлению регрессионных дефектов в других частях системы.
  5. Организация коммуникации: Обеспечьте открытую и эффективную коммуникацию между участниками команды разработки, чтобы оперативно реагировать на возможные регрессионные дефекты и предотвращать их появление.
  6. Регулярное обновление регрессионного набора тестов: Постоянно модернизируйте и дополняйте набор регрессионных тестов в соответствии с изменениями в коде и функциональности продукта. Обновление тестов позволит учитывать новые сценарии использования, требования и возможные риски появления регрессионных дефектов.
  7. Использование контроля версий: Пользуйтесь системой контроля версий для отслеживания изменений в коде и восстановления предыдущих версий под вопросом. Это позволит сохранять стабильность продукта и своевременно выявлять и устранять регрессионные дефекты.
  8. Применение DevOps практик: Используйте DevOps подход для автоматизации процессов разработки, тестирования и развертывания продукта. Это позволит быстро выявлять и устранять регрессионные дефекты внутри CI/CD цепочки и обеспечивать стабильность продукта на каждом этапе разработки.

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

18
Q

Что такое тестирование со смещением влево (Shift left testing)?

A

Тестирование со смещением влево (Shift Left Testing) - это подход в области тестирования программного обеспечения, который предполагает проведение тестирования на ранних этапах жизненного цикла разработки, еще до завершения всех этапов разработки продукта. Основные принципы тестирования со смещением влево включают:

  1. Интеграция тестирования в процесс разработки с самого начала, не дожидаясь завершения разработки функциональности.
  2. Выявление и исправление дефектов на ранних этапах, что позволяет экономить время и ресурсы при последующем развитии продукта.
  3. Активное участие тестировщиков в обсуждениях требований, проектировании, код-ревью и других этапах, чтобы предотвратить появление дефектов на ранних этапах и снизить вероятность их возникновения в будущем.
  4. Применение автоматизированных тестов для ускорения процесса тестирования и быстрого обнаружения дефектов.
  5. Тесное сотрудничество между разработчиками, тестировщиками и другими участниками команды разработки для достижения общей цели - высокого качества продукта.

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

19
Q

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

A
20
Q

В чем смысл юнит-тестов?

A
21
Q

Какие минусы полной автоматизации тестирования?

A
22
Q

Что такое ROI и как его считать?

A
23
Q

Что такое CI/CD?Какие плюсы и минусы этого подхода?

A
24
Q

TOP OWASP: какие знаете уязвимости и способы защиты?

A
25
Q

Что вы думаете по поводу BDD?Когда следует использовать, а в которых будет только хуже?Если все же следует использовать, то для UI или API автоматизированного тестирования?

A
26
Q

Что такое сокеты и как их тестировать, вручную и автоматизированно?Зачем их используют?

A
27
Q

Когда следует делать стресс-тестирование на проектах?От чего отталкиваться, когда строите сценарий для такого тестирования?Что учесть при выборе инструмента?

A
28
Q

Сформулируйте негативные сценарии для POST-запроса, создающего нового пользователя.

Практические задания

A
29
Q

Есть проект, на котором нет тестовой документации, но проекту уже год.Мануальным QA не хватает времени на тестирование, они очень устали, есть желание уволиться.Какое решение по команде можно принять?

A
30
Q

Как вы регулируете конфликтные ситуации между QA и разработчиками?

A
31
Q

Продайте мне тестирование как клиенту, не желающему его покупать.Кратко и структурированно опишите вашу работу на каждом из этапов разработки ПО, используя профессиональные термины (не лить воду).

A
32
Q

У вас есть онлайн-калькулятор.Вы вводите 1+1 и получаете 3. Расскажите, как вы будете искать причину проблемы.

A
33
Q

Могут быть такие виды архитектур?Что может быть недостаточно для правильной работы архитектур, приведенных ниже?

Клиент -> Сервер -> БД

(Клиент|Клиент|Клиент) -> Сервер -> БД

Клиент -> (Сервер|Сервер|Сервер|Сервер) -> БД

Клиент -> (Сервер|Сервер|Сервер|Сервер) -> Балансировщик -> (БД|БД|БД)

Вопросы при выполнении этой задачи:

  • Какие запросы выполняются по форме авторизации?
  • Какой запрос выполняется при сохранении данных в базе данных?
  • Можно ли авторизироваться с помощью GET-запроса и нормально ли так поступать?
  • Какой код ответа мы получаем при падении ошибки на сервере, код при ошибочных credentials на форме авторизации?
  • Можно ли заменить SSL-сертификат шифрованием данных в пакете от клиента к серверу для протокола HTTP и будет ли это равноценной заменой
A
34
Q

Есть веб-страница с полями e-mail, password и кнопкой submit.Предположим, что после нажатия кнопки submit страница перезагружается и ранее введенные данные исчезают.Как проверить, что данные отправлены в базу данных?

A
35
Q

Какое минимальное количество тест-кейсов необходимо, чтобы убедиться в корректной работе этой веб-страницы?

A
36
Q

Как проверить безопасность на веб-странице (по выбору)?

A