ГОСТ Р 56920-2016/ISO/IEC/IEEE 29119-1:2013. Национальный стандарт Российской Федерации. Системная и программная инженерия. Тестирование программного обеспечения. Часть 1. Понятия и определения
Приложение D
(справочное)
ПРИМЕРЫ ПОДПРОЦЕССОВ ТЕСТИРОВАНИЯ В ДЕТАЛЯХ
D.1 Общие сведения
В данном приложении приводятся примеры подпроцессов тестирования. Здесь приводится всего лишь несколько примеров в отличие от конкретного проекта тестирования, где могут потребоваться другие определенные подпроцессы.
Примеры подпроцессов тестирования:
- приемочные испытания;
- тестирование детального проектирования;
- интеграционное тестирование;
- тестирование производительности;
- регрессионное тестирование;
- повторное тестирование;
- тестирование истории;
- тестирование системы;
- покомпонентное тестирование.
Следует обратить внимание на то, что регрессионное тестирование и повторное тестирование включены как конкретные подпроцессы тестирования. В определенных случаях они могут входить в состав любого другого подпроцесса.
В описание каждого подпроцесса тестирования входят:
- цель подпроцесса тестирования;
- запланированный состав подпроцесса тестирования - статические и/или процессы динамического тестирования, которые будут выполняться.
Для каждого процесса статического или динамического тестирования, запланированного в составе подпроцесса тестирования, описание включает:
- цель тестирования;
- элемент(ы) тестирования;
- базис тестирования;
- применимые процессы тестирования;
- предлагаемую методику (методики) проектирования тестирования, если это применимо.
Следует обратить внимание на то, что представленные примеры являются всего лишь примерами. В каждой фактической ситуации выбор должен осуществляться в соответствии с профилем риска для продукта.
D.2 Подпроцесс приемочного испытания
Этот пример представляет подпроцесс тестирования, связанный с фазой приемки жизненного цикла разработки.
Цель подпроцесса тестирования: | Продемонстрировать потребителю приемлемость завершенной системы с точки зрения указанных им требований. |
Запланированный состав подпроцесса тестирования: | Динамическое тестирование 1. Генеральная репетиция. Динамическое тестирование 2. Презентация. |
Динамическое тестирование 1. Генеральная репетиция
Цель тестирования: | Гарантировать, что заключительное выполнение в присутствии потребителя будет успешно. |
Элемент тестирования: | Завершенная система. |
Базис тестирования: | Требования пользователя, руководства пользователя, документация бизнес-процессов. |
Процессы динамического тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Тестирование по сценарию использования, другие методы в зависимости от природы требований. |
Разработка и реализация контрольных примеров могут быть начаты по достижении стабильности требований пользователя. Хотя перед приемочными испытаниями предполагается, что система работает, большинство организаций перед окончательной официальной презентацией системы в присутствии потребителя подготавливает и выполняет тестирование, известное под названием "Генеральная репетиция". При этом могут быть запланированы повторное тестирование и процессы регрессионного тестирования для устранения каких-либо "последних" дефектов, выявленных в результате этого тестирования.
Динамическое тестирование 2. Презентация
Цель тестирования: | Представить завершенную систему потребителю. |
Элемент тестирования: | Завершенная система. |
Базис тестирования: | Нет. |
Процессы динамического тестирования: | Установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Нет. |
После заключительной "Генеральной репетиции" необходимо привести тестовую среду в исходное состояние, иначе выполнение теста будет происходить соответственно процедурам и среде, подготовленным в ходе "Генеральной репетиции".
D.3 Подпроцесс тестирования детального проектирования
Этот пример представляет подпроцесс тестирования, связанный с фазой детального проектирования жизненного цикла разработки.
Цель подпроцесса тестирования: | Предоставить информацию о качестве детального проектирования. |
Запланированный состав подпроцесса тестирования: | Статическое тестирование 1. Документация элемента детального проектирования. Статическое тестирование 2. Удобство использования элемента детального проектирования (неудобство использования системы!). Статическое тестирование 3. Полнота элемента детального проектирования. |
В фазе детального проектирования в соответствии с архитектурой разрабатываются отдельные элементы проекта. Каждый из них может быть подвергнут статическому тестированию посредством определенного для этого подпроцесса тестирования. Таким образом, объектами планирования статического тестирования могут быть элементы тестирования, определенные как конкретные элементы детального проектирования. Подпроцесс тестирования детального проектирования завершается только тогда, когда завершатся все запланированные тестирования (или в зависимости от обстоятельств фиксируется отказ).
Статическое тестирование 1. Документация элемента детального проектирования
Цель тестирования: | Предоставить информацию о том, как документирован элемент детального проектирования. |
Элемент тестирования: | Элемент детального проектирования. |
Базис тестирования: | Внутренние и/или внешние инструкции, определяющие правила документирования детального проектирования. |
Метод(ы) проектирования тестирования: | Технический анализ или проверка. |
Статическое тестирование 2. Удобство использования элемента детального проектирования
Цель тестирования: | Предоставить информацию о полноценности элемента детального проектирования с точки зрения, например, кодирования или тестирования. |
Элемент тестирования: | Элемент детального проектирования. |
Базис тестирования: | Нет. |
Метод(ы) проектирования тестирования: | Пошаговый разбор, например, с программистами или с тестерами. |
Статическое тестирование 3. Полнота элемента детального проектирования
Цель тестирования: | Предоставить информацию о полноте элемента детального проектирования. |
Элемент тестирования: | Элемент детального проектирования. |
Базис тестирования: | Информация о прослеживаемости для проекта и/или требований уровня выше. |
Метод(ы) проектирования тестирования: | Технический анализ. |
D.4 Подпроцесс интеграционного тестирования
Этот пример представляет подпроцесс тестирования, связанный с фазой интеграции в жизненном цикле разработки, когда компоненты (протестированные) постепенно интегрируются.
Во время фазы интеграции интегрируются два из множества произведенных подобных элементов тестирования. Динамическое тестирование в данном случае является общим и может быть выполнено для двух любых интегрируемых компонентов, начиная от самых первых двух интегрируемых компонентов до тех пор, пока последние два компонента не интегрированы в полную систему. Подпроцесс интеграционного теста завершается только тогда, когда завершатся все запланированные тестирования (или в зависимости от обстоятельств фиксируется отказ).
Возможны различные уровни интеграции. Это может быть интеграция компонентов на исходном коде в больший компонент, образующий завершенную полную систему, интеграция подсистем разных типов (аппаратных средств, программного обеспечения, данных, учебных материалов и т.д.) в одну полную систему или интеграция полноценных систем, объединяющая их в больший компонент, входящий в завершенную систему систем. Везде принципы одинаковы, хотя формальность зависит от профиля риска.
Цель подпроцесса тестирования: | Предоставить информацию о взаимодействии интегрированных компонентов. |
Запланированный состав подпроцесса тестирования: | Статическое тестирование. Прямой интерфейс. Динамическое тестирование 1. Прямой интерфейс. Динамическое тестирование 2. Косвенный интерфейс. Динамическое тестирование 3. Сосуществование. |
Статическое тестирование. Прямой интерфейс
Цель тестирования: | Предоставить информацию о прямом интерфейсе между двумя интегрированными компонентами, например, в форме списка параметров. |
Элемент тестирования: | Исходный код интерфейса между интегрируемыми компонентами. |
Базис тестирования: | Архитектура. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Технический анализ или проверка в зависимости от профиля риска. |
Динамическое тестирование 1. Прямой интерфейс
Цель тестирования: | Предоставить информацию о прямом интерфейсе между двумя интегрированными компонентами, например, в форме списка параметров. |
Элемент тестирования: | Интерфейс между интегрируемыми компонентами. |
Базис тестирования: | Архитектура. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Сообразно обстоятельствам. |
Динамическое тестирование 2. Косвенный интерфейс
Цель тестирования: | Предоставить информацию о косвенном интерфейсе между двумя интегрированными компонентами, например, через базу данных. |
Элемент тестирования: | Интегрированный компонент. |
Базис тестирования: | Архитектура. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. Может быть возможность повторно использовать процедуры тестирования из ранее выполненных подпроцессов (компонент). Если это верно, то разработка и реализация тестирования могут быть минимизированы или опущены. |
Метод(ы) проектирования тестирования: | Сообразно обстоятельствам. |
Динамическое тестирование 3. Сосуществование
Цель тестирования: | Предоставить информацию о сосуществовании интегрированного компонента (или полной системы) с другими существующими в среде системами. |
Элемент тестирования: | Интегрированный компонент (или полная система) и существующие в среде системы. |
Базис тестирования: | Архитектура. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. Может быть возможность повторно использовать процедуры тестирования из других тестов. Если это верно, то разработка и реализация тестирования могут быть минимизированы или опущены. |
Метод(ы) проектирования тестирования: | Сообразно обстоятельствам и возможно дополнение тестированием на базе опыта и/или исследовательским тестированием. |
D.5 Подпроцесс тестирования производительности
Этот пример представляет подпроцесс тестирования, фокусирующийся на производительности системы.
Цель подпроцесса тестирования: | Предоставить информацию о выполнении требований к производительности для системы. |
Запланированный состав подпроцесса тестирования: | Статическое тестирование 1. Документация требований к производительности. Статическое тестирование 2. Полнота требований к производительности. Статическое тестирование 3. Архитектура с точки зрения производительности. Статическое тестирование 4. Детальное проектирование с точки зрения производительности. Динамическое тестирование 1. Применимая подсистема с точки зрения производительности. Динамическое тестирование 2. Завершенная система с точки зрения производительности. |
Этот подпроцесс тестирования не привязан к какой-либо определенной фазе жизненного цикла разработки. Тестирование может быть запланировано для выполнения по мере завершения разработки подходящего элемента тестирования. Подготовка к статическому тестированию может быть начата, как только завершено планирование разработки элемента тестирования, а исследование, последующая обработка и анализ могут быть реализованы, как только элемент тестирования объявлен готовым к статическому тестированию. Разработка и реализация динамического тестирования может начинаться, как только стабилизируется базис тестирования, а выполнение может быть начато, как только элемент тестирования объявлен готовым.
Данный раздел представляет пример возможных подпроцессов тестирования с точки зрения атрибутов качества. Подобные же подпроцессы тестирования могут быть определены, например, для функциональности, управляемости и переносимости.
Статическое тестирование 1. Документация требований к производительности
Цель тестирования: | Предоставить информацию о качестве требований к производительности. |
Элемент тестирования: | Совокупность требований к производительности. |
Базис тестирования: | Внутренние и/или внешние инструкции по документированию требований к производительности, например, с точки зрения тестируемости. |
Метод(ы) проектирования тестирования: | Технический анализ или проверка (следует помнить, что проверке должен предшествовать неформальный или технический анализ, чтобы гарантировать определенную завершенность требований, которые будут проверены). |
Статическое тестирование 2. Полнота требований к производительности
Цель тестирования: | Предоставить информацию о полноте требований к производительности (все функциональные требования должны иметь соответствующие требования к производительности). |
Элемент тестирования: | Все требования. |
Базис тестирования: | Информация о вертикальной прослеживаемости между функциональными требованиями и требованиями к производительности. |
Метод(ы) проектирования тестирования: | Технический анализ. |
Статическое тестирование 3. Архитектура с точки зрения производительности
Цель тестирования: | Предоставить информацию о том, каким образом требования к производительности включены в архитектуру. |
Элемент тестирования: | Архитектура. |
Базис тестирования: | Требования к производительности и соответствующие инструкции. |
Метод(ы) проектирования тестирования: | Пошаговый разбор, технический анализ или проверка (следует помнить, что проверке должен предшествовать неформальный или технический анализ, чтобы гарантировать определенную завершенность требований, которые будут проверены). |
Статическое тестирование 4. Детальное проектирование с точки зрения производительности
Цель тестирования: | Предоставить информацию о том, как требования к производительности были учтены в детальном проектировании. |
Элемент тестирования: | Один или более соответствующих элементов детального проектирования. |
Базис тестирования: | Требования к производительности и соответствующие инструкции. |
Метод(ы) проектирования тестирования: | Пошаговый разбор, технический анализ или проверка (следует помнить, что проверке должен предшествовать неформальный или технический анализ, чтобы гарантировать определенную завершенность требований, которые будут проверены). |
Динамическое тестирование 1: Применимая подсистема с точки зрения производительности
Цель тестирования: | Предоставить информацию о производительности определенной подсистемы. |
Элемент тестирования: | Одна или более соответствующие подсистемы. |
Базис тестирования: | Требования к производительности и возможно идентифицированные риски производительности. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. Некоторые процедуры тестирования могут быть использованы повторно для интеграционного тестирования. |
Метод(ы) проектирования тестирования: | Применимые методы. |
Эти тестирования обычно выполняются в ходе подпроцесса интеграционного теста.
Динамическое тестирование 2. Завершенная система с точки зрения производительности
Цель тестирования: | Предоставить информацию о производительности абсолютно интегрированной системы. |
Элемент тестирования: | Завершенная система. |
Базис тестирования: | Требования к производительности и возможно идентифицированные риски производительности. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. Некоторые процедуры тестирования могут быть использованы повторно для тестирования системы. |
Метод(ы) проектирования тестирования: | Применимые методы. |
Это тестирование обычно выполняется в ходе подпроцесса тестирования системы.
D.6 Подпроцесс регрессионного тестирования
Этот пример представляет общий подпроцесс тестирования, который будет выполняться после реализации изменений в элементе, связанном с элементом тестирования, и/или изменений среды, в которой работает элемент тестирования. Подпроцесс тестирования должен использоваться для элемента тестирования, ранее прошедшего одно или более тестирований и, как определено, не затронутого реализованными изменениями.
Подпроцесс тестирования может быть выполнен как часть любого другого подпроцесса тестирования и для любого элемента тестирования. Выбор элемента тестирования зависит от характера изменений и профиля риска. Необходимое число регрессионных тестов в подпроцессе тестирования зависит от первоначального качества элемента тестирования и критериев завершения тестирования.
Цель подпроцесса тестирования: | Предоставлять информацию о состоянии элемента тестирования каждый раз при реализации изменений (связанных или не связанных с элементом тестирования). |
Запланированный состав подпроцесса тестирования: | Повторное выполнение предыдущих статических исследований или соответствующих уже выполненных динамических тестирований. |
Регрессионный тест
Цель тестирования: | Предоставить информацию о качестве измененного элемента тестирования на неизменных элементах тестирования. |
Элемент тестирования: | Рассматриваемый элемент тестирования. |
Базис тестирования: | Сообразно обстоятельствам. |
Подробные процессы тестирования: | Установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. Разработка и реализация тестирования не требуются, так как это тестирование выполняется с использованием выбранных из ранее прошедших процедур тестирования. |
Метод(ы) проектирования тестирования: | Сообразно обстоятельствам. |
Статическое тестирование 1. Документация требований
Цель тестирования: | Предоставить информацию о том, как документированы требования. |
Элемент тестирования: | Отобранные требования (либо все, либо часть). |
Базис тестирования: | Внутренние и/или внешние инструкции, например, относительно определенного стиля документирования требований и/или относительно соответствующей информации, такой как уникальная идентификация, приоритет и инициатор. |
Метод(ы) проектирования тестирования: | Технический анализ или проверка (следует помнить, что проверке должен предшествовать неформальный или технический анализ, чтобы гарантировать определенную завершенность требований, которые будут проверены). |
Статическое тестирование 2. Удобство использования требований
Цель тестирования: | Предоставить информацию о полноценности требований к проекту или тестированию. |
Элемент тестирования: | Отобранные требования (либо все, либо часть). |
Базис тестирования: | Нет. |
Метод(ы) проектирования тестирования: | Пошаговый разбор, например, с разработчиками или с тестерами. |
Статическое тестирование 3. Полнота требований
Цель тестирования: | Предоставить информацию о полноте ряда требований. |
Элемент тестирования: | Отобранные требования (либо все, либо часть). |
Базис тестирования: | Инструкции и/или информация о прослеживаемости для требований высокого уровня. |
Метод(ы) проектирования тестирования: | Технический анализ. |
D.7 Подпроцесс повторного тестирования
Этот пример представляет общий подпроцесс тестирования, который будет выполняться после реализации изменений в элементе, вызванных дефектом, найденным при предыдущем выполнении теста, то есть для элемента тестирования, ранее уже проходившего тест.
Подпроцесс тестирования может быть выполнен как часть любого другого подпроцесса тестирования и для любого элемента тестирования.
Цель подпроцесса тестирования: | Предоставить информацию о дефекте, который, как доложено, был устранен. |
Запланированный состав подпроцесса тестирования: | Повторное выполнение ранее не прошедшего соответствующего статического или динамического тестирования. |
Повторное тестирование:
Цель тестирования: | Предоставить информацию о качестве измененного элемента тестирования. |
Элемент тестирования: | Рассматриваемый элемент тестирования. |
Базис тестирования: | Сообразно обстоятельствам. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста; отчетность об инцидентах тестирования. Разработка и реализация тестирования не требуются, так как это тестирование выполняется, используя процедуры тестирования, которые ранее не завершились успехом. |
Метод(ы) проектирования тестирования: | Сообразно обстоятельствам. |
D.8 Подпроцесс тестирования совокупности истории
Этот пример представляет подпроцесс тестирования, связанный с выбором для обработки в конкретном спринте портфеля на базе текущего портфеля проекта.
Цель подпроцесса тестирования: | Предоставить информацию о качестве совокупности историй для обработки в определенном спринте. |
Запланированный состав подпроцесса тестирования: | Статическое тестирование. Возможность реализации историй. |
Статическое тестирование. Возможность реализации историй
Цель тестирования: | Предоставить информацию о совокупности отобранных историй. |
Элемент тестирования: | Отобранные истории. |
Базис тестирования: | Инструкции, например, относительно понимания историй и оценки времени разработки, а также зависимости и непротиворечивости историй. |
Метод(ы) проектирования тестирования: | Неформальный анализ или технический анализ. |
D.9 Подпроцесс тестирования истории
Этот пример представляет подпроцесс тестирования, связанный с завершением реализации истории перед включением истории в ежедневную сборку (или в блок для включения в новую сборку).
Во время обработки историй из портфеля спринта производится множество подобных элементов тестирования, каждый из которых является реализацией истории. Поэтому подпроцесс тестирования истории может покрыть тестирование одной или более историй, в зависимости от того, сколько историй было реализовано перед сборкой. Конкретные реализованные истории тестируются похожими способами. В этом случае используется общее динамическое тестирование, которое и может быть выполнено для любой истории. Подпроцесс тестирования истории завершается только тогда, когда завершены все запланированные тестирования (или в зависимости от обстоятельств фиксируется отказ).
Цель подпроцесса тестирования: | Предоставить информацию о реализованной истории перед включением ее в сборку. |
Запланированный состав подпроцесса тестирования: | Статическое тестирование: атрибуты качества исходного кода. Динамическое тестирование: тестирование истории, исследовательское тестирование. |
Статическое тестирование. Атрибуты качества исходного кода
Цель тестирования: | Предоставить информацию о качестве исходного кода. |
Элемент тестирования: | Созданный или затронутый реализацией истории исходный код. |
Базис тестирования: | Внутренние и/или внешние инструкции, например, относительно определенного стиля записи кода и/или необычных особенностей кодирования, таких как использование переменной перед ее объявлением. |
Метод(ы) проектирования тестирования: | Технический анализ или статический анализ. |
Динамическое тестирование. Тестирование истории
Цель тестирования: | Предоставить информацию о качестве реализации истории. |
Элемент тестирования: | История, реализованная в среде изолированно от общей сборки. |
Базис тестирования: | История. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Соответствующие методики, дополненные методиками, необходимыми для требуемого покрытия. |
D.10 Подпроцесс тестирования системы
Этот пример представляет подпроцесс тестирования, связанный с фазой завершения разработки системы. Он может быть также связан с фазой, определенной как фаза созревания, которая будет завершена перед объявлением готовности системы к приемочным испытаниям.
Цель подпроцесса тестирования: | Предоставить информацию о качестве полной системы. |
Запланированный состав подпроцесса тестирования: | Динамическое тестирование. Тестирование системы. |
Динамическое тестирование. Тестирование системы
Цель тестирования: | Оценить качество полной системы после интеграции. |
Элемент тестирования: | Полная система. |
Базис тестирования: | Системные требования. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Разбиение эквивалентности, анализ граничных значений, тестирование изменения состояния и метод дерева классификации сообразно обстоятельствам. |
Цель тестирования системы состоит в том, чтобы найти в функциональности системы дефекты по сравнению с требованиями к программной системе.
Следует предвидеть, что для достижения критериев завершения тестирования системы потребуется множество подпроцессов повторного тестирования и подпроцессов регрессионного теста.
D.11 Подпроцесс покомпонентного тестирования
Этот пример представляет подпроцесс тестирования, связанный с фазой кодирования жизненного цикла разработки.
Во время фазы кодирования производится множество подобных элементов тестирования, которые являются компонентами исходного кода и могут быть либо непосредственно интерпретируемыми компонентами, либо скомпилированы и связаны в исполнимые компоненты. В связи с этим общий подпроцесс покомпонентного тестирования может охватить подобным образом тестирование всех или некоторых конкретных из этих компонентов. В этом примере использовано общее динамическое тестирование, которое может быть выполнено для любого компонента. Подпроцесс покомпонентного тестирования завершается только тогда, когда завершены все запланированные тестирования (или в зависимости от обстоятельств фиксируется отказ).
Цель подпроцесса тестирования: | Предоставить информацию о качестве компонента. |
Запланированный состав подпроцесса тестирования: | Динамическое тестирование. Тестирование компонента. |
Динамическое тестирование. Тестирование компонента
Цель тестирования: | Предоставить информацию о качестве компонента. |
Элемент тестирования: | Компонент в изоляции от других компонентов в системе (может потребовать драйверов и заглушек). |
Базис тестирования: | Детальное проектирование для компонента, включая прослеживаемость к требованиям. |
Подробные процессы тестирования: | Разработка и реализация тестирования; установка и поддержка тестовой среды; выполнение теста и отчетность об инцидентах тестирования. |
Метод(ы) проектирования тестирования: | Соответствующие методики, дополненные методиками, необходимыми для требуемого покрытия. |
