Фундаментальная теория тестирования Flashcards
Почему именно такой порядок у пирамиды тестирования, и почему юнит - тесты в самом низу?
-
Unit-тесты занимают основное место в пирамиде, так как они:
- Наименее затратные по времени и ресурсам.
- Проверяют отдельные компоненты, что позволяет быстро обнаруживать и устранять ошибки в них.
- Обеспечивают широкий охват кода при меньших усилиях. -
Integration-тесты следуют за Unit-тестами, проверяя взаимодействие между компонентами:
- Устанавливают корректность передачи данных и работы между компонентами.
- Имеют более высокий уровень абстракции и сложности, чем Unit-тесты, поэтому их меньше, но они все еще затратны. -
End-to-End (E2E) тесты занимают вершину пирамиды:
- Проверяют приложение на уровне пользователя, оценивая его работу в реальных условиях.
- Более медленные и затратные, так как они эмулируют действия пользователя на более высоком уровне.
Что такое тестирование?
проверка соответствия реальных и ожидаемых результатов поведения программы, проводимая на конечном наборе тестов, выбранном определённым образом.
Что такое баг?
это различие фактического от ожидаемого (требования) результата.
Цель тестирования
проверка соответствия ПО предъявляемым требованиям, обеспечение уверенности в качестве ПО, поиск очевидных ошибок в программном обеспечении, которые должны быть выявлены до того, как их обнаружат пользователи программы.
Для чего проводится тестирование ПО?
-Для проверки соответствия требованиям.
-Для обнаружение проблем на более ранних этапах разработки и предотвращение повышения стоимости продукта.
-Обнаружение вариантов использования, которые не были предусмотрены при разработке. А также взгляд на продукт со стороны пользователя.
-повышение лояльности к компании и продукту, т.к. любой обнаруженный дефект негативно влияет на доверие пользователей.
QA
(Quality Assurance) — Обеспечение качества продукта — изучение возможностей по изменению и улучшению процесса разработки, улучшению коммуникаций в команде, где тестирование является только одним из аспектов обеспечения качества. QA подключается к задачам с момента идеи. (ВАЛИДАЦИЯ и ВЕРИФИКАЦИЯ)
К задачам обеспечения качества относятся:
- проверка технических характеристик и требований к ПО;
Применение: у нас есть требования к фиче (feature или новый функционал), которые сформировал аналитик. Мы проверяем Ожидаемые (требования и тестовая документация) с фактическими результатами. Так же бывают нефункциональные требования, которые в целом понятны, но были не учтены аналитиком или разрабом. FE: Кнопка Окей должна быть зеленая, а Cancel красная, но у нас в продукте наоборот. - оценка рисков;
Применение: Зачастую при планировании следующего спринта (дальше узнаете что это), на оценке задач, мы как QA подымаем вопрос о том, в чем могут возникнуть проблемы, что может быть задето + оценка времени, которое уйдет на тестирование. - планирование задач для улучшения качества продукции;
Применение: QA Engineer может предлагать улучшения при обсуждении новой фичи, как можно оптимизировать или улучшить уже придуманную аналитиком фичу. - подготовка документации, тестового окружения и данных;
- тестирование;
Применение: Само тестирование по составленной тестовой документации - анализ результатов тестирования, а также составление отчетов и других документов.
Применение: Когда мы совершаем прогон в нашей TMS (Test Management System - место где хранится наша дока), у нас формируется отчет сколько успешных кейсов было пройдено, сколько багов, сколько пропустили и сколько нашли блокеров.
QC
(Quality Control) — Контроль качества продукта — анализ результатов тестирования и качества новых версий выпускаемого продукта. QC engineer, как и тестировщик, подключается к проекту, когда разработка завершена. Он проверяет, что продукт получился таким, как хотел заказчик. (По факту только ВЕРИФИКАЦИЯ)
К задачам контроля качества относятся:
проверка готовности ПО к релизу;
проверка соответствия требований и качества данного проекта.
Проверка ФР к ОР
Верификация (verification)
это процесс оценки системы, чтобы понять, удовлетворяют ли результаты текущего этапа разработки условиям, которые были сформулированы в его начале.
Валидация (validation)
это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, его требованиям к системе.
Виды документации
Проектная и продуктовая
7 принципов тестирования
- Тестирование демонстрирует наличие дефектов (только снижает вероятность наличия, но не гарантирует их отсутствия)
- Исчерпывающее тестирование невозможно, за исключением тривиальных случаев.
- Раннее тестирование
4.Скопление дефектов. - Парадокс пестицида
- Тестирование зависит от контекста
- Заблуждение об отсутствии ошибок
Требования - что это?
это спецификация (описание) того, что должно быть реализовано.
Требования прописывает…
либо заказчик, либо аналитик, либо проджект/продукт менеджер.
9 атрибутов требований
- Корректность — точное описание разрабатываемого функционала.
- Проверяемость
- Полнота
- Недвусмысленность -требование должно содержать однозначные формулировки.
- Непротиворечивость
- Приоритетность
- Атомарность
- Модифицируемость
- Прослеживаемость
SDLC
(Software Development Life Cycle) - это жизненный цикл разработки программного обеспечения. Он представляет собой структурированный процесс, состоящий из различных фаз и этапов, которые выполняются при создании программного продукта.
этапы SDLC
- Анализ и сбор требований: на этом этапе происходит определение и сбор требований к программному продукту. Проводится исследование, выявляются потребности пользователей и определяются функциональные и нефункциональные требования.
- Проектирование: на этом этапе разрабатывается архитектура и дизайн программного продукта. Определяются компоненты системы, их взаимосвязи и интерфейсы.
- Разработка: на этом этапе происходит непосредственная реализация программного продукта. Программисты пишут код, создают функциональность и выполняют тестирование единиц кода.
- Тестирование: на этом этапе проводится тестирование программного продукта с целью выявления ошибок, дефектов и проверки его соответствия требованиям. Включает в себя функциональное тестирование, интеграционное тестирование, системное тестирование и другие виды тестирования.
- Развёртывание: на этом этапе программный продукт готовится к выпуску и установке на целевой среде. Включает в себя подготовку документации, инсталляцию, настройку и обучение пользователей.
- Эксплуатация и поддержка: после развёртывания программного продукта происходит его эксплуатация, поддержка и обновление. Ведется мониторинг работы системы, исправление ошибок и добавление новой функциональности.