вторник, 5 марта 2024 г.

Конспект курса по ISTQB

Конспект курса

https://www.youtube.com/playlist?list=PLlBzzzm8XPJG1DVoF1ihdgg2fQeK6LHxh

Курс ISTQB Foundation | Fundamentals of Testing

1 глава





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

Тестирование и отладка


Ошибка, дефект (недочет, изъян), отказ (сбой)

Цикл разработки ПО
QA - QC - 

Тестирование - это контроль качества, но не QA.

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

Контекстные факторы, которые влияют на корпоративный процесс тестирования, включают, в частности:
  • Используемые модель жизненного цикла разработки программного обеспечения и проектные методологии
  • Рассматриваемые уровни и типы тестирования
  • Продуктовые (риски функционирования и качества продукта) и проектные риски (риски реализации, разработки, доработки и тестирования)
  • Предметную область (бизнес область)
  • Операционные ограничения, включая, в частности:
  • Бюджеты (деньги на людей) и ресурсы (есть ли в команде необходимы скиллы) 
  • Сроки (временные ограничения)
  • Сложность (простые и сложные системы) 
  • Договорные и нормативные требования (со стороны регуляторов и/или заказчика) 
  • Организационные политики и практики
  • Необходимые внутренние и внешние стандарты (например внутри отраслевые стандарты)
  • Планирование тестирования - определение цели, подхода тестирования, принять во внимание контекст и ограничения. После планирования появляется тест-план, который говорит, что тестируем, как тестируем, какие ограничения принимаем во внимание
  • Мониторинг и контроль тестирования - регулярная активность направленная на то, чтобы убедиться что все активности идут по плану, а если не по плану, то нужно предпринять чтобы вернуться к плану или изменить план. Раз в спринт создается саммари репорт. 
  • Анализ тестирования - что тестируем. Описываются условия тестирования, баг-репорты по документации 
  • Проектирование тестов - как тестируем. Высокоуровневые тест-кейсы и матрицы покрытия, проектирование окружения
  • Реализация (имплементация) тестов - проверяет, что всё готово к тестированию - написание тест-кейсов, подготовка тестовых данных. Создание низкоуровневых тест-кейсов, тестовых наборов. 
  • Выполнение тестов - баг-репорты, логируем результаты прохождения тест-кейсов 
  • Завершение тестирования - результаты тестирования. Тест саммари репорт (отчет), могут возникнут запросы на изменение. 
Прослеживаемость (трассируемость, traceability) -  позволяет докладывать о прогрессе в том виде, в котором будет более понятен людям, которые не участвуют непосредственно в разработке.

Курс ISTQB Foundation | Testing Throughout the Software Development Lifecycle | часть 1
2 глава
(9-13 вопросы)

Тестирование - это способ оценить качество ПО и снижения риска ошибок в работе этого ПО.

Верификация - процесс проверки того что ПО соответствует предъявляемому требованию

Валидация - проверка ПО что оно соответствует ожиданиям (неформальным требованиям) 

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


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


Процесс тестирования - Шаги - Активности по каждому этапу - см. в силлабусе!


Последовательные модели
Итеративные (многократное повторение одних и тех же стадий)  и инкрементальные (функциональное наполнение, которое наращивается с каждой итерацией) модели





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

  • Компонентное интеграционное тестирование - зона ответственности разработчиков
  • Системное интеграционное тестирование - зона ответственности тестировщиков/ Системное интеграционное тестирование может быть выполнено после системного тестирования или параллельно с выполняемыми активностями по системному тестированию

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


Системное тестирование - вся система собрана, все элементы интегрированы
Фокусируется на проверке системы целиком - от начлаа и до конца
Базис: спецификации, пользовательские сценарии (use case и user story), бизнес процессы
Проводится в идеале независимой командой тестировщиков, в тестовой среде близкой к среде по реальной эксплуатации.
Используется функциональное и нефункциональное тестирование.


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

Есть ли какие-то риски?
Выполнили ли разработчики свои обязательства?
Может ли система быть выпущена на рынок? 

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

Контракт и комплаенс (нормативное, регуляторное)  приемочное тестирование

Альфа и Бета - производится пользователями продукта на стороне производителя и за её пределами, на стороне пользователей.

Характеристики:

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

Типы тестирования

Функциональное - может пользоваться техниками черного ящика
Функциональное - три характеристики: полнота, правильность, нужность (целесообразность)
Можно смотреть с трех точек зрения: основанное на требованиях (спеках, юзер стори), знание бизнеса, опыт.

Нефункциональное - может пользоваться техниками черного ящика


Производительность - time behavior (насколько время отклика, обработки, производительность отвечает заявленный требованиям), использование ресурсов (оценка кол-ва и типов ресурсов используется и сравниваем с требованиями), емкость (объем, мощность) (максимальное кол-во пользователей,транзакций, макс объем данных за секунду)
Load -  time behavior, использование ресурсов, емкость (объем, мощность) - способность системы справляться с возрастанием ожидаемой нагрузки
Стресс - time behavior, использование ресурсов, емкость (объем, мощность) - способность выдержать пиковые нагрузки сверх ожидания
Масштабируемость - способность системы к росту, расширению
Совместимость - сосуществование (false)
Юзабилити - удобство
Надежность - поведение во время отказа, восстанавливаемость
Безопасность - защита данных
Поддерживаемость (сопровождение) - 
Портируемость (мобильность) - возможность переехать 

Структурное тестирование (white-box)
Анализ структуры кода, оценивается покрытие по структурным элементам, требуются специальные навыки, могут применяться на всех уровнях, но чаще применяются на компонентном и компонент-интеграционном, т.к. нужен код.
В других уровнях может анализироваться диаграммы.


На всех уровнях



Курс ISTQB Foundation | Static Testing | часть 1
Статическое тестирование делится на ручная проверка документации (ревью документации , рецензирование) и оценки кода или других рабочих продуктов (статический анализ кода) с помощью специальных инструментов. Без запуска кода
Статический используется для тестирования безопасности.
Используется в автотестах.

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

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

Статическое тестирование - дешевы метод обнаружения и устранения дефектов

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

Отличие - поиск разного вида дефектов.

Отличия:
Статическое тестирование - ищет дефекты непосредственно в рабочем продукте
Динамическое - выявляет сбои вызванные дефектами, когда уже программа запущена

Статическое тестирование - может увеличить согласованность и качество самих рабочих продуктов (спека, кода) 
Динамическое - концентрируется на внешнем, видимом поведении программы

Типичные дефекты:
  • дефекты требований
  • дефекты дизайна (неэффективные алгоритмы или структуры БД)
  • дефекты кода (переменные с неопределенными значениями, объявленные переменные но не используемые, повторяющийся код)
  • отклонения от стандартов
  • некорректные спеки интерфейсов
  • уязвимости в безопасности
  • пробелы или не точности в тестовом покрытии
  • дефекты сопровождения
Некоторые дефекты  статического тестирования не могут быть найдены динамическими методами.

Ревью


Неформальные - не документируются. 

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

Степень формальности зависит от: 
  • выбранной модели жизненного цикла разработки 
  • от сложности подхода и технологий разработки
  • от сложности самого продукта 
  • от законодательных и нормативных требований
  • необходимостью логирования (ведению журнала)

Мб разные цели: поиск дефектов, лучше разобраться в продукте, обучение и пр.

Курс ISTQB Foundation | Static Testing | часть 2

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

Критерии входа и выхода:

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

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

Роли и обязанности в формальном ревью

  • Автор рабочего продукта - создатель продукта и исправитель ошибок
  • Менеджер - ответственный за планирование, назначает людей, определяет бюджет, дедлайны, следит за эффективность ресурсозатрат, принимает контрольные решения на любом этапе в случае необходимости
  • Модератор - эффективное проведение митингов
  • Руководитель (лидер) ревью - отв за процесс ревью, отв-сть перед менеджером, определение ролей, орг решения
  • Ревьюер - эксперт, заказчик, пользователь
  • Секретарь 

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

Главная цель для всех - нахождение дефектов.

Выбор зависит от потребностей проекта, ресурсов, рисков, навыков.

Над одним продуктом могут проходить несколько разных типов ревью. 

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

Разбор (прохождение) - митинги проводятся автором, индивидуальная подготовка не обязательна, обязательно участие секретаря, цели - обучение, понимание, нахождение дефектов

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

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


Техники для индивидуальной подготовки, для наиболее эффективного нахождения дефектов, техники могут применяться ко всем типам ревью:

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

Ревью на основе использования чек-листа

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

Основанное не сценарии

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

Ролевое рецензирование

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

Рецензирование на основе точки зрения (перспектива)

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


Курс ISTQB Foundation | Test Design Techniques | часть 1

Разбираются техники черного ящика

Курс ISTQB Foundation | Test Design Techniques | часть 2

Тестирование белого ящика
Тестирование состояний
Тестирование условий

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

Тестовое покрытие - процент функциональных областей, которые покрыты тестами.

100% покрытие условия обеспечивает 100% покрытие состояний, но не наоборот!


Курс ISTQB Foundation | Test Management | часть 1

Независимое тестирование

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

Задачи тест менеджера и тестировщика

Задачи тест менеджера:

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

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

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

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

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

Тестовые стратегии и тестовые подходы

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

Типичные стратегии:

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

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

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

Тестирование на основе процесса (или стандарта) – подразумевает анализ, проектирование и выполнение тестов в соответствии с внешними правилами или стандартами, такими как: отраслевые стандарты, документация процесса, базис тестирования или любой другой нормативной базой, используемой в организации.

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

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

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

 5.2.3 Критерии входа и выхода (критерии готовности и критерии завершения)

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

Примеры см. в силлабусе

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

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

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

5.2.5 Факторы, влияющие на затраты на тестирование

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

5.2.6 Методы оценки тестирования

Существует несколько методов, используемых для оценки затрат (времени, людей и др. ресурсы) на адекватное тестирование. Наиболее популярные методы - это:

  • Метод, основанный на метриках - оценка затрат, использующая метрики ранее выполненных проектов или типовые значения
  • Метод экспертной оценки - оценка затрат на основе опыта владельцев задач тестирования или экспертов

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

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

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

Метод «Дельфи», с другой стороны, является экспертным методом, в котором группа экспертов дает оценки, исходя из своего опыта. (ISTQB-ATM Продвинутый уровень. Тест-менеджер).


Курс ISTQB Foundation | Test Management | часть 2

5.3 Контроль и мониторинг тестирования

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

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

5.5 Риски и тестирование

5.5.1 Определение риска

Риск подразумевает наступление некоторого негативного события в будущем. Уровень риска можно определить через вероятность события и серьезность последствий (влияние).

5.5.3 Тестирование, основанное на рисках, и качество продукта

Идея в том чтобы макс снизить риски  продукта 

5.6 Управление дефектами



Курс ISTQB Foundation | Tool Support for Testing




Комментариев нет:

Отправить комментарий