Теория тестирования Flashcards

1
Q

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

A

Тестирование - проверка объекта тестирования на соответствие требованиям: явным, неявным, скрытым

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

Цель тестирования?

A

1 Проверить, все ли указанные требования выполнены
2 Предотвратить появление дефектов
3 Найти максимально возможное количество дефектов
4 Укрепить уверенность в уровне качества объекта тестирования
5 Предоставить информацию о качестве продукта заинтересованным лицам

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

Чем отличается тестирование и контроль качества ?

A

Testing (Тестирование) – самый “нижний”, первый уровень, проверка создаваемого программного продукта на
соответствие требованиям к этому продукту. По факту это реактивная работа (выдали – проверил – описал
дефекты – исправили), которая может помочь исправить дефекты в уже созданном программном обеспечении,
но не более того. Основная задача тестирования – выявить и зафиксировать дефекты.
QC (Quality Control, контроль качества) – второй уровень, включающий в себя тестирование, но не
ограничивающийся им. Quality Control обеспечивает не только проверку продукта на соответствие
требованиям, но и соответствие заранее согласованному уровню качества продукта и готовность к выпуску
продукта в продакшен. Основная задача контроля качества – предоставить объективную картину того, что
происходит с качеством продукта на разных этапах разработки.

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

Как определить критичность дефекта (серьезность)?

A

Классы серьезности дефекта: Blocker, Critical, Major, Minor, Trivial

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

Пирамида тестирования

A

«Пирамида тестов» — абстракция, которая означает группировку тестов программного обеспечения по разным
уровням детализации.
Из этой пирамиды главное запомнить два принципа:
1.Писать тесты разной детализации.
2.Чем выше уровень, тем меньше тестов.
Модульные тесты должны составлять основную часть автоматизированного тестирования.
- Задачи автоматизации не закрываются до тех пор, пока эти скрипты не будут запущены на реализованной
функциональности;
- Разработка одновременно с модульными тестами заставляет разработчиков задуматься о проблеме,
которую они решают, и о любых крайних случаях, с которыми они могут столкнуться;
- Тесты являются детальными и могут помочь точно определить дефект;
- Время выполнения невероятно быстрое, потому что им не нужно полагаться на какой-либо пользовательский
интерфейс или внешние системы, такие как база данных или API;
- Они недорогие, просто пишутся, легко поддерживать.
Интеграционные тесты должны занимать середину пирамиды.
Используйте этот уровень для проверки бизнес-логики без использования пользовательского интерфейса (UI);
Тестируя за пределами пользовательского интерфейса, вы можете тестировать входы и выходы API или
сервисов без всех сложностей, которые вводит пользовательский интерфейс;
Эти тесты медленнее и сложнее, чем модульные тесты, потому что им может потребоваться доступ к базе
данных или другим компонентам.
Тесты пользовательского интерфейса должны размещаться на вершине пирамиды.
Большая часть вашего кода и бизнес-логики должна быть уже протестирована до этого уровня;
Тесты интерфейса пишутся, чтобы убедиться, что сам интерфейс работает правильно;
Тесты пользовательского интерфейса медленнее и тяжелее в написании и поддержке, поэтому необходимо
сводить их к минимуму.

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

Что такое : ошибка, дефект, сбой, баг?

A

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

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

Сбой - событие, при котором система не выполняет требуемую функцию

Баг - несоответствие реального поведения программы с ожидаемым

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

Атрибуты баг репорта

A

1 Название,
2 краткое описание
3 проект
4 компонент
5 билд
6 окружение
7 на кого назначен
8 серьёзность
9 приоритет,
10 шаги воспроизведения
11 ожидаемый результат
12 фактический результат
13 приложение (пруфы)

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

Тестирование документации относится к функциональному или нефункциональному?

A

Нефункциональное

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

Тестирование usability относится к функциональному или нефункциональному?

A

Нефункциональное

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

zero bug policy - Что это?

A

Найденные баги не отправляются в беклог, а фиксятся сразу

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

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

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

Регресс и smoke. В чем различие?

A

Отличаются полнотой охвата. Регресс - полная проверка. Smoke - быстрая проверка критических функций.

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

Отличие sanity тестирования от smoke

A

В отличии от дымового (Smoke testing), санитарное тестирование (Sanity testing) направлено вглубь
проверяемой функции, в то время как дымовое направлено вширь, для покрытия тестами как можно большего
функционала в кратчайшие сроки.

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

Определение граничных значений

A

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

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

Автоматизированное тестирование - это отдельный вид тестирования?

A

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

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

Расскажите занимались ли вы статическим тестированием?

A
  1. Анализ и тестирование требований
  2. Проверка макетов дизайнеров
  3. Архитектура проекта
  4. Тестовая документация
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

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

A

End-to-end тестирование - это процесс тестирования приложения на всех уровнях: начиная с фронтенда и заканчивая бэкэндом, включая интерфейс и конечные точки

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

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

A

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

19
Q

Компонентное (модульное), интеграционное, системное, приёмочное

A

1 Компонентное (модульное) тестирование проверяет функциональность и ищет дефекты в частях приложения, которые доступны и могут быть протестированы по-отдельности (модули программ, объекты, классы, функции и т.д.)
2 Интеграционное тестирование предназначено для проверки связи между компонентами, а также взаимодействия с различными частями системы (операционной системой, оборудованием либо связи между различными системами).
3 Системное - проверка как функциональных, так и не функциональных требований в системе в целом.
4 Приёмочное - формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:

  • определения удовлетворяет ли система приемочным критериям;
  • вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.
20
Q

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

A

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

21
Q

Какие типы тестирования вы знаете?

A

Функциональное, нефункциональное, структурное, изменений.

22
Q

Что такое состояние и что такое переход ?

A

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

23
Q

Из каких этапов состоит процесс тестирования?

A

1) Общее планирование и анализ требований;
2) Уточнение критериев приёмки;
3) Уточнение стратегии тестирования;
4) Разработка тест-кейсов;
5) Выполнение тест-кейсов;
6) Фиксация найденных дефектов;
7) Анализ результатов тестирования;
8) Отчетность

24
Q

Отличия тест анализа и технического анализа

A

Тест анализ - процесс поиска и рассмотрения информации необходимой для тестирования (люди со знанием приложения и документация)
Технический анализ - направлен на выявление дефектов в рабочем продукте

25
Q

Чем прямые требования отличаются от косвенных?

A

Прямые требования прописаны в документации и требованиях, а косвенные требования вытекают из прямых.

26
Q

Какие техники тест-дизайна использовали?

A

Эквивалентное разбиение, граничные значения, таблица принятия решений, попарное тестирование, тестирование состояний и переходов

27
Q

Премущества и недостатки чек листов в сравнении с тест кейсами

A

Плюсы: Легко поддерживать, менее вероятен парадокс пестицида
Минусы: вхождение нового сотрудника по чек листам более проблематичное в отличии от тест кейсов

28
Q

Парадокс пестицида

A

Если повторять те же тесты снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты

29
Q

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

A

Тестирование приложения на соответствие рекомендациям документа W3C, а именно положению Web Content Accessibility Guidelines (WCAG)
При Accessibility тестировании специалисты проверяют, насколько то или иное приложение доступно людям с ограниченными возможностями

30
Q

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

A

Матрицу соответствия требований («Traceability Matrix») – двумерная таблица, содержащая соответствия функциональных требований (functional requirements) продукта и подготовленных тестовых сценариев (test cases)

31
Q

Последовательность создания тестовых артефактов

A

Тест план, тест кейс/чек лист, баг репорт, отчёт о тестировании

32
Q

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

A

Позитивное - Тестирование проводимое с валидными значениями (тестирование на прохождение)
Негативное - тестирование проводимое хотя бы с одним невалидным значением.

33
Q

Как связаны с собой тест-план и тест-кейс?

A

И то, и другое - тестовая документация. Тест-кейсы пишутся на основе тест-плана.

34
Q

Какие типы интеграций знаете?

A

Снизу вверх, сверху вниз, большой взрыв

35
Q

В какой момент времени (когда) можно сказать что тестирование закончено?

A

Рассказать про критерии окончания тестирования:
1 Время
2 Бюджет
3 Все тест кейсы пройдены, найденные баги исправлены и перепроверены

36
Q

Что знаете про waterfall? Подходит ли waterfall для небольших проектов?

A

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

37
Q

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

A

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

38
Q

Разница симуляции и эмуляции

A

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

39
Q

Что такое тест-план?

A

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

40
Q

Что такое качество? Какие есть характеристики качества?

A

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

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

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

41
Q

Принципы тестирование

A

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

42
Q

Чем отличается валидация от верификации

A

Верификация - это проверка того, что продукт разработан согласно требованиям. Верификация = статическое тестирование

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

43
Q

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

A

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

44
Q

Расскажите про жизненный цикл дефекта

A
  1. Тестировщик находит дефект и создает баг репорт [открыт]
  2. Программист берет баг репорт в работу [в процессе]
  3. Программист завершил исправление дефекта [исправлен]
  4. Тестировщик проверяет, что дефект действительно исправлен [тестирование]
  5. Тестировщик завершил проверку, дефект исправлен [закрыт]