QA 1-100 Flashcards

1
Q

Какие виды тестирования существуют 75

75%

A

Тестирование программного обеспечения — это процесс, направленный на проверку качества и надёжности программных продуктов. Существует множество видов тестирования, каждый из которых преследует свои цели и задачи. Рассмотрим основные из них:

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

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

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

https://easyoffer.ru/question/7799

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

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

65%

A

Проверка продукта на соответствие требованиям.

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

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

Тестирование необходимо для обеспечения качества Оно помогает убедиться, что программа работает так, как ожидается, и отвечает всем заданным требованиям и спецификациям. Без него сложно гарантировать надёжность и безопасность ПО, что может привести к сбоям, уязвимостям в безопасности и недовольству пользователей.

https://easyoffer.ru/question/7800

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

Что такое регрессивное тестирование

50%

A

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

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

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

Включает следующие шаги:

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

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

https://easyoffer.ru/question/7801

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

Расскажи про уровни тестирования

45%

A

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

Модульное тестирование (Unit Testing)

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

Пример: Проверка функции сложения в программе калькулятора.

Интеграционное тестирование (Integration Testing)

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

Пример: Проверка того, как модуль калькулятора обрабатывает данные, полученные от пользовательского интерфейса.

Системное тестирование (System Testing)

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

Пример: Тестирование веб-приложения в различных браузерах и на разных устройствах.

Приемочное тестирование (Acceptance Testing)

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

Пример: Бета-тестирование программы с участием реальных пользователей.

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

https://easyoffer.ru/question/7802

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

Расскажи о своем опыте

42%

A

https://easyoffer.ru/question/7803

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

Что такое баг репорты

40%

A

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

https://easyoffer.ru/question/7804

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

Что в твоем понимании валидация

37%

A

Это процесс оценки конечного продукта, чтобы проверить, соответствует ли он потребностям бизнеса и ожиданиям клиентов, т. е. отвечает на вопрос: “правильный ли мы разработали продукт?”.

Валидация является динамическим тестированием, т. е. происходит с помощью выполнения кода и прогона тестов на нём (UAT/CAT, usability, всё что угодно).

https://easyoffer.ru/question/7806

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

Что такое JSON

37%

A

JSON (JavaScript Object Notation) — это текстовый формат обмена данными, основанный. Этот формат является независимым от языка стандартом, который поддерживается многими языками программирования. Это делает его идеальным для передачи данных между сервером и клиентскими приложениями, а также для хранения конфигураций и настроек.

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

Коллекции пар ключ/значение (реализованные в большинстве языков как объекты, записи, структуры, словари, хеш-таблицы, и т.д.).
Упорядоченные списки значений (в большинстве языков реализуются как массивы, векторы, списки и т.д.).

Почему JSON так популярен?
1. Легкость чтения и написания: Для человека этот формат довольно прост и понятен, а для машины — легко разбираем и генерируем.
2. Широкая поддержка: Большинство языков программирования имеют встроенные библиотеки для работы с ним, что делает его удобным для межплатформенного обмена данными.
3. Эффективность: Будучи текстовым форматом, оптимален для обмена данными через сеть и легко сжимается, что снижает затраты на трафик.

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

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

https://easyoffer.ru/question/7807

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

Расскажи что такое Smoke тестирование

37%

A

Smoke - проверка стабильности билда, что он вообще работает
Sanity - более глубокая проверка важного функционала

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

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

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

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

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

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

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

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

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

Данный тип тестирования позволяет на начальном этапе выявить основные быстро находимые критические дефекты.

https://easyoffer.ru/question/7805

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

Какие цели тестирования знаешь

35%

A
  • Проверка программы на соответствия требованиям;
  • Дать оценку качества продукта;
  • Проинформировать команду о качестве;

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

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

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

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

https://easyoffer.ru/question/7808

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

Расскажи что такое Sanity тестирование

32%

A

Sanity - более глубокая проверка важного функционала

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

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

Пример:
Допустим, команда разработки вносит изменения в модуль регистрации пользователей в веб-приложении. После внесения изменений QA инженер проводит Sanity тестирование этого модуля, чтобы убедиться, что регистрация по-прежнему работает корректно: пользователь может зарегистрироваться, получить подтверждение регистрации и войти в систему используя новые учетные данные.

Цели:

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

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

https://easyoffer.ru/question/7810

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

Основные компоненты баг репорта

32%

A

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

  1. Уникальный идентификатор (ID): Уникальный номер или код бага для удобства отслеживания и ссылки в системе управления задачами или баг-трекере.
  2. Заголовок/Название: Краткое, но описательное название проблемы, которое должно давать ясное представление о сути бага с первого взгляда.
  3. Описание: Подробное описание проблемы, включая информацию о том, что именно произошло и почему это считается ошибкой.
  4. Шаги для воспроизведения: Пошаговая инструкция, позволяющая разработчику точно воспроизвести обнаруженную проблему. Это важнейший элемент баг репорта, так как точное воспроизведение ошибки является ключом к её успешному исправлению.
  5. Ожидаемый результат: Четкое описание того, что должно было произойти, если бы ошибка не возникла. Это помогает понять, как должна корректно работать функция или процесс.
  6. Фактический результат: Описание того, что на самом деле произошло. Разница между ожидаемым и фактическим результатами указывает на наличие проблемы.
  7. Серьезность (Severity): Уровень важности ошибки, который может варьироваться от критической (приложение падает или данные теряются) до низкой (незначительные нарушения в интерфейсе или опечатки).
  8. Приоритет (Priority): Определяет порядок исправления ошибки в зависимости от её влияния на общую работу системы или проекта.
  9. Среда: Включает версию операционной системы, браузера, устройства, на котором была обнаружена ошибка, а также другие детали окружения, которые могут быть релевантны для воспроизведения и исправления проблемы.
  10. Вложения: Скриншоты, видео, логи ошибок и другие файлы, которые могут помочь в диагностике и понимании проблемы.
  11. Статус: Текущее состояние бага (открыт, в процессе исправления, закрыт и т.д.).
  12. Дата и время обнаружения: Когда была обнаружена ошибка, что может помочь в анализе проблемы, особенно если ошибка возникает не постоянно.

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

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

https://easyoffer.ru/question/7809

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

Расскажи о чек листе

32%

A

Чек-лист — это список проверок, которые помогают тестировщику протестировать приложение или отдельные функции.

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

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

https://easyoffer.ru/question/7812

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

Что в твоем понимании верификация

32%

A

Верификация - это проверки, выполняемые в процессе разработки ПО для ответа на вопрос: “правильно ли мы разрабатываем продукт?”. Это в т. ч. включает проверку документации: requirements specification, design documents, database table design, и т. д.

Верификация гарантирует, что ПО разрабатывается в соответствии со стандартами и процессами организации, полагаясь на статические методы тестирования (т. е. без запуска ПО, но, например, с unit/integration tests). Верификация является превентивным подходом.

Верификация vs Валидация
Верификация часто упоминается вместе с валидацией, но это различные процессы. Если верификация отвечает на вопрос “Строим ли мы продукт правильно?”, проверяя соответствие продукта требованиям и спецификациям на каждом этапе разработки, то валидация отвечает на вопрос “Строим ли мы правильный продукт?”, подтверждая, что конечный продукт удовлетворяет потребностям и ожиданиям конечного пользователя.

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

https://easyoffer.ru/question/7811

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

Расскажи жизненный цикл бага

30%

A

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

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

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

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

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

https://easyoffer.ru/question/7818

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

Расскажи про статическое тестирование

30%

A

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

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

Почему это важно?
Статическое тестирование позволяет выявлять и исправлять ошибки на ранних этапах разработки, что значительно сокращает затраты на последующее тестирование и доработку ПО. Кроме того, оно способствует повышению качества кода и документации, что делает программное обеспечение более надёжным и удобным в поддержке.

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

https://easyoffer.ru/question/7815

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

Что такое тестирование локализации

30%

A

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

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

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

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

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

https://easyoffer.ru/question/7814

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

В чем разница get от post

30%

A

GET и POST являются двумя наиболее распространёнными методами HTTP, используемыми для отправки запросов на сервер. Они играют ключевую роль в обмене данными между клиентом (например, веб-браузером) и сервером. Несмотря на то, что оба метода служат для передачи данных, между ними есть ряд фундаментальных различий:

  1. Назначение и использование:

GET обычно используется для запроса данных от сервера. Параметры запроса кодируются в URL, что делает их видимыми в адресной строке браузера. Это удобно для сохранения или закладок URL, но не подходит для передачи конфиденциальной информации.
POST используется для отправки данных на сервер для обработки. Например, при отправке формы на веб-странице. Данные, отправляемые этим методом, включаются в тело запроса, что делает их невидимыми в адресной строке.
2. Ограничения данных:

GET имеет ограничения на длину данных, поскольку вся информация находится в URL. Размер URL ограничен (ограничение может варьироваться в зависимости от браузера и сервера), что ограничивает количество данных, которые можно отправить.
POST не имеет ограничений на размер данных, что позволяет отправлять большие объёмы информации.
3. Безопасность:

GET менее безопасен по сравнению с POST, потому что данные видны в URL, и они могут быть сохранены в истории браузера или логах сервера.
POST более безопасен, так как данные не отображаются в URL и не сохраняются в истории браузера.
4. Кеширование и история браузера:

GET может кешироваться браузерами и серверами, а URL с GET-параметрами может быть сохранён в истории браузера, что упрощает повторный доступ к тем же ресурсам.
POST запросы, как правило, не кешируются и не сохраняются в истории браузера, что делает их менее удобными для повторного использования, но более подходящими для передачи данных, которые не должны быть легко доступны или кешированы.
5. Идемпотентность:

GET считается идемпотентным, что означает, что повторение одного и того же GET-запроса будет иметь тот же эффект, что и его однократное выполнение.
POST не идемпотентен, так как повторная отправка одного и того же POST-запроса может привести к повторной обработке данных на сервере (например, дважды разместить заказ).
GET используется для запроса данных и может быть сохранён в истории браузера и кеширован. POST используется для отправки данных на сервер, более безопасен и подходит для больших объёмов данных. GET как открытая витрина магазина, где вы можете только смотреть товары, а POST - это когда вы решили что-то купить и обращаетесь к продавцу через закрытый канал.

https://easyoffer.ru/question/7813

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

Расскажи про методологии разработки

30%

A

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

  1. Водопадная модель (Waterfall)

Является классическим, последовательным подходом к разработке, где процесс разделён на строго определённые этапы: сбор требований, проектирование, реализация, тестирование, развёртывание и поддержка. Каждый этап начинается только после полного завершения предыдущего.
Преимущества: простота управления за счёт чёткой структуры этапов.
Недостатки: негибкость и сложность внесения изменений после начала разработки.
2. Agile (Эджайл)

Основанна на итеративном и инкрементальном подходах, где проект развивается через короткие циклы (итерации), позволяя команде быстро адаптироваться к изменениям. Самые известные представители — Scrum, Kanban, Extreme Programming (XP).
Преимущества: гибкость, адаптивность, постоянная обратная связь от клиента и фокус на качестве продукта.
Недостатки: может потребоваться больше времени и ресурсов, сложно прогнозировать сроки завершения проекта.
3. Scrum

Подметодология Agile, ориентированная на управление проектами, разделёнными на итерации (спринты), обычно длительностью от 2 до 4 недель. Ключевые роли: Scrum-мастер, владелец продукта и команда разработки.
Преимущества: повышенная производительность и качество продукта, гибкость перед изменениями, активное вовлечение клиента.
Недостатки: требует высокой дисциплины и самоорганизации команды, может быть неэффективен в больших организациях.
4. Kanban

Сосредоточена на визуализации рабочего процесса с целью оптимизации потока задач. Использует доску Kanban для отслеживания задач в различных стадиях выполнения.
Преимущества: улучшение потока работы и эффективности, гибкость, простота внедрения в существующие процессы.
Недостатки: может не подходить для проектов с жёсткими сроками, требует дисциплины в поддержании актуального статуса задач.
5. Extreme Programming (XP)

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

Методологии разработки ПО — это различные подходы к организации процесса создания программ, помогающие команде работать эффективнее. Водопадная модель — это строгий последовательный подход, в то время как Agile и его вариации, такие как Scrum и Kanban, предлагают гибкость и адаптивность. Выбор методологии зависит от специфики проекта и команды.

https://easyoffer.ru/question/7816

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

Знаешь техники тест дизайна

30%

A

Техники тест-дизайна — это методы и приёмы, используемые для создания тестовых случаев (тест-кейсов), которые эффективно проверяют ПО на наличие ошибок. Они помогают определить, какие именно тесты нужно провести, чтобы максимально покрыть проверкой возможные сценарии использования программы. Различают статические и динамические техники, а также техники, основанные на знании внутреннего устройства системы (white-box) и без знания внутреннего устройства (black-box). Вот некоторые из наиболее популярных техник:

Техники основанные на опыте (Experience-based techniques):

  • Ошибка и предположение (Error Guessing): Основано на опыте и интуиции тестировщика, который предполагает, где могут возникнуть ошибки.
  • Тестирование на основе чек-листов (Checklist-based Testing): Использование чек-листов, основанных на предыдущем опыте, для проверки определённых аспектов программы.

Чёрный ящик (Black-box techniques):

  • Эквивалентное разбиение (Equivalence Partitioning): Разделение входных данных на группы (классы эквивалентности), которые можно обрабатывать одинаково. Достаточно тестировать по одному представителю от каждой группы.
  • Граничные значения (Boundary Value Analysis): Тестирование на значениях на границах или около границ классов эквивалентности.
  • Таблицы решений (Decision Table Testing): Создание таблиц, которые показывают, как действия программы зависят от комбинаций её входных данных.
  • Тестирование переходов состояний (State Transition Testing): Проверка переходов между различными состояниями системы на основе событий или условий.

Белый ящик (White-box techniques):

  • Тестирование путей (Path Testing): Анализ выполнимых путей через код для проверки всех возможных путей выполнения.
  • Тестирование на основе управляющих структур (Control Structure Testing): Фокусируется на логических операциях и условиях в коде, проверяя все условные операторы.

Поведенческие техники:

  • Использование моделей использования (Use Case Testing): Создание тестов на основе сценариев использования программы пользователями.

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

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

https://easyoffer.ru/question/7819

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

Расскажи про методологию разработки scrum

27%

A

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

Основные принципы Scrum:

  • Итеративный подход: Разработка делится на короткие циклы (спринты), продолжительностью обычно от одной до четырёх недель. Каждый спринт включает в себя планирование, разработку, тестирование и демонстрацию готового функционала.
  • Самоорганизующиеся команды: Команды состоят из профессионалов, которые самостоятельно распределяют задачи и отвечают за достижение целей спринта. Роли в команде включают Product Owner (владелец продукта), Scrum Master и команду разработчиков.
  • Продуктовый бэклог: Список всех известных требований к продукту, приоритизированный владельцем продукта. Эти требования разбиваются на меньшие задачи для выполнения в рамках спринтов.
  • Спринтовый бэклог: Список задач, выбранных командой для выполнения в текущем спринте.
  • Ежедневные стендапы (Daily Scrum): Короткие ежедневные встречи для координации работы и обсуждения прогресса и возможных препятствий.
  • Обзор спринта (Sprint Review): Встреча в конце спринта, где команда демонстрирует что было достигнуто за спринт.
  • Ретроспектива спринта: Встреча после обзора спринта, на которой команда обсуждает, что работало хорошо, что можно улучшить, и планирует улучшения на следующий спринт.

Цели Scrum:

  • Гибкость и адаптивность: Быстро реагировать на изменения требований и условий разработки.
  • Прозрачность процесса: Все участники проекта имеют чёткое представление о ходе работы и проблемах.
  • Постоянное улучшение: Непрерывная оптимизация процесса разработки и работы команды.

Преимущества Scrum:

  • Улучшает коммуникацию и сотрудничество в команде.
  • Повышает качество продукта за счёт регулярного тестирования и обратной связи.
  • Позволяет быстрее реагировать на изменения и новые требования заказчика.
  • Делает процесс разработки более прозрачным и предсказуемым.

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

https://easyoffer.ru/question/7822

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

Что такое exploratory testing ( исследовательское )

27%

A

Исследовательское тестирование (Exploratory Testing) — это подход к тестированию ПО, который совмещает процесс обучения, проектирования тестов и само тестирование в реальном времени. В отличие от традиционного , где тест-кейсы создаются заранее и затем выполняются, исследовательское тестирование предполагает одновременное проектирование и выполнение тестов. Это динамичный процесс, в котором тестировщик использует свой опыт, интуицию и творческий подход для идентификации и проверки потенциальных проблем в программном продукте.

Основные принципы исследовательского тестирования:

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

Преимущества исследовательского тестирования:

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

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

https://easyoffer.ru/question/7823

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

Какая бывает тестовая документация

27%

A

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

1. Тестовая политика (Test Policy):

Описывает общие принципы и подходы к тестированию на уровне организации. Это стратегический документ, который не вдается в детали исполнения.
2. Тестовая стратегия (Test Strategy):

Определяет основные стратегические направления тестирования для конкретного проекта или серии проектов. Включает в себя выбор методологий, описание процессов управления рисками, ресурсов, инструментов и прочее.
3. План тестирования (Test Plan):

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

Подробное описание условий и шагов для проверки конкретного аспекта системы или приложения. Тестовый сценарий включает в себя входные данные, условия выполнения, шаги для выполнения и ожидаемый результат.
5. Тестовый набор (Test Suite):

Коллекция тестовых сценариев, объединённых по определённому признаку, например, функциональности, которую они тестируют, или типу тестирования (регрессионное, приёмочное и т.д.).
6. Тестовые данные (Test Data):

Данные, используемые для выполнения теста. Могут включать в себя входные файлы, данные для заполнения форм, конфигурационные файлы и так далее.
7. Протокол тестирования (Test Log):

Журнал, в котором фиксируется информация о процессе выполнения тестов, включая время начала и окончания тестирования, исполнителя, результаты и возникшие проблемы.
8. Отчёт о дефектах (Defect Report):

Описывает найденные в процессе тестирования ошибки. Включает информацию о способе воспроизведения ошибки, её серьёзности, состоянии и любые дополнительные сведения, которые могут помочь в её исправлении.
9. Отчёт о тестировании (Test Report):

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

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

https://easyoffer.ru/question/7821

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

Расскажи о тест кейсах

27%

A

Тест-кейсы (test cases) — это детально прописанные условия и шаги, предназначенные для проверки определённого аспекта работы ПО. Каждый тест-кейс призван проверить, правильно ли система или её часть выполняет заданную функцию в соответствии с требованиями. Помогают обеспечить, что ПО работает корректно и без ошибок в различных ситуациях и условиях.

Структура тест-кейса обычно включает:

  1. Идентификатор (ID): Уникальный номер или код для идентификации.
  2. Название (Title): Краткое описание цели.
  3. Предусловия (Preconditions): Условия, которые должны быть выполнены до начала тестирования.
  4. Шаги (Steps): Последовательность действий, которые необходимо выполнить для проведения теста.
  5. Тестовые данные (Test Data): Конкретные значения или данные, используемые при тестировании.
  6. Ожидаемый результат (Expected Result): Описание того, как система должна реагировать на выполнение тестовых шагов, если она работает корректно.
  7. Фактический результат (Actual Result): Реальный результат выполнения теста, который заполняется во время тестирования.
  8. Статус (Status): Отражает, прошёл тест успешно (Passed), не прошёл (Failed) или был пропущен (Skipped).
  9. Комментарии (Comments): Дополнительная информация, наблюдения или проблемы, выявленные в ходе тестирования.

Зачем нужны тест-кейсы:

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

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

https://easyoffer.ru/question/7820

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

Расскажи про динамическое тестирование

25%

A

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

Основные аспекты динамического тестирования:

  • Виды тестирования: Включают функциональное (проверка соответствия функциональным требованиям), нефункциональное (проверка производительности, безопасности, удобства использования и т. д.), а также регрессионное (проверка, что новые изменения не привели к появлению ошибок в уже протестированных частях программы).
  • Уровни: Различают несколько уровней, включая модульное (тестирование отдельных компонентов или модулей), интеграционное (проверка взаимодействия между модулями или системами) и системное (проверка всей системы в целом).
  • Автоматизация: Динамическое тестирование может быть как ручным, так и автоматизированным. Автоматизация включает использование специального ПО для создания и выполнения тестов, что позволяет повысить эффективность тестирования и ускорить процесс разработки.
  • Тестовые сценарии и данные: Разработка тестовых сценариев и подготовка тестовых данных являются ключевыми аспектами динамического тестирования. Они описывают условия и шаги для проверки конкретных функций или сценариев использования, а тестовые данные предоставляют необходимую информацию для выполнения этих тестов.

Преимущества:

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

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

https://easyoffer.ru/question/7826

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

Откуда брать требования если нет документации

25%

A

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

  1. Общение с заинтересованными сторонами (stakeholders): Это могут быть разработчики, аналитики, менеджеры проекта, заказчики или даже конечные пользователи. Они могут предоставить информацию о целях и задачах проекта, ожиданиях от функционала и критериях его успешности.
  2. Изучение существующего продукта: Если проект не новый, то изучение уже существующего функционала может дать понимание ожидаемого поведения системы. Это поможет определить, какие аспекты продукта важны и какие могут быть потенциальными точками для тестирования.
  3. Использование агил-методологий (например, Scrum или Kanban): В таких методологиях требования часто формулируются в виде пользовательских историй (user stories), которые описывают функционал с точки зрения конечного пользователя. Работа в тесном взаимодействии с командой разработки и постоянное уточнение деталей помогают детализировать требования даже без формальной документации.
  4. Анализ конкурентов: Изучение продуктов-аналогов может дать представление о стандартных функциях и возможностях, которые ожидаются от аналогичных систем. Это помогает выявить неявные требования, которые могут быть не очевидны изначально.
  5. Проведение сессий мозгового штурма: Совместные сессии с командой проекта могут помочь сгенерировать идеи и определить требования, на основе знаний и опыта участников.
  6. Прототипирование: Создание прототипов или MVP (минимально жизнеспособный продукт) позволяет на ранних этапах получить обратную связь от пользователей и уточнить требования на основе этой обратной связи.
  7. Техническая документация и API: Даже если нет прямой документации по требованиям, техническая документация по API или архитектуре системы может дать понимание о предполагаемых взаимодействиях и ограничениях.

Сбор требований — это итеративный процесс. Требования могут меняться и уточняться по мере развития проекта и получения новой информации.

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

https://easyoffer.ru/question/7827

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

Что будешь делать если баг воспроизводится после исправления

25%

A

Если баг воспроизводится после того, как сообщили о его исправлении, это требует четкой и структурированной реакции со стороны QA инженера. Вот основные шаги, которые следует предпринять:

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

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

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

https://easyoffer.ru/question/7828

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

Что описывается в тест плане

25%

A

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

  1. Введение: Краткое описание проекта и тестового плана, цели тестирования.
  2. Объекты тестирования: Перечисление компонентов или функциональностей программного обеспечения, которые подлежат тестированию.
  3. Задачи тестирования: Четкое определение задач, которые должны быть выполнены в рамках тестового плана. Это может включать как функциональное, так и нефункциональное тестирование.
  4. Ответственные за тестирование: Список всех участников процесса тестирования с указанием их ролей и ответственности.
  5. Методология тестирования: Описание подходов и методик тестирования, которые будут использоваться для проверки соответствия программного обеспечения требованиям и спецификациям.
  6. Критерии начала и завершения тестирования: Определение условий, при которых начинается и завершается тестирование, включая критерии готовности к тестированию и критерии успешности.
  7. Ресурсы: Перечень всех ресурсов, необходимых для тестирования, включая программное и аппаратное обеспечение, а также любые специфические требования к тестовому окружению.
  8. План и график тестирования: Расписание тестовых мероприятий и оценка времени, необходимого для их выполнения.
  9. Управление рисками: Оценка потенциальных рисков для проекта тестирования с указанием их вероятности и возможных последствий, а также план действий по их минимизации или устранению.
  10. Процедуры отслеживания и отчетности: Описание процесса документирования обнаруженных дефектов, методов отслеживания их статуса, а также процедур подготовки и предоставления отчетов о ходе тестирования.
  11. Предметы и материалы для тестирования: Список всех документов и материалов, которые будут использоваться в процессе тестирования, включая требования, спецификации, руководства пользователя и т.д.
  12. План обучения и подготовки: Если для выполнения тестирования необходимы специальные знания или навыки, в тест-плане указываются мероприятия по обучению и подготовке соответствующих специалистов.

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

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

https://easyoffer.ru/question/7829

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

Что можешь рассказать про SQL

25%

A

SQL, или Structured Query Language (Структурированный язык запросов), — это стандартизированный язык, используемый для управления реляционными базами данных и выполнения различных операций с данными в них. Он позволяет выполнять запросы к базе данных, чтобы извлекать, обновлять, вставлять и удалять данные. Он также используется для создания и модификации структуры базы данных, а также управления данными и доступом к ним.

Основные характеристики:

  • Универсальность: Является стандартным языком для всех реляционных баз данных, что означает, что знание SQL позволяет работать с большинством современных систем управления базами данных, таких как MySQL, PostgreSQL, SQL Server, Oracle и многих других.
  • Декларативность: В отличие от процедурных языков программирования, в нем вы описываете, что хотите сделать, а не как достичь этого результата. Это делает его относительно легким для изучения и использования.
  • Мощность: Обладает большими возможностями для выполнения сложных запросов, включая операции соединения таблиц, агрегации данных и подзапросы, что позволяет эффективно обрабатывать большие объемы данных.

Основные операции:

  • SELECT: Извлечение данных из одной или нескольких таблиц.
  • INSERT: Вставка новых данных в таблицу.
  • UPDATE: Обновление существующих данных в таблице
  • DELETE: Удаление данных из таблицы.
  • CREATE DATABASE/TABLE: Создание новой базы данных или таблицы.
  • ALTER TABLE: Модификация структуры существующей таблицы, например, добавление или удаление столбцов.
  • DROP DATABASE/TABLE: Удаление базы данных или таблицы.

Примеры:

  1. SELECT: Выбрать всех пользователей из таблицы users.

` SELECT * FROM users;`

  1. INSERT: Добавить нового пользователя в таблицу users.

` INSERT INTO users (username, email) VALUES (‘newuser’, ‘newuser@example.com’);`

  1. UPDATE: Обновить адрес электронной почты пользователя в таблице users.

` UPDATE users SET email = ‘updateduser@example.com’ WHERE username = ‘newuser’;`

  1. DELETE: Удалить пользователя из таблицы users.

` DELETE FROM users WHERE username = ‘newuser’;`

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

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

https://easyoffer.ru/question/7830

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

Что такое Quality Assurance ( QA )

25%

A

Quality Assurance (QA), или Обеспечение Качества, — это систематический процесс, направленный на обеспечение того, чтобы продукт или услуга соответствовали определенным стандартам качества и требованиям клиентов. Цель — предотвратить дефекты в продуктах и процессах разработки еще на ранних этапах, до того как продукт попадет к конечному пользователю. Это достигается за счет внедрения стандартных процедур и методик на всех этапах разработки и производства.

Основные аспекты:

  • Планирование качества: Определение стандартов качества, которых должен достичь продукт, и разработка планов по их достижению.
  • Контроль качества (QC): Практические действия и процедуры, направленные на обнаружение дефектов в продукте или процессе. QC часто путают с QA, но контроль качества фокусируется на обнаружении и исправлении проблем, в то время как оно направлено на предотвращение их возникновения.
  • Управление качеством проекта: Включает в себя планирование, организацию, мониторинг и корректировку действий и процессов, чтобы обеспечить достижение требований к качеству.
  • Аудит и оценка качества: Регулярные проверки и оценки процессов и продуктов на соответствие установленным стандартам и требованиям.

Необходим для:

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

Примеры :

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

Quality Assurance (QA) — это процесс, направленный на предотвращение дефектов в продуктах и процессах разработки путем внедрения стандартов и процедур качества. Основная цель QA — обеспечить, чтобы продукт соответствовал требованиям и ожиданиям клиентов, тем самым повышая доверие к продукту и снижая затраты на его доработку.

https://easyoffer.ru/question/7831

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

Расскажи про join’ы

25%

A

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

INNER JOIN
Возвращает строки, когда есть хотя бы одно совпадение в обеих таблицах. Если “совпадений” нет, то результаты не будут включены в итоговый набор.

Пример:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

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

LEFT JOIN (или LEFT OUTER JOIN)
Возвращает все строки из левой таблицы (таблицы, указанной перед JOIN), и совпадающие строки из правой таблицы. Для строк из левой таблицы, для которых нет совпадений в правой таблице, результат будет содержать NULL на месте столбцов правой таблицы.

Пример:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Этот запрос возвращает список всех заказов вместе с именами клиентов. Если для заказа нет клиента, имя клиента будет NULL.

RIGHT JOIN (или RIGHT OUTER JOIN)
Работает аналогично LEFT JOIN, но возвращает все строки из правой таблицы, и совпадающие строки из левой таблицы. Для строк из правой таблицы, для которых нет совпадений в левой таблице, результат будет содержать NULL на месте столбцов левой таблицы.

Пример:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Этот запрос возвращает список всех клиентов вместе с заказами. Если у клиента нет заказов, OrderID будет NULL.

FULL JOIN (или FULL OUTER JOIN)
Возвращает строки, когда существует совпадение хотя бы в одной из таблиц. То есть, он возвращает все строки из обеих таблиц, соединяя их там, где это возможно, и помещая NULL на местах без совпадений.

Пример:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Этот запрос возвращает список всех заказов и всех клиентов, соединяя их там, где есть совпадения по CustomerID.

CROSS JOIN
Создает декартово произведение двух таблиц, т.е., он возвращает все возможные комбинации строк из обеих таблиц. Этот тип JOIN не требует условия соединения.

Пример:

SELECT Customers.CustomerName, Products.ProductName
FROM Customers
CROSS JOIN Products;

Этот запрос возвращает все возможные комбинации клиентов и продуктов.

Каждый тип JOIN используется в зависимости от задачи: чтобы получить только совпадающие строки из обеих таблиц, используется INNER JOIN; чтобы получить все строки из одной таблицы и совпадающие из другой, применяется LEFT JOIN или RIGHT JOIN; FULL JOIN позволяет получить полное соединение двух таблиц, а CROSS JOIN — декартово произведение строк таблиц.

https://easyoffer.ru/question/7832

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

Почему выбрал тестирование

25%

A

https://easyoffer.ru/question/7824

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

Что такое эквивалентное разделение

25%

A

Эквивалентное разделение (Equivalence Partitioning) — это техника тестирования ПО, используемая для сокращения количества тестовых случаев, необходимых для полного тестирования функционала, путем разделения данных на эквивалентные группы или классы. Целью такого разделения является уменьшение общего объема тестирования, сохраняя при этом его эффективность, поскольку предполагается, что обработка одного элемента из каждой группы (или раздела) будет представлять обработку всех элементов этой группы.

Принципы:

  • Определение эквивалентных классов: Входные данные или условия тестирования разделяют на классы, внутри которых система должна вести себя одинаково. Эти классы могут быть как допустимыми (валидными), так и недопустимыми (невалидными).
  • Выбор представителей: Для каждого эквивалентного класса выбирается хотя бы один представитель (тестовый случай), который будет использован в тестировании.
  • Тестирование: Проводится тестирование на основе выбранных представителей каждого класса. Результаты тестирования для представителя класса экстраполируются на весь класс.

Пример:

Представим функцию, принимающую возраст пользователя в виде числа от 1 до 100. Здесь можно выделить три эквивалентных класса:

  • Допустимый класс: возраст от 1 до 100 (система должна принять значение).
  • Недопустимый класс 1: возраст меньше 1 (система должна отклонить значение).
  • Недопустимый класс 2: возраст больше 100 (система также должна отклонить значение).

Выбрав по одному представителю из каждого класса, например, 25 (допустимый возраст), 0 (недопустимый возраст меньше 1) и 101 (недопустимый возраст больше 100), можно эффективно проверить обработку входных данных различными частями программы, минимизировав при этом количество необходимых тестов.

Преимущества:

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

Ограничения

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

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

https://easyoffer.ru/question/7825

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

Какой статус показывает отказ разработчика исправлять баг

22%

A

Статус, показывающий отказ разработчика исправлять баг, может варьироваться в зависимости от используемой системы управления проектами или баг-трекера. Тем не менее, существуют общепринятые статусы, которые обычно используются для отражения такой ситуации. Один из наиболее часто используемых статусов для этого — “Won’t Fix” (не будет исправлен).

Описание статусов отказа от исправления бага:

  • Won’t Fix (Не будет исправлен): Этот статус указывает на то, что, хотя баг может быть подтвержден, разработчики или руководство проекта приняли решение не исправлять его по какой-либо причине. Причины могут включать в себя ограничения ресурсов, низкий приоритет ошибки, сложность исправления или решение, что текущее поведение продукта остается предпочтительным.
  • As Designed (Работает как задумано): Иногда баг оказывается не багом вовсе, а особенностью реализации. В таких случаях может использоваться статус “As Designed”, что означает, что поведение системы соответствует задумке разработчиков, и изменение не требуется.
  • Duplicate (Дубликат): Если баг является дубликатом другого уже известного и, возможно, исправляемого или не исправляемого бага, он может быть закрыт как “Duplicate”. Хотя это не прямой отказ от исправления, это указывает на то, что дополнительные действия по этому конкретному баг-репорту не будут предприняты.
  • Not Reproducible (Не воспроизводится): В случае, если разработчики не могут воспроизвести баг в своей среде, они могут закрыть его со статусом “Not Reproducible”. Это не всегда означает отказ от исправления, но указывает на то, что без возможности воспроизведения исправления не будет.
  • Deferred (Отложен): Этот статус используется, когда решено отложить исправление бага на более поздний срок, возможно, из-за его низкого приоритета или в связи с планами на будущие обновления продукта. Хотя это не окончательный отказ от исправления, баг может оставаться неисправленным на неопределенный срок.

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

https://easyoffer.ru/question/7837

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

Что такое позитивное тестирование

22%

A

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

Особенности:

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

Пример:

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

Важность:

Позитивное тестирование позволяет убедиться, что:

  • Функциональность системы соответствует требованиям и ожиданиям.
  • Система стабильно работает при нормальных условиях эксплуатации.
  • Пользователи могут успешно выполнить предполагаемые действия без препятствий.

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

https://easyoffer.ru/question/7833

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

Расскажи про нефункциональные виды тестирования

22%

A

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

Виды:

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

Зачем оно нужно?

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

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

https://easyoffer.ru/question/7834

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

Техника анализа граничных значений можешь о ней рассказать

22%

A

Техника анализа граничных значений (Boundary Value Analysis, BVA) — это метод тестирования ПО, который сосредотачивается на проверке поведения системы на границах допустимых входных данных. Этот метод основан на наблюдении, что ошибки часто происходят на границах диапазонов входных значений, а не внутри диапазонов. Поэтому, приоритетом является тестирование условий на краях диапазона значений, а также непосредственно вне этих границ.

Основные принципы:

  • Тестирование на минимальной и максимальной границе: Если у вас есть диапазон значений от 1 до 100, техника BVA предполагает тестирование с использованием значений 1 и 100, так как они представляют собой граничные значения диапазона.
  • Тестирование за пределами границ: Помимо тестирования граничных значений внутри диапазона, также рекомендуется тестирование значений непосредственно за границами диапазона, например, 0 и 101 в данном случае. Это помогает проверить, как система будет реагировать на недопустимые входные данные.
  • Тестирование значений вокруг “особых” точек: Если в спецификациях указаны особые значения (например, ограничения на ввод, при которых изменяется поведение системы), то важно тестировать значения вокруг этих точек.

Пример:

Предположим, у нас есть поле ввода для возраста пользователя, допустимый диапазон которого от 18 до 65 лет включительно. Согласно технике анализа граничных значений, следует тестировать следующие значения:

  • 17 (значение непосредственно за нижней границей диапазона),
  • 18 (нижняя граница диапазона),
  • 65 (верхняя граница диапазона),
  • 66 (значение непосредственно за верхней границей диапазона).

Почему она важна:

  • Высокая эффективность: Тестирование граничных значений позволяет обнаружить большое количество ошибок с минимальным количеством тестов.
  • Экономия времени и ресурсов: Сосредоточение усилий на наиболее вероятных местах возникновения ошибок позволяет сократить время, необходимое для тестирования, и оптимизировать использование ресурсов.
  • Улучшение качества продукта: Помогает гарантировать, что приложение корректно обрабатывает данные на границах допустимых значений, что является критически важным для функциональности и удобства пользователя.

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

https://easyoffer.ru/question/7835

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

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

22%

A

Тестирование инсталляции (Installation Testing) — это процесс проверки, успешно ли устанавливается, настраивается и запускается приложение или система на целевой платформе или устройстве. Этот вид тестирования обеспечивает, что пользователи могут без проблем установить и начать использовать продукт в соответствии с предоставленными инструкциями. Оно является частью процесса обеспечения качества и помогает выявить возможные проблемы, связанные с процедурой установки, которые могут препятствовать правильной работе программного обеспечения.

Основные аспекты:

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

Зачем оно нужно?

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

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

https://easyoffer.ru/question/7836

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

В чем разница тест-кейса и чек-листа

22%

A

Тест-кейс и чек-лист являются инструментами в области тестирования ПО, но они служат разным целям и используются в различных контекстах.

Тест-кейс

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

Особенности:

  • Подробное описание процедуры тестирования.
  • Четко определенные шаги.
  • Ожидаемые результаты для каждого шага.
  • Предназначен для повторного использования в разных циклах тестирования.

Чек-лист

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

Особенности:

  • Список проверок без подробных инструкций.
  • Гибкость в использовании.
  • Может не содержать ожидаемых результатов.
  • Подходит для общего обзора тестирования и помощи в организации тестов.

Различия

  • Детализация: Тест-кейс содержит подробные шаги и ожидаемые результаты, в то время как чек-лист представляет собой простой список элементов для проверки.
  • Цель использования: Тест-кейсы разработаны для детального тестирования функциональности и обеспечения полного покрытия тестами. Чек-листы же чаще используются для быстрой проверки или в качестве напоминания о том, что нужно протестировать.
  • Гибкость: Чек-листы более гибкие и могут быть легко адаптированы под разные задачи и условия тестирования. Тест-кейсы, с другой стороны, требуют точного следования предписанным шагам.

И тест-кейсы, и чек-листы являются важными инструментами, выбор между которыми зависит от конкретной задачи, целей тестирования и требуемой глубины проверки.

https://easyoffer.ru/question/7838

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

Расскажи про кросс-браузерное тестирование

20%

A

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

Основные аспекты:

  • Совместимость с браузерами: Проверка веб-сайтов и приложений на совместимость с популярными веб-браузерами, такими как Google Chrome, Mozilla Firefox, Safari, Microsoft Edge и другими.
  • Совместимость с операционными системами: Убедиться, что веб-приложения работают корректно на различных операционных системах, включая Windows, macOS, Linux, Android и iOS.
  • Адаптивность и отзывчивость: Проверка того, как веб-приложение или сайт адаптируется к различным размерам экранов и разрешениям, включая настольные компьютеры, ноутбуки, планшеты и смартфоны.
  • Функциональность: Убедиться, что все функции веб-сайта работают одинаково хорошо во всех браузерах и на всех платформах.
  • Визуальное отображение: Проверка того, что элементы дизайна (как статические, так и динамические) отображаются корректно в разных браузерах.

Методы:

  1. Ручное тестирование: Непосредственное тестирование веб-сайта или приложения в различных браузерах и на разных устройствах вручную. Это может быть трудоемко, но позволяет точно оценить пользовательский опыт.
  2. Автоматизированное тестирование: Использование специализированных инструментов и фреймворков для автоматизации процесса тестирования. Это повышает эффективность и покрытие тестирования, позволяя быстро проверять веб-приложение на большом количестве комбинаций браузеров и операционных систем.
  3. Использование облачных сервисов: Платформы, такие как BrowserStack и Sauce Labs, предоставляют доступ к множеству браузеров и операционных систем в облаке, позволяя тестировать веб-приложения без необходимости иметь все эти браузеры и устройства физически.

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

https://easyoffer.ru/question/7841

41
Q

Что такое негативное тестирование

20%

A

Проверка, что приложение работает если:

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

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

Основные аспекты:

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

Значение:

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

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

https://easyoffer.ru/question/7842

42
Q

Что такое серый ящик в тестировании

20%

A

Тестирование “серого ящика” (Grey Box Testing) представляет собой гибридный подход к тестированию ПО, который сочетает в себе элементы тестирования “черного ящика” и “белого ящика”. При тестировании “черного ящика” тестировщик сосредотачивается на внешнем поведении системы, не зная её внутреннего устройства, в то время как при тестировании “белого ящика” тестировщик имеет доступ к внутренней структуре, коду и алгоритмам приложения.

Особенности:

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

Преимущества:

  • Эффективность: Позволяет более эффективно планировать тесты, зная архитектуру системы.
  • Выявление специфических ошибок: Упрощает обнаружение ошибок, связанных с внутренним взаимодействием компонентов системы.
  • Комплексный подход: Предоставляет комплексный подход к тестированию, объединяя понимание внутренней логики с тестированием функциональности.
  • Безопасность: Особенно эффективен для выявления уязвимостей безопасности, поскольку знание архитектуры помогает в идентификации потенциальных точек риска.

Пример:

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

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

https://easyoffer.ru/question/7843

43
Q

Расскажи про атрибуты чек-листа

20%

A

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

  1. Заголовок или Название
    Описывает, что именно проверяется данным чек-листом. Заголовок должен быть ясным и точным, чтобы сразу было понятно, к какому аспекту или функционалу относится чек-лист.
  2. Описание
    Краткое описание цели чек-листа. Может включать информацию о том, для какого проекта или части проекта он предназначен, и какие задачи должен помочь выполнить.
  3. Дата и Версия
    Дата создания или последнего обновления чек-листа, а также версия документа помогают отслеживать актуальность информации и управлять версиями чек-листов.
  4. Автор
    Имя или идентификатор человека (или группы людей), создавшего чек-лист. Это важно для обратной связи и возможных уточнений.
  5. Пункты для проверки
    Сердце чек-листа — список элементов или аспектов, которые нужно проверить. Каждый пункт должен быть сформулирован четко и конкретно, чтобы избежать двусмысленности в трактовке.
  6. Статус выполнения
    Для каждого пункта чек-листа предусмотрено место для отметки о выполнении. Это может быть просто галочка или более детализированное обозначение статуса (например, “Проверено”, “Не применимо”, “Требует доработки”).
  7. Комментарии
    Раздел для заметок и комментариев по каждому пункту. Здесь тестировщик может указать обнаруженные проблемы, особенности или предложения по улучшению проверяемого аспекта.
  8. Приоритеты
    В некоторых чек-листах могут быть указаны приоритеты для различных тестов или проверок, что помогает оптимизировать процесс тестирования, сосредотачиваясь на наиболее критических аспектах.
  9. Результаты
    Раздел для итогов проверки. Может включать общий статус (например, “Готово к релизу”, “Требуются исправления”) и рекомендации.

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

https://easyoffer.ru/question/7844

44
Q

Что происходит в конце спринта

20%

A

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

  1. Спринт-ревью (Sprint Review)
    На встрече спринт-ревью команда демонстрирует продукт или достигнутые результаты работы за спринт заинтересованным сторонам (stakeholders). Это позволяет получить обратную связь и определить, что еще нужно улучшить или изменить в продукте. Спринт-ревью не является формальным “показом достижений”; скорее, это рабочая сессия, нацеленная на обсуждение и планирование следующих шагов.
  2. Спринт-ретроспектива (Sprint Retrospective)
    После спринт-ревью команда проводит ретроспективу спринта, чтобы обсудить, что хорошо работало, что могло бы быть улучшено и какие действия можно предпринять для улучшения процессов в следующем спринте. Ретроспектива способствует непрерывному улучшению рабочего процесса команды. В отличие от ревью, ретроспектива фокусируется на процессе работы, а не на продукте.
  3. Планирование следующего спринта (Sprint Planning)
    Хотя планирование следующего спринта технически является началом нового спринта, подготовка к нему часто начинается уже в конце текущего спринта. На встрече по планированию спринта команда выбирает задачи из продуктового бэклога, которые они собираются выполнить в следующем спринте, исходя из приоритетов продукта и обратной связи от заинтересованных сторон.
  4. Обновление бэклога продукта
    На основе обратной связи, полученной во время спринт-ревью, и выводов из ретроспективы продуктовый владелец (Product Owner) может внести изменения в бэклог продукта. Это может включать переприоритизацию существующих задач, добавление новых задач или удаление задач, которые больше не считаются релевантными.

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

https://easyoffer.ru/question/7845

45
Q

Расскажи про тест план

20%

A

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

Основные элементы:

  1. Введение: Краткое описание проекта и целей тестирования.
  2. Объекты тестирования: Список компонентов или функций программного обеспечения, которые будут тестироваться.
  3. Задачи тестирования: Четкое определение целей тестирования, включая что должно быть протестировано и что должно быть достигнуто в результате тестирования.
  4. Область тестирования и исключения: Описание того, что будет тестироваться, а также того, что будет исключено из тестирования.
  5. Подход к тестированию: Описание методологии и техник тестирования, которые будут использоваться, включая уровни тестирования (например, модульное, интеграционное, системное, приемочное).
  6. Критерии начала и завершения тестирования: Определение условий, при которых тестирование начнется и завершится.
  7. Ресурсы: Перечень всех необходимых ресурсов для тестирования, включая персонал, тестовое оборудование, и тестовые данные.
  8. Ответственные: Распределение ролей и обязанностей в команде тестирования.
  9. График тестирования: Временная шкала выполнения тестовых задач и этапов.
  10. Управление рисками: Оценка потенциальных рисков для плана тестирования и стратегии их минимизации.
  11. План выпуска тестов: Порядок выполнения тестов, включая зависимости между тестами.
  12. Требования к документированию: Описание того, как будут документироваться найденные дефекты, отчеты о тестировании и итоговые результаты.

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

https://easyoffer.ru/question/7846

46
Q

Расскажи про тестовую документацию

20%

A

https://easyoffer.ru/question/7840

47
Q

Что происходит с баг репортом после его создания

20%

A

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

  1. Проверка и подтверждение

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

  1. Приоритизация и назначение

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

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

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

https://easyoffer.ru/question/7847

48
Q

Расскажи о критериях начала тестирования

20%

A

Критерии начала тестирования, также известные как критерии входа (entry criteria), определяют условия, которые должны быть выполнены, прежде чем начнется фаза тестирования в процессе разработки ПО. Они помогают гарантировать, что тестирование начинается только тогда, когда продукт или его часть достаточно стабильны и готовы к тестовому анализу, что способствует более эффективному и организованному процессу тестирования. Определение четких критериев начала помогает сократить риск недопонимания и неэффективного использования ресурсов тестирования. Вот несколько общих критериев начала тестирования:

  1. Завершение разработки
    Разработка основного функционала или определенной части продукта должна быть завершена. Это включает в себя кодирование и первичное объединение компонентов системы.
  2. Доступность тестовой среды
    Тестовая среда, в которой будет проводиться тестирование, должна быть полностью настроена и готова к использованию, включая настройку оборудования, программного обеспечения и сетевой инфраструктуры.
  3. Доступность тестовых данных
    Необходимые тестовые данные должны быть подготовлены и доступны для использования в тестах. Это может включать в себя данные для баз данных, файлы для загрузки и другие ресурсы.
  4. Готовность тестовой документации
    Тестовые планы, тест-кейсы и чек-листы должны быть разработаны и утверждены. Документация должна полностью отражать предполагаемый объем тестирования.
  5. Доступность инструментов тестирования
    Все необходимые инструменты и программное обеспечение для тестирования должны быть установлены и настроены, включая системы управления тестированием, инструменты автоматизации тестов и системы отслеживания дефектов.
  6. Обучение персонала
    Тестировщики и другие участники процесса должны быть должным образом обучены и знакомы с продуктом, инструментами тестирования и процессами.
  7. Утверждение заинтересованных сторон
    Необходимо получить подтверждение от заинтересованных сторон о готовности продукта к тестированию, что может включать в себя менеджеров проекта, разработчиков и продуктовых владельцев.

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

https://easyoffer.ru/question/7848

49
Q

Из чего состоит запрос на сервере

20%

A

Запрос на сервер в контексте веб-разработки обычно осуществляется с использованием протокола HTTP или HTTPS и состоит из нескольких ключевых компонентов, которые сообщают серверу, что именно клиент (например, веб-браузер или мобильное приложение) хочет сделать, и какие данные он отправляет. Вот основные элементы запроса на сервер:

  1. Метод запроса
    Определяет тип операции, которую нужно выполнить. Наиболее распространенные методы HTTP включают:

GET для запроса данных от сервера.
POST для отправки данных на сервер для создания или обновления ресурса.
PUT для полного обновления существующего ресурса.
DELETE для удаления ресурса.
PATCH для частичного обновления ресурса.
2. URL (Uniform Resource Locator)
Указывает сервер и точный адрес (путь) ресурса на сервере, с которым клиент хочет взаимодействовать. URL включает в себя протокол (например, http или https), доменное имя или IP-адрес сервера, порт (опционально) и путь к ресурсу.

  1. Заголовки (Headers)
    Содержат дополнительную информацию о запросе и клиенте, отправляющем запрос. Заголовки могут включать тип содержимого (Content-Type), типы принимаемого содержимого (Accept), параметры аутентификации, куки (Cookies) и многое другое. Заголовки позволяют клиенту и серверу передавать дополнительные параметры и настройки.
  2. Тело запроса (Body)
    Необязательный компонент, присутствующий в некоторых типах запросов (например, POST, PUT, PATCH), содержащий отправляемые данные. В теле запроса могут находиться данные формы, файлы, JSON или XML-структуры и т. д. Тело запроса используется для передачи информации от клиента к серверу.
  3. Параметры запроса (Query Parameters)
    Опциональные ключи и значения, которые добавляются к URL запроса после знака вопроса (?). Параметры запроса используются для передачи дополнительной информации серверу, например, для фильтрации результатов или указания определённой страницы пагинации.

Например: ?page=1&limit=10.

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

Эти компоненты вместе формируют HTTP-запрос, который отправляется серверу. Сервер затем обрабатывает запрос согласно своей логике и отправляет ответ обратно клиенту, обычно также в форме, состоящей из статуса ответа, заголовков и тела ответа.

https://easyoffer.ru/question/7849

50
Q

Расскажи про методологии разработки agile

20%

A

Agile (гибкая разработка) — это набор принципов для разработки ПО, который поддерживает итеративный подход, с акцентом на гибкость, постоянную обратную связь, тесное сотрудничество между членами команды и быструю адаптацию к изменениям. Эти методологии противопоставляются традиционным водопадным (Waterfall) моделям, в которых процесс разработки более строго структурирован и последователен. В его основе лежит “Манифест гибкой разработки программного обеспечения”, опубликованный в 2001 году, который включает в себя четыре основных ценности и двенадцать принципов.

Четыре основные ценности:

  1. Люди и взаимодействие важнее процессов и инструментов. Командная работа и способность адаптироваться к изменениям ценятся выше, чем строгое следование предписанным процедурам.
  2. Работающий продукт важнее исчерпывающей документации. Хотя документация важна, приоритетом является создание работоспособного программного обеспечения.
  3. Сотрудничество с заказчиком важнее согласования условий контракта.Гибкая разработка предполагает тесное взаимодействие с клиентом и готовность к изменению требований даже на поздних этапах разработки.
  4. Готовность к изменениям важнее следования первоначальному плану.Agile акцентирует внимание на способности быстро адаптироваться к изменениям, а не на неизменном следовании заранее установленному плану.

Некоторые популярные Agile-методологии:

  • Scrum: Разбивает проект на короткие рабочие циклы (спринты), обычно длительностью от одной до четырех недель, с регулярными встречами для планирования, обзора проделанной работы и адаптации к изменениям.
  • Kanban: Сосредоточен на управлении потоком задач с помощью визуального представления работы на доске Kanban, что позволяет команде контролировать процесс разработки и быстро реагировать на изменения.
  • Extreme Programming (XP): Акцентирует внимание на технических аспектах разработки, таких как программирование парами, разработка через тестирование (Test-Driven Development, TDD), частые релизы и принятие простых решений.
  • Lean: Фокусируется на максимизации ценности для клиента при минимальных затратах, исключая все виды потерь в процессе разработки (ненужные функции, задержки, переработки).

Преимущества:

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

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

https://easyoffer.ru/question/7850

51
Q

Что такое rest api

20%

A

REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль взаимодействия компонентов распределенной системы через интернет. Он предлагает набор ограничений для создания веб-сервисов, которые используют стандартные HTTP-методы для обмена данными между клиентом и сервером. Этот стиль был введен Роем Филдингом в его докторской диссертации в 2000 году и быстро стал популярным благодаря своей простоте, масштабируемости и гибкости.

Основные принципы:

  1. Клиент-серверная архитектура: Разделение ответственности между клиентом (который запрашивает данные) и сервером (который предоставляет данные) улучшает масштабируемость и упрощает компоненты.
  2. Без сохранения состояния (Stateless): Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для его выполнения. Сервер не сохраняет состояние клиента между запросами, что упрощает архитектуру.
  3. Кэширование: Ответы сервера должны быть явно помечены как кэшируемые или некэшируемые, что уменьшает нагрузку на сервер и улучшает производительность за счет уменьшения задержки ответа.
  4. Единообразный интерфейс: Определяет интерфейс взаимодействия между клиентом и сервером, упрощая и декапсулируя архитектуру системы.
  5. Система слоев: Клиент не может знать, общается ли он непосредственно с сервером или с промежуточным узлом, что улучшает масштабируемость системы за счет использования балансировщиков нагрузки, кэшей и т.д.
  6. Код по требованию (необязательно): Сервер может временно расширять или настраивать функциональность клиента, передавая ему исполняемый код.

Особенности:

  • Использование стандартных HTTP-методов: Таких как GET для получения данных, POST для создания новых ресурсов, PUT для обновления существующих ресурсов, DELETE для удаления ресурсов и т.д.
  • Работа с ресурсами: Каждый уникальный URL представляет собой некий ресурс, который может быть представлен в формате JSON, XML или других форматах.
  • Безопасность и авторизация: Хотя он сам по себе не определяет механизмов безопасности, обычно используются стандартные методы, такие как HTTPS, OAuth и токены JSON Web Token (JWT) для обеспечения безопасности данных и авторизации доступа.

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

https://easyoffer.ru/question/7851

52
Q

Что помнишь об авторизации

20%

A

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

Механизмы включают:

  • Ролевой доступ (Role-Based Access Control, RBAC): Доступ к ресурсам и операциям контролируется на основе ролей пользователей. Пользователям назначаются роли, и каждой роли присваивается набор разрешений на выполнение определённых действий.
  • Атрибутная авторизация (Attribute-Based Access Control, ABAC): Доступ к ресурсам контролируется на основе политик, которые учитывают атрибуты пользователя, ресурса и контекста (например, время суток или IP-адрес).
  • Мандатный контроль доступа (Mandatory Access Control, MAC): Система управления доступом, в которой доступ к ресурсам определяется на основе информационных классификаций (например, секретно, конфиденциально) и разрешений, установленных центральным органом управления.
  • Дискреционный контроль доступа (Discretionary Access Control, DAC): Владелец ресурса или системы определяет, кто может иметь доступ к этим ресурсам и какие операции могут быть выполнены.

Процесс обычно включает следующие шаги:

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

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

https://easyoffer.ru/question/7852

53
Q

Какие существуют типы баз данных

20%

A

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

  1. Реляционные базы данных (RDBMS)
    Это самый традиционный, где данные хранятся в таблицах, а отношения между данными определяются с помощью ключей. Реляционные базы данных используют язык SQL для создания, модификации, управления и запроса данных. Примеры включают PostgreSQL, MySQL, Oracle и Microsoft SQL Server.
  2. Нереляционные базы данных (NoSQL)
    NoSQL-базы данных предлагают более гибкую схему данных и часто используются для хранения неструктурированных или полуструктурированных данных. Они могут быть подразделены на несколько типов:

Документо-ориентированные: Хранят информацию в формате JSON, BSON или XML. Примеры: MongoDB, CouchDB.
Ключ-значение: Данные хранятся в виде пар ключ-значение. Примеры: Redis, DynamoDB.
Графовые базы данных: Специализированные на хранении и обработке графов (сетей) данных. Примеры: Neo4j, Amazon Neptune.
Базы данных широких столбцов: Оптимизированы для чтения и записи больших объёмов данных. Примеры: Cassandra, HBase.
3. Объектно-ориентированные базы данных
В таких БД информация хранится в виде объектов, а не в таблицах. Это позволяет использовать в базе данных те же концепции, что и в объектно-ориентированном программировании. Примеры: db4o, ObjectDB.

  1. Иерархические базы данных
    Данные организованы в структуру дерева, где каждый элемент имеет одного родителя и может иметь множество детей. Этот тип был популярен в ранние годы развития баз данных, но сейчас используется реже.
  2. Сетевые базы данных
    Подобно иерархическим, но каждый элемент может иметь несколько родителей. Это позволяет создавать более сложные отношения между данными.
  3. Распределённые базы данных
    Это системы, которые управляют данными, распределёнными по нескольким местам, будь то на разных серверах или в разных географических локациях. Распределённые базы данных обеспечивают высокую доступность и масштабируемость. Примеры: Cassandra, CockroachDB.
  4. Временные ряды базы данных
    Специализированный тип баз данных, оптимизированный для хранения и анализа последовательностей данных, измеренных через равные промежутки времени. Примеры: InfluxDB, TimescaleDB.

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

https://easyoffer.ru/question/7853

54
Q

Какие знаешь статус коды

20%

A

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

1xx: Информационные

100 Continue: Промежуточный ответ, указывающий, что начальная часть запроса принята и клиент может продолжать отправку данных.
101 Switching Protocols: Сервер соглашается переключить протоколы в соответствии с запросом клиента, отправленным в заголовке Upgrade.

2xx: Успешные

200 OK: Стандартный ответ для успешных HTTP-запросов. Ресурс успешно обработан и передан в теле ответа.
201 Created: Запрос был успешно выполнен, и в результате был создан новый ресурс.
204 No Content: Запрос успешно обработан, но в ответе нет содержимого.

3xx: Перенаправления

301 Moved Permanently: Запрашиваемый ресурс был окончательно перемещен на URL, указанный в заголовке Location. Клиент должен использовать этот новый URL в будущем.
302 Found: Запрашиваемый ресурс временно находится по другому URI, указанному в заголовке Location.
304 Not Modified: Ресурс не был изменен с момента последнего запроса клиента, использующего условные заголовки типа If-Modified-Since или If-None-Match.

4xx: Ошибки клиента

400 Bad Request: Сервер не может обработать запрос из-за неверного синтаксиса.
401 Unauthorized: Для доступа к запрашиваемому ресурсу требуется аутентификация.
403 Forbidden: Сервер понял запрос, но отказывается его авторизовать.
404 Not Found: Запрашиваемый ресурс не найден на сервере.
405 Method Not Allowed: Метод, указанный в запросе, не поддерживается для данного ресурса.

5xx: Ошибки сервера

500 Internal Server Error: Общая ошибка сервера, когда сервер сталкивается с непредвиденными обстоятельствами.
501 Not Implemented: Сервер не поддерживает функциональные возможности, необходимые для обработки запроса.
502 Bad Gateway: Сервер, выступая в роли шлюза или прокси, получил неверный ответ от вышестоящего сервера.
503 Service Unavailable: Сервер временно не может обработать запрос из-за перегрузки или технического обслуживания.
504 Gateway Timeout: Шлюз или прокси-сервер не получил вовремя ответ от вышестоящего сервера для завершения запроса.

Эти статусные коды являются частью протокола HTTP и используются веб-серверами для коммуникации с клиентами (например, веб-браузерами) о состоянии и результатах обработки их запросов.

https://easyoffer.ru/question/7839

55
Q

Расскажи что такое идемпотентность

17%

A

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

В контексте HTTP методы:

Определяет несколько методов запросов, некоторые из которых являются идемпотентными, а некоторые — нет. Такие HTTP-методы гарантируют, что повторное выполнение запросов будет безопасным и не приведёт к дополнительным изменениям на сервере (кроме возможного первого изменения). К данным методам относятся:

  • GET: Используется для запроса данных с сервера. GET должен быть безопасным и идемпотентным, что означает отсутствие изменений данных.
  • PUT: Заменяет все текущие представления ресурса на загружаемый контент. Если ресурс не существует, PUT может создать его. PUT считается идемпотентным, потому что независимо от того, сколько раз запрос будет выполнен, состояние сервера будет одинаковым.
  • DELETE: Удаляет указанный ресурс. Повторное выполнение DELETE на том же ресурсе не изменит состояние сервера после первого успешного удаления.
  • HEAD: Такой же, как и GET, но без тела ответа. Используется для извлечения заголовков.
  • OPTIONS: Описывает параметры связи для целевого ресурса.

Методы, которые не являются идемпотентными:

  • POST: Используется для создания нового ресурса. Поскольку повторные

POST-запросы могут создавать новые ресурсы или инициировать новые процессы каждый раз при выполнении, этот метод не считается идемпотентным.

Идемпотентность важна для разработки надёжных и предсказуемых веб-сервисов и API. Она позволяет клиентам повторно отправлять запросы (например, в случае сбоя сети или других ошибок) без беспокойства о вызове нежелательных побочных эффектов, таких как создание дублирующихся записей. Это свойство также играет ключевую роль в сферах, где требуется высокая надёжность и стабильность систем, например, в банковских и финансовых приложениях, где повторные транзакции могут привести к серьёзным проблемам.

https://easyoffer.ru/question/7869

56
Q

Расскажи про API тестирование

17%

A

API тестирование — это процесс проверки Application Programming Interfaces (APIs) на корректность работы, безопасность, производительность и надежность. Он представляет собой набор определений и протоколов для создания и интеграции программного обеспечения, позволяя различным приложениям взаимодействовать друг с другом без необходимости знать детали их реализации.

Основные аспекты:

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

Преимущества:

  • Раннее обнаружение ошибок: Данное тестирование позволяет идентифицировать проблемы на раннем этапе разработки, что упрощает и удешевляет их исправление.
  • Автоматизация: Большинство таких тестов можно автоматизировать, что ускоряет процессы тестирования и повышает их эффективность.
  • Языконезависимость: Может проводиться независимо от языка программирования приложения, так как API предоставляет стандартизированный интерфейс доступа.
  • Точное тестирование: Позволяет точно проверить бизнес-логику приложения, минуя пользовательский интерфейс.

Существует множество инструментов для автоматизации тестирования API, включая:

  • Postman: Для его разработки и тестирования, поддерживающий множество функций для отправки запросов и анализа ответов.
  • SoapUI: Для тестирования веб-сервисов, поддерживающий как REST, так и SOAP API.
  • Swagger или OpenAPI: Для его документирования, которые также могут быть использованы для создания живых интерфейсов для тестирования.
  • Apache JMeter: Для тестирования производительности, который также может быть использован для функционального тестирования API.

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

https://easyoffer.ru/question/7854

57
Q

Расскажи про автоматизацию

17%

A

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

Применение:

  • Тестирование ПО: Тестирования включает создание скриптов или использование инструментов для автоматического выполнения тестовых сценариев, проверки функциональности, производительности и безопасности приложений. Это уменьшает потребность в ручном тестировании и позволяет более часто выполнять тесты, особенно в контексте непрерывной интеграции и доставки (CI/CD).
  • Разработка ПО: Использование инструментов для автоматизации сборки и развертывания приложений, управления зависимостями, форматирования кода и других аспектов разработки.
  • Мониторинг и администрирование систем: Сбора логов, мониторинга состояния системы, управления конфигурациями и внедрения обновлений.
  • Обработка данных: Процессов ETL (извлечение, трансформация, загрузка), аналитических запросов и генерации отчетов для ускорения обработки и анализа больших объемов данных.

Преимущества:

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

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

https://easyoffer.ru/question/7855

58
Q

Расскажи про типы приложений

17%

A

На сайте пусто, надо найти

https://easyoffer.ru/question/7856

59
Q

Расскажи про continuous Integration ( CI )

17%

A

Continuous Integration (CI) или Непрерывная интеграция — это практика в разработке ПО, при которой код, написанный разработчиками, автоматически интегрируется в общую кодовую базу несколько раз в день. Главная цель — ускорить процесс разработки и обеспечить его более высокое качество за счёт раннего обнаружения и устранения ошибок, улучшения совместимости кода и автоматизации тестирования.

Ключевые аспекты:

  • Автоматическая сборка и тестирование: Каждый раз при добавлении нового кода в репозиторий автоматически выполняется сборка проекта и запускаются тесты, что позволяет быстро выявлять и исправлять ошибки, а также снижает риски связанные с интеграцией.
  • Централизованное управление версиями: Все изменения кода сохраняются в централизованном репозитории (например, Git), что облегчает совместную работу и откат изменений при необходимости.
  • Мониторинг и уведомления: Система CI отслеживает состояние сборки и тестирования, автоматически уведомляя команду о проблемах, что позволяет оперативно реагировать на ошибки.
  • Документация и отчетность: Системы CI предоставляют отчеты и логи выполнения сборок и тестов, что упрощает анализ проблем и планирование дальнейших действий.

Преимущества:

  • Ускорение процесса разработки и улучшение качества продукта: Благодаря автоматизации сборки и тестирования, а также раннему выявлению ошибок.
  • Сокращение времени на интеграцию: Непрерывная интеграция уменьшает сложность слияния изменений и устраняет проблемы совместимости кода.
  • Улучшение обратной связи: Команда разработки получает мгновенную обратную связь о состоянии кода, что позволяет быстро реагировать на проблемы.
  • Повышение транспарентности процесса разработки: Все участники проекта видят текущее состояние кодовой базы и результаты тестирования.

Инструменты для непрерывной интеграции:

Существует множество инструментов, поддерживающих практику CI, включая Jenkins, Travis CI, GitLab CI/CD, CircleCI и другие. Эти инструменты позволяют настроить процесс интеграции и тестирования в соответствии с потребностями проекта, автоматизировать рутинные задачи и сосредоточиться на разработке функционала.

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

https://easyoffer.ru/question/7857

60
Q

Какие знаешь ящики тестирования

17%

A

В тестировании ПО часто используются различные подходы, известные как “ящики тестирования” (или “методы тестирования”), для определения уровня знания о внутреннем устройстве системы и способах её тестирования. Вот основные типы:

  1. Белый ящик (White Box Testing)
    Также известен как структурное тестирование. В этом подходе тестировщики имеют полное представление о внутренней структуре и коде программы. Тесты разрабатываются с учётом алгоритмов, ветвлений кода, путей выполнения и внутренних интерфейсов. Цель — проверить внутренние операции продукта и убедиться, что все внутренние компоненты функционируют правильно.
  2. Чёрный ящик (Black Box Testing)
    В этом методе тестировщики не знают о внутреннем устройстве тестируемой системы. Тесты разрабатываются на основе требований и спецификаций функциональности, без знания о том, как система реализует эти функции. Цель — проверить, соответствует ли система внешним требованиям и ожиданиям пользователя. Тестируется функциональность и поведение системы.
  3. Серый ящик (Grey Box Testing)
    Этот метод является комбинацией подходов белого и чёрного ящиков. Тестировщики имеют частичное знание о внутреннем устройстве системы, что позволяет им создавать более целенаправленные тестовые сценарии, основываясь как на внутренней структуре, так и на функциональных требованиях. Это может включать доступ к базам данных, архитектурным схемам и документации API.

Дополнительные подходы:

Тестирование на основе опыта (Experience-Based Testing): Тесты разрабатываются на основе опыта, интуиции и предположений тестировщика о наиболее вероятных местах возникновения ошибок.
Тестирование зелёного ящика (Green Box Testing): Сфокусировано на проверке изменений, которые были сделаны в программном продукте, чтобы убедиться, что новые изменения не повлияли негативно на существующую функциональность.
Выбор метода тестирования зависит от множества факторов, включая цели тестирования, доступность исходного кода, временные рамки проекта и ресурсы. Комбинирование различных подходов может обеспечить более полное и всестороннее тестирование продукта.

https://easyoffer.ru/question/7858

61
Q

Какие есть критерии по выбору между тест-кейсом и чек-листа

17%

A

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

  1. Сложность и специфика приложения
  • Тест-кейсы лучше подходят для сложных приложений с конкретными требованиями и критическим функционалом, где важно точно следовать предопределённым шагам и ожидаемым результатам.
  • Чек-листы могут быть предпочтительнее для менее сложных или хорошо известных приложений, где главное — убедиться, что основные функции работают, без необходимости детально описывать каждый шаг.
  1. Цели тестирования
  • Тест-кейс подходят для детального тестирования, направленного на проверку соответствия продукта функциональным и нефункциональным требованиям, а также для обеспечения полного покрытия тестами.
  • Чек-листы эффективны для эксплоративного тестирования, когда тестировщик использует свой опыт и знания для исследования системы, а также для быстрой проверки или регрессионного тестирования.
  1. Временные рамки проекта
  • Тест-кейсы требуют больше времени на подготовку и выполнение, поэтому могут не подойти для проектов с ограниченными сроками.
  • Чек-листы позволяют быстро приступить к тестированию и могут быть эффективны в условиях жёстких временных ограничений.
  1. Опыт и навыки команды
  • Тест-кейсы требуют от тестировщиков способности точно следовать инструкциям и анализировать полученные результаты. Они подходят для команд с высокой квалификацией и опытом.
  • Чек-листы предоставляют тестировщикам больше свободы и могут быть использованы менее опытными членами команды для проведения основных проверок.
  1. Документация и отчётность
  • Тест-кейсы обеспечивают более детальную документацию процесса тестирования и результатов, что полезно для аудита, оценки качества и отчётности.
  • Чек-листы предоставляют менее детальный учет выполненной работы, но могут служить эффективным инструментом для быстрой отчётности и планирования дальнейших тестов.

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

https://easyoffer.ru/question/7859

62
Q

Что включает в себя тест кейс

17%

A

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

https://easyoffer.ru/question/7860

63
Q

Для тестирования ПО где можно взять ожидаемый результат

17%

A

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

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

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

https://easyoffer.ru/question/7861

64
Q

Из чего состоит ответ на сервере

17%

A

Ответ сервера в контексте веб-коммуникации, осуществляемой через протокол HTTP или HTTPS, состоит из нескольких ключевых компонентов. Эти компоненты предоставляют клиенту (например, веб-браузеру) информацию о результате обработки его запроса. Вот основные элементы ответа сервера:

  1. Статусная строка (Status Line)
    Содержит версию протокола HTTP, используемую сервером, числовой статусный код ответа, указывающий на результат обработки запроса, и текстовое описание статусного кода. Например, “HTTP/1.1 200 OK” или “HTTP/1.1 404 Not Found”.
  2. Заголовки ответа (Response Headers)
    Предоставляют дополнительную информацию о сервере и о том, как должен быть обработан ответ. Заголовки могут включать тип содержимого (Content-Type), дату и время ответа (Date), параметры кэширования (Cache-Control) и другие данные, связанные с безопасностью, сжатием, куки и т.д.
  3. Пустая строка
    Отделяет заголовки ответа от тела ответа. Эта пустая строка является обязательной и указывает на окончание заголовков.
  4. Тело ответа (Response Body)
    Содержит данные, запрошенные клиентом. В зависимости от типа запроса и статусного кода, тело ответа может содержать запрошенную веб-страницу, данные в форматах JSON или XML (для REST API), сообщение об ошибке или может быть пустым (например, при ответе со статусным кодом 204 No Content).

Примеры:

Веб-страницы: При запросе веб-страницы тело ответа обычно содержит HTML-код страницы.
API-запросы: При запросах к API тело ответа часто содержит данные в формате JSON или XML, которые могут представлять результаты запроса, данные сущности или сообщение об ошибке.
Загрузка файлов: При загрузке файлов с сервера тело ответа содержит бинарные данные файла.
Каждый из этих компонентов играет важную роль в обеспечении эффективного взаимодействия между клиентом и сервером. Статусный код помогает клиенту определить результат обработки запроса (успешно, ошибка, перенаправление и т.д.), заголовки предоставляют метаинформацию о ответе и его обработке, а тело ответа содержит собственно запрошенные данные.

https://easyoffer.ru/question/7862

65
Q

Расскажи про гибридные приложения

17%

A

Гибридные приложения — это мобильные или веб-приложения, которые сочетают в себе элементы как нативных, так и веб-технологий. Они разрабатываются с использованием веб-технологий (HTML, CSS, и JavaScript) и упаковываются в нативную оболочку, позволяя приложению работать на различных платформах (например, Android и iOS) с использованием одного и того же кодового базиса. Это оболочка взаимодействует с нативным API устройства, предоставляя доступ к функциям, таким как камера, GPS, акселерометр и т.д., через унифицированный веб-интерфейс.

Основные характеристики:

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

Инструменты и фреймворки для разработки:

  • Apache Cordova (ранее PhoneGap): Один из самых популярных фреймворков. Предоставляет доступ к нативным функциям устройства через JavaScript API.
  • Ionic: Высокоуровневый фреймворк, который использует Apache Cordova для доступа к нативным функциям и Angular для разработки пользовательского интерфейса.
  • React Native: Хотя React Native чаще ассоциируется с кроссплатформенной разработкой, он позволяет включать нативный код, что делает его полезным инструментом для создания гибридных приложений.
  • Xamarin: Позволяет разработчикам использовать C# для создания мобильных приложений, которые могут работать на нескольких платформах, с возможностью доступа к нативным API.

Преимущества:

  • Снижение стоимости и ускорение разработки за счет использования единой кодовой базы.
  • Упрощенное обслуживание и обновление.
  • Доступ к широкому спектру нативных функций устройства.

Недостатки:

  • Возможные проблемы с производительностью и плавностью работы интерфейса по сравнению с нативными приложениями.
  • Ограничения и зависимости от фреймворков и платформ для гибридной разработки.

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

https://easyoffer.ru/question/7863

66
Q

Зачем нужны техники дизайна

17%

A

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

  1. Решение проблем

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

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

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

https://easyoffer.ru/question/7864

67
Q

Что делать если пришел баг со статусом duplicate

17%

A

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

  1. Проверка первоначального баг-репорта

Найдите ссылку на оригинальный баг-репорт, который был отмечен как дубликат вашего. Это поможет вам понять контекст проблемы, статус её решения и возможно обнаружить полезную информацию, которую вы могли упустить.
2. Анализ информации

Сравните детали вашего баг-репорта с оригинальным. Убедитесь, что проблема действительно одинакова и что в вашем репорте не содержится новой важной информации, которая могла бы быть полезной для решения бага.
3. Добавление дополнительной информации

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

Если у вас есть сомнения относительно того, является ли ваш баг дубликатом, обсудите это с командой разработки или QA-специалистами. Возможно, потребуется совместный анализ проблемы для принятия окончательного решения.
5. Отслеживание статуса бага

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

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

https://easyoffer.ru/question/7865

68
Q

Что значит реляционные базы данных

17%

A

Реляционные базы данных — это тип систем управления базами данных (СУБД), который использует модель данных, основанную на реляционной модели. Эта модель была предложена Эдгаром Ф. Коддом в 1970 году и с тех пор стала основой для большинства коммерчески доступных баз данных. Такая модель данных представляет данные в виде набора таблиц (также называемых “отношениями”), где каждая таблица состоит из рядов и столбцов.

Основные характеристики:

  • Таблицы: Данные в реляционной базе данных организованы в таблицы. Каждая таблица представляет собой набор данных, относящихся к конкретной теме или концепции. Таблицы состоят из строк (записей) и столбцов (атрибутов или полей).
  • Строки: Каждая строка в таблице представляет собой уникальную запись, содержащую конкретные данные, соответствующие столбцам таблицы.
  • Столбцы: Столбцы определяют тип данных для набора значений в таблице, например, имя, возраст, адрес и т.д.
  • Первичные ключи (Primary Keys): Каждая таблица может иметь первичный ключ, уникально идентифицирующий каждую строку в таблице. Первичный ключ состоит из одного или нескольких столбцов.
  • Внешние ключи (Foreign Keys): Внешние ключи используются для установления связей между таблицами, позволяя одной таблице ссылаться на строки другой таблицы.
  • Нормализация: Процесс организации данных в базе данных для уменьшения избыточности и зависимости, разбиение на логически связанные таблицы для повышения эффективности хранения.

Преимущества:

  • Гибкость и масштабируемость: Легко добавлять новые данные и изменять существующие структуры данных без нарушения существующих приложений.
  • Стандартизация: Использование стандартизированного языка запросов SQL (Structured Query Language) для управления и манипуляции данными.
  • Безопасность: Предоставление различных уровней доступа к данным для разных пользователей и приложений.
  • Целостность данных: Способность поддерживать точность и надежность данных через ограничения целостности и транзакции.

Примеры:

  • MySQL
  • PostgreSQL
  • Oracle Database
  • Microsoft SQL Server

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

https://easyoffer.ru/question/7866

69
Q

Что такое 500 ошибка

17%

A

Ошибка 500, или HTTP Status 500 Internal Server Error, является общим кодом состояния HTTP, который указывает на внутреннюю ошибку сервера. Это означает, что сервер столкнулся с непредвиденной ситуацией, которая не позволила ему выполнить запрос клиента.

Важно отметить, что ошибка 500 является общей и не предоставляет конкретных деталей о причине сбоя. Это может быть вызвано множеством различных проблем на стороне сервера, таких как:

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

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

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

https://easyoffer.ru/question/7867

70
Q

Какие http методы могут быть

17%

A

HTTP (HyperText Transfer Protocol) определяет набор методов запросов, которые указывают действие, требуемое для ресурса. Каждый из этих методов исполняет определённую операцию и предназначен для выполнения конкретных задач в контексте веб-коммуникаций. Вот наиболее часто используемые методы:

  1. GET
    Используется для запроса данных от указанного ресурса. Данный метод запрашивает представление ресурса и должен только извлекать данные, не влияя на них.
  2. POST
    Применяется для отправки данных на сервер для создания нового ресурса. Часто используется при заполнении форм на веб-сайтах.
  3. PUT
    Используется для обновления существующего ресурса или создания нового по указанному URI. В отличие от POST, он является идемпотентным, что означает, что повторение одного и того же запроса PUT несколько раз не приведёт к разным результатам.
  4. DELETE
    Предназначен для удаления указанного ресурса.
  5. HEAD
    Аналогичен методу GET, но сервер в ответе возвращает только заголовки и статус код, без тела сообщения. Это полезно для извлечения метаданных.
  6. OPTIONS
    Используется для описания параметров связи с ресурсом. С помощью OPTIONS клиент может узнать, какие методы поддерживаются для ресурса.
  7. PATCH
    Применяется для частичного изменения ресурса. В отличие от PUT, который обновляет полностью весь ресурс, PATCH применяется для обновления только некоторых его частей.
  8. TRACE
    Выполняет тестовый цикл обратной передачи сообщения между клиентом и сервером. Этот метод полезен для диагностических целей, так как позволяет клиенту увидеть, что приходит обратно от сервера.
  9. CONNECT
    Используется для преобразования соединения запроса в прозрачный TCP/IP туннель, обычно для установления зашифрованного SSL соединения через нешифрованный HTTP прокси.

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

https://easyoffer.ru/question/7868

71
Q

Что помнишь об аутентификации

17%

A

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

Методы:
Верификация может осуществляться различными способами, часто классифицируемыми по “факторам аутентификации”:

Что-то, что пользователь знает: например, пароль или PIN-код.
Что-то, что у пользователя есть: например, мобильный телефон (для получения SMS с кодом) или аутентификатор.
Что-то, что является частью пользователя: биометрические данные, такие как отпечатки пальцев, распознавание лица или голоса.
Многофакторная (MFA)
Для повышения безопасности часто используется многофакторная аутентификация, которая требует от пользователя предоставления двух или более факторов аутентификации из различных категорий.

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

Протоколы и стандарты
Существуют различные протоколы и стандарты, облегчающие процесс аутентификации в разных системах, включая OAuth, OpenID Connect и SAML. Они позволяют безопасно обмениваться данными аутентификации между различными системами и сервисами.

Безопасность аутентификации
Требует внимательного рассмотрения, включая защиту паролей и других учетных данных, использование безопасных соединений (например, HTTPS) для передачи данных аутентификации и регулярное обновление механизмов аутентификации для защиты от новых угроз.

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

https://easyoffer.ru/question/7871

72
Q

Что означает 405 ошибка

17%

A

Ошибка 405 HTTP, или “405 Method Not Allowed”, указывает на то, что метод HTTP, использованный в запросе к серверу, не поддерживается для указанного ресурса. Каждый ресурс на веб-сервере может поддерживать разные методы HTTP (например, GET, POST, DELETE, PUT), и данная ошибка генерируется, когда для запрошенного ресурса используется метод, который не разрешён или не поддерживается сервером для этого конкретного URL.

Например, если веб-форма только принимает данные через метод POST, а клиент отправляет данные с использованием метода GET, сервер может вернуть эту ошибку. Точно так же, если попытаться использовать метод DELETE на ресурсе, который не поддерживает удаление содержимого, сервер также может ответить с этим статусным кодом.

Как действовать при получении ошибки:

Проверить метод HTTP: Убедитесь, что используемый метод HTTP подходит для выполняемой операции. Например, для получения данных должен использоваться метод GET, для отправки данных — POST, для обновления существующих данных — PUT, и так далее.
Документация API: Если ошибка возникает при взаимодействии с API, полезно проверить документацию API на предмет поддерживаемых методов HTTP для запрашиваемого ресурса.
Обращение к разработчикам: Если проблема не решается и вы уверены, что используете правильный метод, возможно, стоит обратиться к разработчикам веб-сервиса или веб-сайта за разъяснениями.
В ответе на запрос, который приводит к ошибке 405, сервер часто включает заголовок “Allow”, указывающий, какие методы HTTP поддерживаются для данного ресурса. Это может помочь в определении правильного метода для использования.

https://easyoffer.ru/question/7870

73
Q

Что такое эффект пестицида

15%

A

Эффект пестицида в контексте тестирования ПО описывает явление, при котором повторное использование одних и тех же тестовых сценариев со временем становится всё менее эффективным в обнаружении новых дефектов. Аналогия с пестицидами в сельском хозяйстве подразумевает, что так же, как вредители могут со временем развить устойчивость к определённым химическим веществам, программное обеспечение может “привыкнуть” к постоянно повторяемым тестам, и эти тесты перестанут быть эффективными для нахождения новых ошибок.

Причины:

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

Как преодолеть эффект

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

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

https://easyoffer.ru/question/7872

74
Q

Дай определение severity

15

A

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

Классификация серьёзности дефектов обычно включает следующие уровни:

  • Критическая (Critical): Дефект приводит к аварийному завершению работы программы, потере данных, нарушению безопасности или другим серьёзным последствиям, делая использование системы полностью невозможным. Примером может служить сбой в системе управления банковскими счетами, приводящий к неверному отображению баланса счетов пользователей.
  • Высокая (High): Дефект серьёзно влияет на функциональность или производительность, но не приводит к полной остановке системы. Например, ошибка в функции печати документа, из-за которой документы печатаются с неверным форматированием.
  • Средняя (Medium): Дефект оказывает умеренное воздействие на систему, влияя на удобство использования, но обходные пути существуют, и основная функциональность остается работоспособной. Примером может служить ошибка в пользовательском интерфейсе, которая не мешает выполнению основных задач.
  • Низкая (Low): Дефект имеет незначительное воздействие, не влияя на функциональность или производительность системы. Такие дефекты могут включать небольшие опечатки или незначительные визуальные недочеты.

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

https://easyoffer.ru/question/7888

75
Q

Дай определение priority

15%

A

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

Уровни приоритета:

  • Высокий (High): Дефект требует немедленного внимания и исправления в ближайшем релизе или даже раньше. Это обычно дефекты, влияющие на критические бизнес-процессы или функциональность, без которой продукт не может быть выпущен.
  • Средний (Medium): Дефект должен быть исправлен в обозримом будущем, но его исправление не является срочным. Такие дефекты могут влиять на пользовательский опыт или несущественные функции продукта, но обходные решения существуют.
  • Низкий (Low): Дефект может быть исправлен в последующих релизах, без непосредственного влияния на текущую работу пользователей или основные функции продукта. К ним относятся минорные ошибки, не влияющие на функциональность или производительность системы.

Различие между Severity и Priority

Хотя Severity (серьёзность) и Priority (приоритет) тесно связаны, они отражают разные аспекты дефекта:

  • Severity сосредоточен на степени влияния дефекта на систему или приложение, оценивая, насколько серьёзной является ошибка с технической точки зрения.
  • Priority определяется исходя из бизнес-потребностей и планов разработки, указывая на скорость, с которой команда должна решить проблему.

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

https://easyoffer.ru/question/7887

76
Q

Что знаешь про клиент серверную архитектуру

15%

A

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

Основные характеристики:

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

Компоненты:

  • Клиент (Client): Приложение или устройство, используемое пользователем для доступа к сервисам и ресурсам сервера. Клиенты инициируют запросы к серверам.
  • Сервер (Server)^ Мощная система или программное обеспечение, обрабатывающее запросы клиентов, выполняет обработку данных, управляет ресурсами (например, базами данных) и предоставляет различные сервисы.
  • Сеть (Network): Среда передачи данных, которая соединяет клиентов и серверы, обычно через Интернет или локальную сеть (LAN).

Типы клиент-серверных архитектур:

  • Одноуровневая (1-Tier): Клиент и сервер находятся на одной машине, и нет сетевого взаимодействия.
  • Двухуровневая (2-Tier): Прямое взаимодействие между клиентом и сервером, например, клиентское приложение взаимодействует напрямую с базой данных на сервере.
  • Трёхуровневая (3-Tier): Включает промежуточный уровень, например, приложение сервера, которое действует как посредник между клиентом и сервером базы данных, облегчая процесс обработки запросов.
  • Многоуровневая (N-Tier): Более сложная структура с несколькими уровнями, которые могут включать балансировщики нагрузки, сервера приложений, сервера баз данных, сервера кэширования и т.д.

Клиент-серверная архитектура остаётся основным выбором для разработки современных приложений благодаря своей гибкости, масштабируемости и эффективности в управлении ресурсами и обработке данных.

https://easyoffer.ru/question/7886

77
Q

Назови кейсы реконектов

15%

A

Кейсы реконнектов (повторных подключений) обычно используются для тестирования способности системы или приложения восстанавливать связь после её потери. Это важно для обеспечения устойчивости и надёжности работы в условиях нестабильного соединения. Вот некоторые типичные сценарии, в которых они могут быть протестированы:

  1. Потеря сетевого соединения
    Тестирование способности приложения автоматически восстанавливать соединение после его временного прерывания из-за сбоев в сети.
  2. Перезагрузка сервера
    Проверка того, как клиентское приложение реагирует на перезагрузку сервера — способно ли оно корректно восстановить соединение и продолжить работу без вмешательства пользователя.
  3. Изменение сетевых параметров
    Тестирование реакции приложения на изменение сетевых параметров, таких как смена IP-адреса сервера или порта, что требует переподключения.
  4. Смена типа соединения
    Проверка возможности приложения переключаться между различными типами соединений (например, с Wi-Fi на мобильные данные и обратно) без потери функциональности или данных.
  5. Восстановление после режима “в самолёте”
    Тестирование поведения мобильного приложения при выходе из режима “в самолёте”, когда сетевое соединение восстанавливается после полного отключения.
  6. Обработка тайм-аутов соединения
    Проверка механизмов обработки тайм-аутов соединения и способности приложения инициировать повторное подключение после истечения тайм-аута.
  7. Ограничения на стороне сервера
    Тестирование реакции приложения на ограничения соединений со стороны сервера, например, при превышении максимального числа одновременных подключений.
  8. Восстановление после сбоев приложения
    Проверка способности приложения восстанавливать активные соединения после аварийного закрытия или сбоя приложения.

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

https://easyoffer.ru/question/7885

78
Q

Чем API отличается для веб-клиента от мобильного

15%

A

API (Application Programming Interface) для веб-клиента и мобильного приложения могут отличаться по ряду аспектов, хотя в основе своей выполняют похожие функции — обеспечивают интерфейс для взаимодействия между клиентом и сервером. Различия между API для веба и мобильных устройств часто связаны с особенностями платформ, требованиями к производительности и безопасности, а также с конкретными задачами, которые эти API должны решать. Вот некоторые из основных отличий:

  1. Оптимизация производительности
  • Мобильные API часто требуют более тщательной оптимизации производительности из-за ограниченных вычислительных ресурсов устройств и нестабильности мобильных сетей. Это может включать минимизацию объема передаваемых данных, использование кэширования и адаптацию качества контента (например, изображений) к условиям сети.
  • Веб-клиенты могут рассчитывать на более стабильное и быстрое соединение, поэтому оптимизация может быть менее критичной, хотя всё ещё важной для улучшения пользовательского опыта.
  1. Аутентификация и безопасность
  • Мобильные API могут использовать специфические для платформы методы аутентификации, такие как OAuth 2.0, JWT (JSON Web Tokens) или даже биометрическую аутентификацию, чтобы обеспечить безопасный доступ к данным.
  • Веб-API также используют стандартные протоколы безопасности, но могут чаще полагаться на сессии и куки для управления состоянием аутентификации.
  1. Адаптивность и отзывчивость
  • API для мобильных приложений должны быть спроектированы с учетом разнообразия устройств, размеров экранов и платформ (iOS, Android), что может потребовать создания специализированных эндпоинтов или версий API.
  • Веб-API обслуживают клиентов, работающих в более стандартизированной среде веб-браузеров, где основное внимание уделяется совместимости с различными браузерами и поддержке современных веб-стандартов.
  1. Интерактивность и функциональность
  • Мобильные приложения зачастую требуют более глубокой интеграции с нативными функциями устройства, такими как доступ к камере, GPS, акселерометру, что требует от API поддержки соответствующих функций.
  • Веб-приложения могут быть ограничены в доступе к некоторым нативным функциям устройства, но в то же время могут использовать преимущества более мощных вычислительных ресурсов и большего экранного пространства.
  1. Сценарии использования
  • API для мобильных приложений часто разрабатываются с учетом специфики мобильного использования, включая оффлайн-режим работы, быструю реакцию на действия пользователя и минимизацию задержек.
  • API для веб-приложений могут быть нацелены на обеспечение более богатого пользовательского интерфейса и сложных веб-взаимодействий, полагаясь на постоянное соединение с сетью.

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

https://easyoffer.ru/question/7884

79
Q

Расскажи по каким критериям выбираешь какой тест мы оставляем вручную а какой автоматизируем

15%

A

От самых критичных и приоритетных. Т.е. сначала смоук, потом санити, потом регресс

https://easyoffer.ru/question/7883

80
Q

Что такое XML

15%

A

XML (eXtensible Markup Language) — это гибкий, самоописываемый язык разметки, предназначенный для хранения, передачи и описания данных в структурированном виде. Разработанный Всемирной организацией по стандартизации веба (W3C) в конце 1990-х годов, XML стал широко использоваться в самых разных областях для обмена данными между различными системами и платформами.

Основные особенности:

  • Самоописываемость: Позволяет создавать пользовательские теги, которые описывают характер данных, содержащихся между открывающим и закрывающим тегами. Это делает его очень понятным и читаемым как для человека, так и для машины.
  • Расширяемость: Пользователи могут определять свои собственные элементы и структуры документов, что делает XML исключительно гибким в применении.
  • Строгая структура: Требует точного соблюдения иерархии и структуры документа. Каждый элемент должен быть правильно закрыт, а вложенные элементы должны быть корректно размещены внутри родительских.
  • Переносимость: Данные могут быть переданы между различными системами и платформами без потери информации, благодаря стандартизированному формату.

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<контакты>
    <контакт>
        <имя>Иван Иванов</имя>
        <телефон>123-456-7890</телефон>
        <email>ivan@example.com</email>
    </контакт>
    <контакт>
        <имя>Мария Петрова</имя>
        <телефон>098-765-4321</телефон>
        <email>maria@example.com</email>
    </контакт>
</контакты>

Использование:

  • Веб-сервисы: Часто используется для обмена данными между веб-сервисами и клиентами через протоколы, такие как SOAP (Simple Object Access Protocol).
  • Конфигурационные файлы: Многие приложения используют его для хранения настроек и конфигураций благодаря его читаемости и гибкости.
  • Документы и данные: Может использоваться для представления сложных документов и структурированных данных, например, в системах управления контентом или для описания метаданных.

XML отличается от HTML тем, что HTML предназначен для отображения данных и управления их внешним видом в веб-браузерах, в то время как XML предназначен для хранения и передачи данных, предоставляя разработчикам полную свободу в определении структуры данных.

https://easyoffer.ru/question/7882

81
Q

Какие могут быть критерии конца тестирования

15%

A

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

  1. Достижение целей тестирования
    Тестирование может быть завершено, когда достигнуты специфические заранее определённые цели, такие как проверка всех функциональных требований или выполнение всех запланированных тест-кейсов.
  2. Покрытие кода
    Определённый процент кода должен быть покрыт тестами. Завершение тестирования происходит, когда достигнута целевая метрика покрытия кода тестами, например, 80% или 90%.
  3. Исправление дефектов
    Тестирование может быть завершено, когда все критические и большинство значимых дефектов исправлены и повторно протестированы. Может быть установлен порог, при котором допустимо наличие некритических ошибок.
  4. Стабильность системы
    Если система демонстрирует стабильную работу в течение определённого времени без серьёзных сбоев или новых критических ошибок, тестирование может быть завершено.
  5. Удовлетворённость пользователей
    Для проектов, включающих бета-тестирование или пользовательское тестирование, критерием завершения может служить положительная обратная связь от конечных пользователей или заинтересованных сторон.
  6. Выполнение тестовых сценариев
    Завершение всех запланированных тестовых сценариев и чек-листов, при условии, что большинство или все из них успешно пройдены.
  7. Достижение планируемых сроков
    Иногда тестирование завершается по достижении заранее определённой даты окончания, особенно если проект ограничен строгими сроками. Однако это может потребовать компромиссов в отношении качества и полноты тестирования.
  8. Бюджетные ограничения
    Бюджет проекта также может определять критерии завершения тестирования. Если бюджет исчерпан, может потребоваться прекратить тестирование, даже если не все критерии качества полностью удовлетворены.

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

https://easyoffer.ru/question/7881

82
Q

Что делать если все проверено баг есть разработчик отказывается чинить

15%

A
  1. Проверить актуальные требования (тест-кейсы могли устареть)
  2. Прояснить с разработчиком понимание требований
  3. Обратиться к менеджеру или аналитку для установления источника истины и принятия решения

https://easyoffer.ru/question/7880

83
Q

Какие виды тестирования бы применил к веб приложению

15%

A

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

  1. Функциональное тестирование
    Проверка соответствия функциональности веб-приложения заданным требованиям и спецификациям. Это включает в себя тестирование всех функций через пользовательский интерфейс, API и другие взаимодействия с приложением.
  2. Тестирование пользовательского интерфейса (UI)
    Фокусируется на проверке элементов интерфейса пользователя, включая расположение кнопок, поля ввода, навигацию, цвета, шрифты и отзывчивость элементов управления.
  3. Тестирование совместимости (Кросс-браузерное и кросс-платформенное)
    Проверка работы веб-приложения в различных веб-браузерах (например, Chrome, Firefox, Safari) и на различных устройствах и операционных системах (Windows, macOS, Android, iOS) для обеспечения универсальности доступа.
  4. Тестирование производительности
    Оценка скорости, стабильности и масштабируемости веб-приложения под нагрузкой. Это включает в себя нагрузочное тестирование, стресс-тестирование, тестирование на пропускную способность и объемное тестирование.
  5. Тестирование безопасности
    Идентификация уязвимостей веб-приложения, которые могут быть использованы злоумышленниками. Включает в себя проверку на SQL-инъекции, кросс-сайтовый скриптинг (XSS), разглашение конфиденциальной информации, неправильную обработку сессий и токенов доступа.
  6. Тестирование доступности
    Обеспечение того, чтобы веб-приложение было доступно и удобно для использования широким кругом пользователей, включая людей с ограниченными возможностями, с помощью специальных технологических средств.
  7. Тестирование удобства использования (Usability Testing)
    Оценка того, насколько легко конечные пользователи могут научиться использовать приложение, находить необходимую информацию и выполнять задачи.
  8. Регрессионное тестирование
    Проверка того, что новые изменения, добавленные в приложение, не нарушили существующую функциональность. Это критически важно при каждом обновлении или добавлении новых функций.
  9. Эксплораторское тестирование
    Неформализованный подход к тестированию, при котором тестировщики исследуют приложение без строго заданных сценариев, используя свой опыт и интуицию для поиска дефектов.
  10. Тестирование локализации
    Проверка правильности работы приложения в различных локализациях, включая перевод текстов и форматирование данных (даты, валюты и т.д.), адаптированные для конкретных регионов или культур.

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

https://easyoffer.ru/question/7879

84
Q

Какой придет статус код если сервер сломан

15%

A

Если сервер “сломан” или сталкивается с внутренней ошибкой, которая мешает ему корректно обработать запрос, обычно возвращается статус код 500 Internal Server Error. Этот код состояния HTTP указывает на то, что сервер столкнулся с непредвиденной ситуацией, которая не позволяет ему выполнить запрос из-за какой-либо внутренней ошибки или неполадки.

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

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

https://easyoffer.ru/question/7878

85
Q

Сколько будет проверок при анализе граничных значений

15%

A

Анализ граничных значений (Boundary Value Analysis, BVA) — это метод тестирования ПО, который сосредоточен на тестировании граничных условий. Этот метод основан на предположении, что ошибки чаще всего возникают на границах диапазонов входных данных, а не внутри самих диапазонов. При данном анализе обычно тестируются значения на границе, непосредственно внутри и снаружи границ. Количество проверок зависит от конкретного случая и того, какие границы определены для входных данных.

Для одного входного параметра:
Если у вас есть входной параметр с диапазоном значений от N до M, минимальное количество проверок при анализе граничных значений будет равно четырём:

  • Проверка значения непосредственно на нижней границе (N).
  • Проверка значения непосредственно за нижней границей (N-1).
  • Проверка значения непосредственно на верхней границе (M).
  • Проверка значения непосредственно за верхней границей (M+1).

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

Расширенный анализ граничных значений:
Можно также рассмотреть включение значений непосредственно внутри границ (N+1 и M-1) для более глубокого тестирования. Это увеличивает количество тестов, но предоставляет более полное покрытие граничных условий.

Пример:
Для поля ввода, принимающего числа от 1 до 100:

  • Нижняя граница: тестируем 0 (за пределами), 1 (на границе) и 2 (внутри).
  • Верхняя граница: тестируем 99 (внутри), 100 (на границе) и 101 (за пределами).

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

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

https://easyoffer.ru/question/7877

86
Q

Что делать если баг у разработчика не воспроизводится

15%

A
  1. Уточнить детали воспроизведения
  2. Продемонстрировать баг у себя
  3. Обратиться к менеджеру

https://easyoffer.ru/question/7876

87
Q

Какие есть особенности тестирования веб приложений

15%

A

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

  1. Кросс-браузерное тестирование
    Веб-приложения могут отображаться и функционировать по-разному в различных веб-браузерах. Тестирование должно обеспечивать корректную работу приложения во всех целевых браузерах и их версиях.
  2. Тестирование совместимости с различными устройствами
    С учетом разнообразия устройств (компьютеры, смартфоны, планшеты) и операционных систем (Windows, macOS, Android, iOS) важно проверить адаптивность и корректность отображения веб-приложения на всех целевых платформах.
  3. Тестирование производительности
    Необходимо убедиться, что веб-приложение загружается и работает быстро даже при большой нагрузке, а также способно обрабатывать высокий объем данных и большое количество одновременных пользовательских сессий.
  4. Тестирование безопасности
    Веб-приложения часто подвергаются атакам, направленным на нарушение конфиденциальности, целостности и доступности данных. Тестирование на безопасность должно включать проверку на уязвимости, такие как SQL-инъекции, XSS (межсайтовый скриптинг), CSRF (межсайтовая подделка запроса) и другие.
  5. Тестирование доступности
    Важно обеспечить, что веб-приложение доступно и удобно для использования всеми пользователями, включая людей с ограниченными возможностями, с помощью вспомогательных технологий, таких как экранные читалки.
  6. Функциональное тестирование
    Проверка соответствия веб-приложения функциональным требованиям и спецификациям, включая тестирование всех пользовательских сценариев, навигации и элементов управления.
  7. Тестирование пользовательского интерфейса
    Оценка элементов пользовательского интерфейса на предмет удобства использования и соответствия дизайну. Это включает проверку визуальных элементов, раскладки и адаптивного дизайна.
  8. Регрессионное тестирование
    После каждого изменения в коде необходимо проводить регрессионное тестирование, чтобы убедиться, что новые изменения не нарушили существующую функциональность.
  9. Эксплораторское тестирование
    Проведение неструктурированных тестов для исследования приложения и поиска дефектов, которые могли быть упущены в более формализованных тестах.
  10. Тестирование интерактивности и динамического контента
    Веб-приложения часто содержат динамические элементы, такие как всплывающие окна, анимации, формы с автозаполнением. Необходимо тестировать эти элементы на предмет корректного функционирования и взаимодействия с пользователем.

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

https://easyoffer.ru/question/7875

88
Q

Какое тестирование применяется к тестированию api

15

A

Тестирование API (Application Programming Interface) — это процесс проверки интерфейсов ПО, который включает в себя серию вызовов API с целью проверки их функциональности, производительности, безопасности и надёжности. При тестировании API особое внимание уделяется запросам и ответам, а также обработке и валидации данных. Вот основные виды тестирования:

  1. Функциональное тестирование
    Целью функционального тестирования API является проверка того, что API работает в соответствии с ожиданиями и требованиями к функциональности. Это включает в себя тестирование отдельных методов и функций API для убедительности в том, что они возвращают правильные ответы при получении ожидаемых входных данных.
  2. Тестирование производительности
    Оценивает, как API справляется с большим объёмом запросов в единицу времени, а также время отклика на эти запросы. Это включает в себя нагрузочное тестирование, стресс-тестирование и тестирование на пропускную способность.
  3. Тестирование безопасности
    Проверяет устойчивость API к различным угрозам безопасности, включая SQL-инъекции, переполнение буфера, недостатки аутентификации и авторизации, а также уязвимости, связанные с передачей данных.
  4. Тестирование совместимости
    Убеждается, что API корректно работает в различных средах и конфигурациях, включая различные операционные системы, платформы и сетевые условия.
  5. Тестирование надёжности
    Проверяет способность API восстанавливаться после сбоев и продолжать работать стабильно в условиях различных сценариев использования.
  6. Тестирование документации API
    Оценивает полноту, точность и понятность документации API, поскольку она является ключевым ресурсом для разработчиков, интегрирующих и использующих API в своих приложениях.
  7. Тестирование контрактов API
    Используется для проверки, что API соответствует своему специфицированному интерфейсу или “контракту”, обычно описанному с помощью спецификаций, таких как OpenAPI (Swagger). Это помогает убедиться, что изменения в API не нарушают существующую интеграцию.

Инструменты:
Существует множество инструментов для тестирования API, включая Postman, SoapUI, Insomnia и другие, которые облегчают процесс тестирования за счет предоставления пользовательского интерфейса для отправки запросов к API, анализа ответов и автоматизации тестов.

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

https://easyoffer.ru/question/7874

89
Q

Что такое SDLC

12%

A

SDLC (Software Development Life Cycle, Жизненный цикл разработки ПО) — это процесс, используемый для структурирования планирования, создания, тестирования и развёртывания информационных систем и приложений. Он обеспечивает последовательный подход к разработке ПО, который включает в себя чётко определённые этапы. Эти этапы помогают командам разработчиков и стейкхолдеров эффективно управлять проектами разработки ПО, минимизировать риски и обеспечивать высокое качество конечного продукта.

Этапы:

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

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

  • Водопадная модель (Waterfall): Линейный подход, где каждый этап начинается только после завершения предыдущего.
  • Итерационная модель: Подход, предполагающий разработку через повторяющиеся итерации или циклы.
  • Спиральная модель: Комбинирует элементы итерационного и прототипирования с анализом рисков.
  • Агил (Agile): Гибкий подход, фокусирующийся на постоянной обратной связи с заказчиком и адаптивности к изменениям.
  • DevOps: Методология, объединяющая разработку (Dev) и операции (Ops), с акцентом на непрерывной интеграции, доставке и обратной связи.

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

https://easyoffer.ru/question/7889

90
Q

Какая разница у протоколов http и https

12%

A

Протоколы HTTP (HyperText Transfer Protocol) и HTTPS (HyperText Transfer Protocol Secure) являются основными протоколами для передачи данных в интернете, особенно для веб-сайтов. Основная разница между HTTP и HTTPS заключается в уровне безопасности при передаче данных между клиентом (обычно веб-браузером) и сервером.

HTTP

  • Нешифрованное соединение: Передает данные в открытом виде, что делает их уязвимыми для перехвата или модификации третьими лицами.
  • Стандартный порт: По умолчанию использует порт 80.
  • Быстродействие: Теоретически может работать немного быстрее HTTPS из-за отсутствия процесса шифрования, хотя на практике разница часто незначительна.
  • Использование: Ранее широко использовался для всех видов веб-трафика, но сейчас его применение сокращается в пользу более безопасного HTTPS.

HTTPS

  • Шифрованное соединение: Использует протокол SSL/TLS для шифрования данных перед их передачей, что обеспечивает конфиденциальность и защиту от “человека посередине” (man-in-the-middle) атак.
  • Стандартный порт: По умолчанию использует порт 443.
  • Безопасность: Помимо шифрования, он также предоставляет аутентификацию сервера, гарантируя, что данные отправляются именно тому серверу, для которого они предназначены, и подтверждая, что сервер является тем, за кого себя выдает.
  • Использование: Стал стандартом для большинства веб-сайтов, особенно тех, которые обрабатывают конфиденциальную информацию, такую как данные кредитных карт, личная информация и данные для входа.

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

https://easyoffer.ru/question/7890

91
Q

В чем разница между Scrum и Kanban

12%

A

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

Scrum

  • Итерационный подход: Разбивает процесс разработки на фиксированные временные интервалы, называемые спринтами (обычно от 2 до 4 недель), в конце каждого из которых команда должна предоставить потенциально готовый продукт.
  • Роли: В нем определены специфические роли: Скрам-мастер (Scrum Master), Владелец Продукта (Product Owner) и Команда разработки (Development Team).
  • События: Предусматривает регулярные события, такие как Планирование Спринта (Sprint Planning), Ежедневный Скрам (Daily Scrum), Обзор Спринта (Sprint Review) и Ретроспектива Спринта (Sprint Retrospective).
  • Артефакты: Ключевые артефакты в Scrum включают Бэклог Продукта (Product Backlog), Бэклог Спринта (Sprint Backlog) и Инкремент (Increment).

Kanban

  • Непрерывный поток: В отличие от итерационного подхода Scrum, он сосредоточен на непрерывном потоке задач через различные стадии процесса разработки. Это позволяет команде более гибко реагировать на изменения.
  • Визуализация работы: Основной инструмент управления в Kanban — это доска Kanban, которая визуализирует весь рабочий процесс и задачи на разных этапах выполнения.
  • Ограничение количества работ в процессе: Он вводит ограничения на количество задач, которые могут находиться на каждом этапе процесса одновременно (WIP-лимиты), что помогает улучшить фокус и снизить время выполнения задач.
  • Без строгих ролей и событий: Он менее формален по сравнению со Scrum и не предписывает строгих ролей и регулярных событий.

Основные различия

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

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

https://easyoffer.ru/question/7891

92
Q

Что такое http

12%

A

HTTP (HyperText Transfer Protocol — протокол передачи гипертекста) — это основной протокол для передачи данных, особенно веб-страниц, изображений, видео и других ресурсов в World Wide Web. Разработанный в начале 1990-х годов Тимом Бернерсом-Ли, HTTP определяет способ взаимодействия между веб-клиентами (обычно веб-браузерами) и веб-серверами. Он является частью более обширного протокола TCP/IP, который лежит в основе всей сетевой коммуникации в Интернете.

Как он работает

  1. Запрос от клиента: Когда пользователь вводит URL веб-сайта в браузере или кликает на ссылку, браузер отправляет запрос HTTP на сервер, где расположен запрашиваемый ресурс.
  2. Обработка запроса сервером: Веб-сервер принимает запрос, обрабатывает его и возвращает ответ, который может включать запрошенный контент (например, HTML-страницу) или сообщение об ошибке, если ресурс не найден или доступ к нему запрещён.
  3. Ответ сервера: Ответ содержит статус выполнения запроса (код состояния) и, при успешном запросе, запрошенные данные.

Особенности:

  • Безсостояний: Является протоколом без сохранения состояния (stateless), что означает, что каждый запрос обрабатывается независимо, без сохранения информации о предыдущих взаимодействиях. Это упрощает архитектуру, но для сохранения состояния между запросами используются куки и сессии.
  • Простота и расширяемость: Предлагает простую структуру запросов и ответов, которая легко расширяема через заголовки для передачи дополнительной информации.
  • Методы запросов: Определяет различные методы запросов, такие как GET для получения данных, POST для отправки данных на сервер, DELETE для удаления ресурсов и другие, позволяя реализовывать различные операции над ресурсами.
  • Безопасность: Поскольку он по умолчанию не шифрует данные, передаваемые между клиентом и сервером, для обеспечения безопасности часто используется HTTPS (HTTP Secure), который добавляет шифрование с помощью SSL/TLS.

HTTP продолжает развиваться, и его последняя версия, HTTP/2 (опубликована в 2015 году), предлагает улучшения в эффективности передачи данных и производительности по сравнению с предыдущими версиями.

https://easyoffer.ru/question/7892

93
Q

Как работают веб приложения

12%

A

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

  1. Пользовательский запрос
    Всё начинается, когда пользователь вводит URL веб-приложения в адресной строке браузера или кликает на ссылку, что инициирует запрос к серверу. Этот запрос передаётся через интернет к соответствующему веб-серверу, используя протокол HTTP или HTTPS.
  2. Сервер обрабатывает запрос
    Веб-сервер принимает запрос и определяет, какие действия необходимо выполнить для его обработки. Это может включать запросы к базе данных для извлечения данных или выполнение определённой логики, необходимой для генерации ответа.
  3. Взаимодействие с базой данных
    Если для обработки запроса необходим доступ к базе данных (например, для извлечения сохранённой информации или обновления данных), сервер делает запрос к базе данных. После получения данных из базы данных сервер использует их для создания или обновления содержимого веб-страницы.
  4. Генерация ответа
    Сервер создаёт ответ на запрос пользователя, часто в виде HTML-страницы. Этот ответ может также включать CSS для стилизации и JavaScript для интерактивности. Для динамических веб-приложений содержимое ответа генерируется на лету, в зависимости от запроса пользователя и полученных данных.
  5. Отправка ответа пользователю
    Сформированный ответ отправляется обратно через интернет в веб-браузер пользователя.
  6. Отображение страницы
    Браузер получает ответ от сервера и рендерит страницу для отображения пользователю. В это время браузер также может обрабатывать JavaScript, что позволяет создавать динамические изменения на странице без необходимости повторного запроса к серверу.
  7. Динамическое взаимодействие
    Современные веб-приложения часто используют AJAX (Asynchronous JavaScript and XML) для динамической загрузки контента и обновления страницы без полной перезагрузки, что делает взаимодействие с веб-приложением более плавным и быстрым.

Важные компоненты:

  • Веб-сервер: ПО, обрабатывающее запросы к веб-приложению и возвращающее ответы.
  • База данных: Система управления базами данных (СУБД), хранящая данные приложения.
  • Клиент (браузер): Программа, отображающая веб-страницы и позволяющая пользователю взаимодействовать с веб-приложением.

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

https://easyoffer.ru/question/7893

94
Q

Какие виды тестирования важны для нативных приложений

12%

A

Тестирование нативных приложений, то есть программ, разработанных специально для определённой платформы или операционной системы (например, iOS или Android), включает в себя ряд специфических видов тестирования для обеспечения их качества, производительности, удобства использования и безопасности. Вот ключевые виды, которые особенно важны для нативных приложений:

  1. Функциональное тестирование
    Проверяет, соответствует ли функциональность приложения заданным требованиям и спецификациям. Это включает в себя тестирование всех функций приложения, интерфейсов, меню, кнопок, форм и других элементов управления.
  2. Тестирование пользовательского интерфейса (UI)
    Фокусируется на визуальных элементах и взаимодействии пользователя с приложением. Тестируются различные аспекты UI, включая расположение элементов, цвета, шрифты, отзывчивость элементов управления и соответствие гайдлайнам платформы.
  3. Тестирование производительности
    Оценивает, как приложение работает под нагрузкой, в том числе время запуска, время отклика интерфейса, потребление памяти и батареи. Важно также тестировать приложение в условиях различных сетевых подключений.
  4. Тестирование совместимости
    Проверяет работу приложения на разных устройствах, версиях операционных систем и разрешениях экрана. Это важно, поскольку нативные приложения часто используются на широком спектре устройств с различными характеристиками.
  5. Тестирование безопасности
    Особенно важно для приложений, обрабатывающих конфиденциальную информацию. Тестирование безопасности включает в себя проверку на уязвимости, такие как SQL-инъекции, кросс-сайтовый скриптинг (XSS), разглашение данных и другие потенциальные угрозы.
  6. Локализационное тестирование
    Проверяет, корректно ли приложение отображает локализованный контент и поддерживает ли оно различные языковые и культурные стандарты, включая форматы дат, валют и другие локализованные данные.
  7. Тестирование прерываний
    Особенно важно для мобильных приложений, чтобы проверить их способность корректно обрабатывать внешние прерывания, такие как входящие звонки, сообщения, уведомления, смена сетей или активация энергосберегающих режимов.
  8. Регрессионное тестирование
    Необходимо для проверки, что новые изменения в коде не повлияли негативно на уже существующую функциональность приложения.
  9. Тестирование доступности
    Проверяет, насколько легко приложение использовать людям с ограниченными возможностями, например, с нарушениями зрения или слуха.

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

https://easyoffer.ru/question/7894

95
Q

Приведи пример когда высокий приоритет но низкая серьезность или наоборот

12%

A

У компании Google на главной странице ошибка в слове “Gogle”.

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

Высокий приоритет, но низкая серьёзность

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

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

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

Критические ошибки в редко используемых функциях: Например, сбой системы при выполнении специфической операции, которую используют единицы пользователей.
Серьёзные ошибки в функционале, планируемом к скорому удалению или переработке: Если известно, что данный функционал будет скоро заменён, может быть принято решение не тратить ресурсы на исправление серьёзной ошибки.
Выбор стратегии управления дефектами, включая определение приоритета и серьёзности ошибок, зависит от множества факторов, включая бизнес-цели, ресурсы разработки, ожидания пользователей и стратегическое планирование продукта. Главная цель — минимизировать негативное влияние ошибок на пользователей и бизнес при оптимальном использовании доступных ресурсов разработки.

https://easyoffer.ru/question/7895

96
Q

Что такое Dev Tool

12%

A

DevTools, или инструменты разработчика, — это набор инструментов встроенных в современные веб-браузеры (например, Google Chrome, Firefox, Safari и Edge), предназначенных для анализа, отладки и профилирования веб-приложений. Они предоставляют разработчикам веб-сайтов и веб-приложений удобные средства для изучения и изменения HTML, CSS и JavaScript кода в реальном времени, а также для мониторинга сетевых запросов, проверки производительности страницы, анализа использования памяти и многое другое.

Основные функции:

  • Элементы (Elements): Позволяет просматривать и редактировать HTML и CSS, отображая текущее состояние DOM (Document Object Model) и стили, применённые к выбранным элементам страницы.
  • Консоль (Console): Интерактивная консоль для просмотра сообщений, вывода диагностической информации и выполнения JavaScript кода в контексте открытой вкладки.
  • Сеть (Network): Отображает информацию о сетевой активности, включая запросы к ресурсам, заголовки запросов и ответов, а также времена загрузки, что помогает оптимизировать загрузку ресурсов и устранять задержки.
  • Источники (Sources): Инструмент для отладки JavaScript, позволяющий просматривать файлы исходного кода, устанавливать точки останова и шагать по коду во время выполнения.
  • Производительность (Performance): Анализирует время загрузки страницы и производительность выполнения скриптов, помогая выявить узкие места и оптимизировать скорость работы приложения.
  • Память (Memory): Инструменты для профилирования использования памяти веб-приложением, выявления утечек памяти и оптимизации расхода ресурсов.
  • Application: Предоставляет детальную информацию о хранимых данных веб-приложения, включая куки, локальное хранилище (LocalStorage), сессионное хранилище (SessionStorage), кэшированные данные и базы данных.

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

https://easyoffer.ru/question/7897

97
Q

Что такое git

12%

A

Git — это распределённая система управления версиями, разработанная Линусом Торвальдсом, создателем Linux. Он предназначен для отслеживания изменений в файлах и координации работы над ними множеством людей. Это одна из самых популярных систем управления версиями среди разработчиков по всему миру благодаря своей эффективности, скорости и гибкости для управления как малыми, так и крупными проектами.

Основные характеристики:

  • Распределённость: В отличие от централизованных систем управления версиями, каждый разработчик в системе он работает с полной копией репозитория, содержащей всю историю изменений. Это позволяет работать локально и увеличивает устойчивость к потере данных.
  • Эффективность: Оптимизирован для обеспечения высокой производительности и скорости. Операции, такие как слияние и ветвление, выполняются очень быстро по сравнению с другими системами управления версиями.
  • Гибкость ветвления: Предлагает мощные возможности для ветвления и слияния, позволяя разработчикам легко и быстро создавать и управлять независимыми ветками для новых функций или экспериментов.
  • Безопасность: Использует криптографическую хеш-функцию SHA-1 для идентификации и обеспечения целостности состояния всех файлов и деревьев в проекте.
  • Экономия ресурсов: Благодаря системе хранения данных и сжатию, он требует меньше дискового пространства и сетевых ресурсов, чем многие другие системы.

Основные понятия и операции:

  • Репозиторий (Repository): Хранилище вашего кода и истории его изменений.
  • Коммит (Commit): Фиксация изменений в репозитории, снимок текущего состояния файлов.
  • Ветка (Branch): Независимая линия разработки, позволяющая работать над разными задачами параллельно.
  • Слияние (Merge): Процесс включения изменений из одной ветки в другую.
  • Клонирование (Clone): Создание локальной копии удалённого репозитория.
  • Pull: Получение и интеграция изменений с удалённого репозитория в текущую ветку.
  • Push: Отправка локальных изменений в удалённый репозиторий.

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

https://easyoffer.ru/question/7898

98
Q

Что такое Quality Control

12%

A

Quality Control (QC), или контроль качества, — это процесс, который организации используют для обеспечения того, чтобы продукт или услуга соответствовали установленным стандартам качества и требованиям клиентов. Контроль качества включает в себя серию инспекций, проверок и тестов, направленных на идентификацию и устранение дефектов в продуктах или процессах.

Основные аспекты контроля качества:

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

Важность контроля качества:

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

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

Различие между контролем качества и обеспечением качества:

Хотя контроль качества и обеспечение качества (Quality Assurance, QA) часто используются как взаимозаменяемые термины, между ними есть ключевое различие:

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

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

https://easyoffer.ru/question/7899