Что такое матрица прослеживаемости тестирование

Пример матрицы трассировки требований

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

Примеры картинок с трассировочными матрицами
Пример 1
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование
Пример 2
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование
Пример 3
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование
Пример 4
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Инструкции:
В соответствии с лучшими практиками, бизнес-требования следует декомпозировать до мельчайших пакетов и нумеровать в соответствии со следующими правилами нумерации: BR001, BR002 и т.д. Для каждого бизнес-требования будет одно или несколько функциональных требований, которые должны соответствовать соглашению по нумерации для соответствующего бизнес-требования: FR001.01, FR001.02, FR001.03, FR002 и т.д. Функциональные требования должны быть декомпозированы до мельчайших пакетов.

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

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

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

# Бизнес-требования — номер бизнес-требования (в соответствии с документацией по требованиям), который идентифицирует критерии успеха, на основе которых будут выполняться тесты.

# Функциональные требования — идентификационный номер функционального требования (в соответствии с документацией по требованиям), которое исполняет указанное бизнес-требование.

# Вариант использования — идентификационный номер варианта использования, который будет использоваться для проверки соответствия бизнес-требований с функциональными требованиями. Этот параметр должен соответствовать ID в документе по требованиям. Поле является необязательным для заполнения.

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

Вы можете создать таблицу со следующими столбцами и строками:

Источник

Матрица трассабилити

Когда требования на проекте меняются “на лету” и у вас нет под рукой средства контроля за реализацией каждого отдельного требования по фиче или модулю, перед вами встает вопрос: как проводить анализ покрытия? Одним из таких инструментов, который использует наша команда QA на подобных проектах — матрица трассируемости (traceability matrix).

На данный момент мы используем матрицы более 2,5 лет. За это время мы смогли оценить преимущества этого инструмента, а также адаптировать его под наш проект.

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

По определению матрица трассируемости — двумерная таблица, содержащая соответствие функциональных требований продукта (functional requirements) и подготовленных тестовых сценариев (test cases).

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

Таким образом, таблица дает визуальное отображение двух параметров:

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

Поэтому матрица имеет вид таблицы, каждая строка которой содержит:

Так как мы используем таск трекер Jira, Zephyr by Jira для тестовой документации и систему управления требованиями Сonfluence, все сущности синхронизируются и такая трассируемость позволяет нам:

Варианты связей в матрице трассируемости

Привязка требования и тест-кейса может быть:

Специфика оценки покрытия с помощью матриц трассируемости

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

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

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

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

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

Оценка покрытия также рассчитывается отдельно для каждого модуля или фичи.

При таком подходе мы можем использовать метрику, описанную выше: “количество требований к количеству тестовых артефактов”. Даже если у нас есть связи 1 к n, n к n, у нас есть несколько компонентов, каждый из которых может быть использован в нескольких модулях. Требования и приемочные критерии описываются в каждой матрице, а тестовый артефакт используется один.

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

Создание и ведение матрицы

Создание матрицы включено в наш воркфлоу работы над задачами по аналитике.

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

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

И здесь можно выделить следующие этапы составления Traceability Matrix:

Сложности в работе с матрицей трассируемости

Если все QA-специалисты заняты тестированием приоритетных задач, мы переносим создание матрицы по конкретной фиче. Максимально он переносится на момент тестирования первой задачи по этой фиче и в таком случае матрица заполняется тест-кейсами по мере тестирования задач, в которых реализована фича.

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

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

Источник

Что такое trace-матрица способностей в ручном тестировании? Как рассчитать или оценить.?

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

3 ответа

Что такое Матрица прослеживаемости?

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

Требование Trace-матрица возможностей

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

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

Параметр RTM включает в себя:

Насколько мне известно, существует три типа матрицы прослеживаемости

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

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

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

Преимущество матрицы прослеживаемости требований

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

Я изучаю функциональное программирование в Scala, и довольно часто мне нужно trace оценить функцию, чтобы лучше понять, как она работает. Например, имея следующую функцию: def foldRight[A,B](l: List[A], z: B)(f: (A, B) => B): B = l match < case Nil =>z case Cons(x, xs) => f(x.

Похожие вопросы:

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

Что такое архитектура маршрутизации WordPress’ и как сделать trace файл по URL? Как бы вы направили URL в конкретный файл PHP или функцию PHP, например www.my-site.com/abc выполняет функцию.

Возможный Дубликат : CallStack определяет, куда вы идете дальше? Начав с комментария в этом вопросе, я думал, что знаю, что такое Stack Trace, но, похоже, не знал. Я погуглил его, но не смог найти.

Я пытаюсь переместить изображение в Android на ощупь и перетащить. Я наткнулся на матрицу, когда изучал это. Не мог бы кто-нибудь объяснить, что такое матрица и чего я могу достичь с ее помощью в.

Я изучаю функциональное программирование в Scala, и довольно часто мне нужно trace оценить функцию, чтобы лучше понять, как она работает. Например, имея следующую функцию: def foldRight[A,B](l.

Я немножко отступился на функцию stats::model.matrix в R. В описании говорится, что он создаст матрицу дизайна. Это дает мне определенное количество строк, которое не соответствует ни количеству.

Я знаю, что Матрица Гессиана-это своего рода тест второй производной функций, включающих более одной независимой переменной. Как найти максимум или минимум функции, включающей более одной.

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

Источник

Что такое матрица прослеживаемости тестирование

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

Тестовое покрытие = покрытие тестами требований к продукту/системе, выраженное в численном либо процентном соотношении. Тестовое покрытие является одной из основных метрик качества продукта.
Иногда под тестовым покрытием имеют в виду покрытие критериев приёмки, покрытие кода, покрытие именно автотестами.
Тестовое покрытие говорит о добротности тестирования, о степени доверия к продукту, который мы делаем, о том где у нас есть «белые пятна» и выше риск проявления ошибки.

Процесс определения покрытия кратко картинкой:

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Итак, вы прошли этап определения причастных сторон, ознакомились с документацией по Проекту, получили описание архитектуры Продукта/Системы, требования к ней, критерии приёмки.
Теперь надо определиться с объёмом тестирования и видами тестирования.

Матрица трассируемости требований (Requirement Traceability Matrix) = двумерная таблица, содержащая соответствие требований (user/business requirements, software requirements) и подготовленных тест-кейсов (test cases).
Основное её предназначение в отображении степени покрытия требований тест-кейсами.

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

В соответствии с лучшими практиками, Бизнес-Требования следует максимально декомпозировать и нумеровать в соответствии со следующим правилом: BR001, BR002 и т.д.
Для каждого Бизнес-Требования будет одно или несколько Функциональных Требований, которые должны соответствовать соглашению по нумерации для соответствующего бизнес-требования: FR001.01, FR001.02, FR001.03, FR002 и т.д. Функциональные требования также должны быть максимально декомпозированы.

Пример рабочего процесса, в котором присутствует создание Матрицы Трассировки:

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Формат тест-кейса

Определение классов эквивалентности (Equivalence Partitioning)
и Анализ Граничных Значений (Boundary Value Analysis)

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Попарное тестирование (Pairwise Testing)

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

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Причина / Следствие (Cause/Effect)

Тестирование смены состояний (State Transition Testing)

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Таблица решений (Decision Table Testing)

Способ компактного представления модели со сложной логикой. Устанавливает связь между условиями (входными параметрами) и результатом (действиями Системы). Определить/записать все условия. Просчитать возможное количество комбинаций условий. Заполнить комбинации. Записать действия. Убрать лишние комбинации.
Например:

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Тестирование путей (Path Testing)

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

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Предугадывание ошибки (Error Guessing)

Это когда тест-аналитик/тестировщик использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы «предугадать» при каких входных условиях система может выдать ошибку. Например, спецификация говорит: «пользователь должен ввести код». Тест-аналитик, будет думать: «Что, если я не введу код?», «Что, если я введу неправильный код? «, и так далее. Это и есть предугадывание ошибки.

Исчерпывающее тестирование (Exhaustive Testing)

Источник

Какие тесты вам нужны? Часть 2. Матрица видов тестирования

Аннотация

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

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

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

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

Классификация видов тестирования

Принадлежность к одной категории не исключает принадлежность к другой.

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

Смотрите какой милый майнд мап с видами вина:
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование
Казалось бы, он полностью охватывает все виды вин. А теперь посмотрите на него еще раз и перечислите вина по странам производства, как они расставлены в супермаркете или в меню ресторана. Не получается? А как же тогда выбирать? Эта карта не подходит для выбора по производителям. Если присмотреться внимательнее — там есть приписка «по стилю и вкусу».

Вот так же и с видами тестов.

Ограничиваясь 1 критерием группировки, мы упускаем из виду все разнообразие тестов.

А критерий группировки может является ключевым критерием выбора.

Карта видов тестирования

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

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

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

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

Цветокоды
Про желтые блоки в карте знаний

упустив какой-то вид, вы теряете кучу ценных проверок, а, значит, и дефекты.

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

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

Про зелёные блоки в карте знаний

На самом деле эти названия — это виды требований. Тесты, покрывающие конкретный вид требования, логично называть тестами этого требования. Большинство названий тестов, помещенных в голубые блоки — тоже вылезло из названий требований. Например, «приложение должно быть отказоустойчивым» порождает тесты отказоустойчивости.

Зеленые блоки отличаются от голубых тем, что редко вообще упоминаются в русскоязычных обзорах видов тестирования. Однако если вы, к примеру, поищите словосочетание «suitability testing» вы найдете много полезного.

Как пользоваться картой

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

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

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

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

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

Критерии классификации

Приступим, пробежимся в ширину по верхнему уровню дерева.

1. Вид требований

Все тесты зависят от того, что требуется от разрабатываемого ПО.

Если нам есть что разрабатывать, значит есть что тестировать. Наличие формально описанных требований — вещь очень важная, но не является обязательной. Не важно, есть ли у вас бумажка, называемая «ТЗ»/«SRS» или нет — требования, на основе которых вы проводите проверку, всегда есть.

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

Можно считать, что требований нет, если разработчики не поняли, что от них ждут, и не смогли приступить к работе. Я знаю хороших разработчиков, которые не приступают к разработке, пока не получат ответ на вопрос: «а для чего этот софт должен делать то-то и то-то? Какая конечная цель использования?»

Если же разработчики работают — значит требования есть, другим вопросом остается точность их понимания.

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

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

Вам нужны все виды тестов из первой группы

Если вам нужны только «минимально необходимые», а не «необходимые и достаточные» — используйте функциональные suitability и accuracy тесты.

Подробно о функциональных тестах речь пойдет в третьей части.

На этом шаге многие останавливаются. «Нам нужны функциональные тесты«. Но надо идти дальше.

2. Объект тестирования

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

Приложу эту группу отдельно:
Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

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

Например, в рамках тестирования функции передачи сообщения о транзакции от банкомата к банку-эмитенту, мы проверим шифрование пин-кода.

Очень важно понимать, что

виды тестов по объектам тестирования — это не виды функциональных тестов

Как и тесты производительности, отказоустойчивости и т.п. — не всегда виды NFR.

Пример 1. Есть не функциональное требование «при сбое компонента его функции должны выполняться другим, параллельным компонентом». Соответственно, покрываться требование будет не функциональными тестами — стресс тестами, тестами надежности и стабильности.

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

Пример 3. Разработка приложения Jmeter. Это — популярный инструмент для проведения нагрузочного тестирования. Его функционалом является нагрузочное тестирование. Это — случай, когда субъект тестирования стал объектом тестирования. Рекурсивненько, да? Тесты нагрузочного тестирования JMeter являются функциональными.

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

Вот из-за таких случаев не уместно разделять функциональные тесты по видам функционала (только по видам требований). И не уместно относить сами функциональные тесты к объектам при категоризации «по объекту тестирования».

3. Знание системы

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

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

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

Распространено заблуждение, что проведение таких тестов необходимо и достаточно, а если не приводит к повышению качества продукта — то тестировщики плохо поработали.

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

Подробно о влиянии знания системы на проведение тестирования я напишу отдельно.

4. Степень автоматизации

Про автоматизацию пишут везде и много. Я сама очень люблю эту тему.

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

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

Об автоматизации надо задуматься, отвечая на вопрос:

думайте об автоматизации заранее.

5. Степень изолированности компонентов

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

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

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

Если компонент изолировать и подавать данные на вход только в него и проверять результат только на его выходе — это будет тестирование компонента.

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

6. Время проведения тестирования

«Тестируйте от критичного дефекта и до релиза».

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

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

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

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

Под бэта тестами обычно понимают «пререлиз». Когда продукт вроде как готов, и его уже используют, но он все еще не является законченным. Практика полноценного бэта тестирования распространена в gamedev-индустрии и в open source-проектах.

7. Степень подготовленности тестов

Как бы то ни было, даже если по началу по всем пунктам вы ответили «нет», это не значит, что на вашем проекте будет проводиться только исследовательское тестирование. Можно взять ТЗ и проверить, выполнено ли то, что в нем написано — это будет вполне подготовленное тестирование. Когда ты знаешь, что искать.

Отсутствие оформления тестов не означает их неподготовленность.

Подробнее — в другой части.

8. Глубина тестирования

There are two fundamental approaches to testing software: test-to-pass and test-to-fail. When you test-to-pass, you really assure only that the software minimally works. You don’t push its capabilities. You don’t see what you can do to break it. You treat it with kid gloves, applying the simplest and most straightforward test cases.

Паттон пишет, что тесты, которые должны пройти успешно (Test-to-pass), должны проверяться в первую очередь. Если они не прошли, то остальные можно не проверять.

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

Позитивные и негативные бывают тест кейсы. Метками «test-to-pass» и «test-to-fail» можно сгруппировать тестовые наборы для smoke, acceptance и regression тестов, которые могут содержать в себе как негативные, так и позитивные сценарии.

Tets-to-pass — это тесты в нормальном, наиболее часто используемом режим эксплуатации.

Test-to-fail — это тесты на неизведанной территории, которая может оказаться минными полем. Эти тесты вы не будете проводить после каждой сборки. Они нужны только для поиска особых состояний системы, в которых возможно возникновение ранее не обнаруженного дефекта или вообще сбой всей системы. Такие тесты могут быть ad hock, а негативные тесты — это могут быть случаи, которые проверяются при принятии баг фикса, и они должны пройти успешно.

Цель негативного теста — убедиться, что система правильно реагирует на неправильное действие. Цель test-to-fail наверняка сломать систему.

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

Первая порция тестов должна позволить обнаружить некоторое количество show-stopper дефектов. Когда первая порция Test-To-Pass пройдет успешно, переходим ко второй — Test-To-Fail, которая должна выявить как можно большее количество дефектов всех степеней критичности. А после проведения последней порции тестов дефекты не должны возникнуть вообще — они должны быть снова Test-To-Pass.

9. Сценарии

Иначе вы упустите дефекты.

10. Динамичность

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

На этом просмотр в ширину закончен. Просмотр в глубину оставим на следующий раз.

Составление матрицы тестов

Говоря о конкретном проекте, можно будет разбить все объекты тестирования на функциональные и не функциональные группы, то есть по виду требований. — 1 измерение.

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

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

Ad hock / исследовательское тестирование проводить во время простоев в работе или в первые дни жизни проекта/нового функционала. Все остальные тесты считать подготовленными.

Теперь по ним можно составить матрицу возможных сочетаний видов тестирования.

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Что такое матрица прослеживаемости тестирование. Смотреть фото Что такое матрица прослеживаемости тестирование. Смотреть картинку Что такое матрица прослеживаемости тестирование. Картинка про Что такое матрица прослеживаемости тестирование. Фото Что такое матрица прослеживаемости тестирование

Я тут посчитала, что даже по 4 характеристикам видов тестов получается так много, что нет смысла их генерировать.

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

Заключение

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

Надеюсь, я не запутала читателей еще сильнее, и вам моя матрица пригодится.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *