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

(36 cards)

1
Q

По позитивности:

A

Позитивное - это все то, что указано в документации

Негативное - ввод не корректных данных

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

По автоматизации:

A

Ручное - проводим мы
Автоматизированное - проводит автотестеровщик

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

По уровням:

A

Приемочное(end2end)- проверка всего функционала для проверки готовности к передачи заказчику

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

Интеграционное- несколько модулей тестируются вмести

Модульное - тестирование одного компонента

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

По функциональности:

A

Функциональное - Какие функции должен выполнять продукт. Ручное тестирование по требованиям, ТЗ, документации
Регресс - Проверка всего функционала после доработок, чтобы проверить не сломался ли существующий функционал. (тестировщики)

Санитарное(Sanity) - Точечное тестирование. Тщательно проверяется одна новая функция. Если тест не проходит, то он отправляется на доработку. Например авторизация или добавление в избранное(тестировщики).

Смоук -Тестирование критически важного функционала без подробных проверок, которое проводиться буквально за 5 минут и в самом начале. Проверка функционала “Оплата” на корректных данных. (разработчики и тестировщики).

Нефункциональное - Какие технические требования к качеству продукта
-Инсталляционное - Установка, Удаление, Обновление
-Верстка - верстка сайта пиксель в пиксель
-Безопасность - SQL инъекция, Пентест тестирование, анализ системы на наличие уязвимости
-Удобство UX - проверяем удобно и понятно ли приложение для пользователя
-Удобство интерфейса - (GUI/UI Testing) - проверка результата к макету
-Нагрузочное - тест стабильности, что приложение в течение 24 часов выдерживает нагрузку
-Стрессовое - нагрузка х10 на 30 секунд. Нагружаем пока бэк не слетит. Нагружаем пока скорость ответа не повыситься
-По атрибутам требования

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

По степени подготовки документации:

A

По документации

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

Ad-Hoc - метод тестирования без какого-либо плана(может провести кто угодно). Не требуется подготовки и выполняется в любое время. Помогает выявить ошибки, которые могли быть пропущены. Используется как дополнительный метод.

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

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

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

Черный ящик- тестирование без знания внутренней структуры и реализации продукта.

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

Компонентный уровень(Модульный)

A
  • в основном называют Юнит тестирование. Тестируют отдельные части кода. Это могут быть классы, функции и методы классов.

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

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

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

Интеграционный уровень и способы тестирования

A

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

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

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

Системный уровень

A

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

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

Приемочное тестирование

A

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

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

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

A

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

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

Тесты уровнем выше не проверяют логику тестов уровнем/уровнями ниже.

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

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

Почему именно такой порядок у пирамиды тестирования, и почему юнит тесты в самом низу?

A

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

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

Почему unit тестирования в поддержке сложны

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

Различие Ор от ФР

17
Q

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

A

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

18
Q

Для чего проводят тестирование ПО?

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

QA Quality Assurance(Обеспечение качества)

A
  • изучение возможностей по изменению и улучшению процесса разработки, улучшению коммуникации в команде, где тестирование является лишь одним из аспектов обеспечения качества. QA подключается к задачам с момента появления идеи. (ВАЛИДАЦИЯ и ПРОВЕРКА)
20
Q

К задачам обеспечения качества относятся:

A

1 - Проверка технических характеристик и требований к ПО;
Применение: у нас есть требования к фиче (новому функционалу), которые сформировал аналитик. Мы сравниваем ожидаемые (требования и тестовую документацию) результаты с фактическими. Также бывают нефункциональные требования, которые в целом понятны, но не были учтены аналитиком или разработчиком. FE: Кнопка «ОК» должна быть зеленой, а «Отмена» — красной, но в нашем продукте все наоборот.

2 - Оценка рисков;
Применение: зачастую при планировании следующего спринта (далее вы узнаете, что это такое) при оценке задач мы, как QA, поднимаем вопрос о том, в чем могут возникнуть проблемы, что может быть затронуто + оценка времени, которое потребуется на тестирование.

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

5 - Тестирование;
Применение: Само тестирование ПО

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

21
Q

QC Quality Control (Контроль качества)

A
  • анализ результатов тестирования и качества новых версий выпускаемого продукта. Инженер по контролю качества, как и тестировщик, подключается к проекту, когда разработка завершена. Он проверяет, что продукт получился таким, каким его хотел видеть заказчик. (По факту только ПРОВЕРКА)
22
Q

К задачам контроля качества относятся:

A

Проверка готовности ПО к релизу;
проверка соответствия требованиям и качества данного проекта.
Проверка ФР к ОР

23
Q

Верификация (verification)

A

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

24
Q

Валидация (validation)

A

Это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, его требованиям к системе.

25
Виды документации
Проектная и продуктовая
26
7 принципов тестирования
1 - Тестирование демонстрирует наличие дефектов (только снижает вероятность их наличия, но не гарантирует их отсутствие) - Тестирование только снижает вероятность наличия дефектов, которые находятся в ПО, но не гарантирует их отсутствие. 2 - Исчерпывающее тестирование невозможно, за исключением тривиальных случаев. - Полное тестирование с использованием всех входных комбинаций данных, результатов и предусловий физически не возможно. 3 - Раннее тестирование - Следует начинать тестирование на ранних стадиях жизненного цикла разработки ПО, чтобы нати дефекты как можно раньше. 4 - Скопление дефектов - Большая часть дефектов находится в ограниченном количестве модулей. 5 - Парадокс пестицида - Если повторять те же тестовые сценарии снова и снова, в какой-то момент этот набор тестов перестанет находить новые дефекты. 6 - Тестирование зависит от контекста - Тестирования проводится по разному в зависимости от контекста. (Например ПО, в котором критически важна безопасность тестируется иначе, чем новостной портал) 7 - Заблуждение об отсутствии ошибок - Отсутствие найденных ошибок при тестирование не всегда означает готовность продукта к релизу. Система должна быть удобна пользователю в использование и удовлетворять его ожиданиям и потребностям.
27
Требования - это? Кто их пишет?
это спецификация (описание) того, что должно быть реализовано. либо заказчик, либо аналитик, либо проджект/продукт менеджер.
28
9 атрибутов требований
1 - Корректность — точное описание разрабатываемого функционала. 2 - Проверяемость - требования сформулированы так, что можно выставить однозначный вердикт, выполнено все в соответствие с требованиями или нет. 3 - Полнота - содержится вся необходимая информация для реализации функциональности. 4 - Недвусмысленность -требование должно содержать однозначные формулировки. 5 - Непротиворечивость - не противоречит себе и другим требованиям. 6 - Приоритетность - проставлен приоритет 7 - Атомарность - нельзя разбить на более мелкие части без потери деталей. 8 - Модифицируемость - в каждое требование можно внести изменения. 9 - Прослеживаемость - уникальный идентификатор.
29
SDLC(Жизненный цикл разработки программного обеспечения) - это
это структурированный процесс состоящий из различные этапов и фаз, каждый из которых имею свои цели и задачи.
30
Этапы SDLC:
1 - Анализ и сбор требований: на этом этапе определяются и собираются требования к программному продукту. Проводится исследование, выявляются потребности пользователей и определяются функциональные и нефункциональные требования. 2 - Проектирование: на этом этапе разрабатывается архитектура и дизайн программного продукта. Определяются компоненты системы, их взаимосвязи и интерфейсы. 3 - Разработка: на этом этапе происходит непосредственная реализация программного продукта. Программисты пишут код, создают функциональность и тестируют отдельные фрагменты кода. 4 - Тестирование: на этом этапе проводится тестирование программного продукта с целью выявления ошибок, дефектов и проверки его соответствия требованиям. Включает в себя функциональное тестирование, интеграционное тестирование, системное тестирование и другие виды тестирования. 5 - Развёртывание: на этом этапе программный продукт готовится к выпуску и установке в целевой среде. Включает в себя подготовку документации, установку, настройку и обучение пользователей. 6 - Эксплуатация и поддержка: после развёртывания программного продукта происходит его эксплуатация, поддержка и обновление. Ведется мониторинг работы системы, исправление ошибок и добавление новых функций.
31
STLC(Жизненный цикл тестирования программного обеспечения) - это
- это структурированный процесс состоящий из различных этапов и фаз, которые выполняются при проведение тестирования продукта.
32
Этапы STLC:
1 - Планирование: на этом этапе определяются цели тестирования, разрабатывается план тестирования и определяются ресурсы, необходимые для выполнения тестов. 2 - Анализ требований и создание тестовой документации: на этом этапе изучаются требования к программному продукту и создается тестовая документация, включающая тестовые случаи, тестовые сценарии и другие артефакты. 3 - Дизайн тестов: на этом этапе разрабатывается стратегия тестирования и определяются методы, подходы и техники, которые будут использоваться для проведения тестов. Создаются тестовые случаи и сценарии на основе требований и анализа продукта. 4 - Подготовка к выполнению тестов: на этом этапе создается тестовая среда, включающая необходимые инструменты и данные для проведения тестов. Также выполняется подготовка тестовых сценариев и проверка настроек тестовой среды 5 - Выполнение тестов: на этом этапе проводится тестирование по определенным тестовым случаям и сценариям. Результаты тестов регистрируются, ошибки и дефекты отслеживаются, а отчеты о тестировании создаются. 6 - Анализ результатов тестирования: на этом этапе анализируются результаты тестирования, выявляются и регистрируются дефекты. Оценивается качество продукта и принимается решение о его готовности к выпуску. 7 - Завершение: на этом этапе подводятся итоги тестирования, создается финальный отчет о проведенном тестировании, проводится оценка процесса тестирования и выявляются возможные улучшения.
33
Серьёзность (Severity)
- это то на сколько ошибка приносит ущерб продукту
34
Градация Серьезности:
Блокирующий(Bloker) -Блокирующая ошибка, приводящая приложение в нерабочее состояние, в результате чего дальнейшая работа с тестируемой системой или ее ключевыми функциями становится невозможной. Критический(Critical) - Не работает важная часть одной функции или значительная часть, но есть обходной путь, позволяющий продолжить тестирование. Значительный(Major) - не работает важная часть какой-либо функции/бизнес-логики, но при выполнении определенных условий либо есть обходной путь, позволяющий продолжить ее тестирование, либо не работает не очень важная часть какой-либо функции. Незначительный(Minor) - часто встречающиеся ошибки графического интерфейса, которые не влияют на функциональность, но ухудшают удобство использования или внешний вид. Также незначительные функциональные дефекты, которые воспроизводятся на определенном устройстве.
35
Приоритет(Priority) - это
то на сколько быстро нужно устранить дефект
36
Градация Приоритета:
Высокий (High)Критическая для проекта ошибка. Должна быть исправлена как можно скорее. Средний (Medium)Не критическая для проекта ошибка, но требующая обязательного решения. Низкий (Low)*Наличие данной ошибки не является критическим и не требует срочного решения. Может быть исправлена, когда у команды появится время на ее устранение.