- Проект Requality (Requality project) -
проект Eclipse, созданный
с помощью плагина Requality. Cодержит документы, требования
отчеты, комментарии.
- Документ (Document) – это документ
некоторого формата,
содержащий требования, написанные в
свободной форме. В документе
пользователь выделяет фрагменты текста
и присваивает их требованиям.
- Требование (Requirement) – это сущность,
содержащая описание некоторого
требования и ссылающаяся на те фрагменты
документа, которые соответствуют этому
требованию. Требование может не иметь
описания и не ссылаться на документ,
такие требования обычно используются
для организации иерархической структуры
требований, выступая в роли
узлов-родителей. Только требования, не
имеющие в иерархии требований-потомков,
могут иметь тестовые ситуации.
Требования обладают набором параметров,
которые задают его содержимое и
свойства.
- Фрагмент требования,
выделенный фрагмент документа,
или просто фрагмент (Location)
– это часть документа, которая была
отмечена пользователем как
принадлежащая какому-либо требованию. То есть фрагмент - это и выделенная часть текста документа,
и ссылка в свойствах требования на эту выделенную часть. Один фрагмент может принадлежать
одновременно нескольким разным требованиям
в одном проекте.
- Тестовая ситуация (Test purpose) – это некоторая сущность,
содержащая описание тестового случая и
ожидаемый результат. Принадлежит
требованию, не имеющему
требований-потомков. Тестовая ситуация
обладает набором параметров, задающих ее
содержимое и свойства. Для одного
требования может быть задано несколько
тестовых ситуаций.
- Отчет (Report) – некоторая сущность, позволяющая
сгенерировать отчетный документ по
требованиям и целям тестирования.
Обладает набором параметров, которые
влияют на содержимое и вид отчета.
- Комментарий (Comment) - некоторая сущность,
содержащая текстовый
комментарий, относящийся к требованию
или тестовой ситуации. У одного
требования/одной тестовой ситуации
может быть несколько комментариев.
- Requality Explorer - окно в перспективе
Requality, отображающее все содержимое
проекта (документы, требования, отчеты, комментарии).
- Markup Editor - окно в перспективе
Requality, редактор документов, используется
для разметки фрагментов требований в
документах.
- UniEditor - окно в перспективе
Requality, визуальный редактор для
требований, тестовых ситуаций и
комментариев. Позволяет добавлять, редактировать и изменять требования, тестовые ситуации и комментарии, а так же изменять статусы требований
и тестовых ситуаций. В отличие от редактора Review не дает возможности устанавливать статусы требований и тестовых ситуаций в значение "verified".
- Review - окно в перспективе
Requality, визуальный редактор для
требований, тестовых ситуаций и
комментариев. Предназначен скорее для просмотра, нежели для редактирования, поэтому обладает ограниченной функциональностью. Позволяет только добавлять, редактировать и удалять комментарии, а так же изменять статусы требований и тестовых ситуаций.
В отличие от UniEditor позволяет устанавливать статусы требований и тестовых ситуаций в значение "verified".
- Properties - окно в перспективе Requality,
отображает свойства выбранного объекта
(требования, документа, тестовой
ситуации, отчета, комментария).
- Параметры требования - свойства требования, которые
устанавливаются в окне 'Properties'.
Для требований окно 'Properties' содержит 4 вкладки:
- Вкладка Main содержит следующие параметры требования:
- Id – идентификатор
требования. Идентификатор уникален
среди дочерних узлов одного родителя. Может
быть изменен вручную.
- Name – имя требования. Может
не быть уникальным. По умолчанию пусто. Может быть изменено
вручную.
- Attributes – атрибуты
требования. По умолчанию наследуются
от родительских требований, но могут
быть переопределены. Применяются в
предикатах. Заполняются вручную.
- Вкладка Description содержит следующие параметры требования:
- Alternative Description –
альтернативный текст требования,
уточняет и дополняет текст выделенных
фрагментов. Заполняется вручную.
- Locations - список выделенных
фрагментов данного требования,
сгруппированный по документам.
Вручную можно только удалять фрагменты.
- Вкладка Advanced содержит следующие параметры требования:
- Predicate – предикат, условие
отбора требований для отчетов. По
умолчанию наследуется от родительских
требований. Заполняется вручную.
- Вкладка Source содержит только json-код:
- json – низкоуровневое
представление требования как
сущности. Не редактируется.
- Параметры тестовой ситуации - свойства тестовой ситуации, которые
указываются в окне 'Properties'.
Щелкните по нужной тестовой ситуации в
'Requality Explorer', в 'Properties' откроются ее
свойства.
Для тестовых ситуаций окно 'Properties' содержит 4 вкладки:
- Вкладка Main:
- Id – идентификатор тестовой
ситуации. Идентификатор уникален
среди тестовых ситуаций одного
требования. Может быть изменен
вручную.
- Status - статус требования,
может иметь одно из трех значений: 'in
process', 'complete' или 'verified'.
Изменяется вручную.
- Author - автор требования,
изменяется вручную.
- Attributes – атрибуты
требования. По умолчанию наследуются
от родительских требований, но могут
быть переопределены. Применяются в
предикатах. Заполняются вручную.
- Вкладка Description:
- Test purpose description - описание теста,
изменяется вручную.
- Expected results - ожидаемый после
выполнения теста результат.
- Вкладка Advanced:
- Predicate – предикат, условие
отбора тестовых ситуаций для отчетов.
По умолчанию наследуется от
родительских требований. Заполняется
вручную.
- Вкладка Source:
- json – низкоуровневое
представление тестовой ситуации как
сущности. Не редактируется.
- Параметры отчета - свойства отчета, которые
указываются в окне 'Properties'.
Для отчетов окно 'Properties' содержит 2 вкладки:
- Вкладка Report Data:
- Root requirement – требование, для
которого создается отчет. В отчет
войдет это требование-узел и все его дочерние узлы (требования и комментарии).
В случае подключения дополнительных плагинов к Requality в отчет могут войти и узлы других типов.
Изменяется вручную.
- Template – шаблон, в соответствии с которым модифицируется
вид и содержимое отчета. Например, данные можно представить в виде списка или таблицы. Можно включить в отчет
все узлы дерева Requirements или только узлы некоторого конкретного типа. В случае использования
плагинов к Requality список доступных шаблонов может пополняться. Вы также можете самостоятельно
создавать нужные шаблоны. Шаблон изменяется вручную: выбирается из списка
доступных шаблонов. По умолчанию доступны 4 шаблона: 'Coverage', 'XML-export', 'Requirements' и 'Document Model'.
'Coverage' - содержит информацию о покрытии требований и тестовых ситуаций другими элементами (например, тестами).
Для генерации требуется задать источник информации о покрытии. Подробнее о 'Coverage' отчете можно прочитать здесь.
'XML-export' - отчет в формате XML, предназначем для
использования отчета другими интсрументами.
'Requirements' - содержит список всех требований.
'Document Model' аналогичен 'Coverage', но предоставляет информацию о покрытии фрагментов документа.
- Attributes – атрибуты отчета,
аналогичны атрибутам требования. По
умолчанию включает один
дополнительный атрибут – 'date' –
дата и время генерации последнего
отчета. Атрибут пересоздается каждый
раз при генерации отчета. Таблица
атрибутов изменяется вручную.
- Вкладка Source содержит только json-код:
- json – низкоуровневое
представление отчета как сущности. Не
редактируется.
- Coverage-отчет - отчет о покрытии требований и тестовых ситуаций другими
элементами (например, тестами), заданном с помощью дополнительного
источника информации о покрытии. Таких источников может быть 2:
ВНИМАНИЕ! Рассматриваемые механизмы являются экспериментальными. Часть
представленных функций может быть изменена в дальнейших версиях.
- Файл с информацией о покрытии, записанной в определенном формате
- Автоматический поиск файлов, содержащих идентификаторы покрытых ими
требований или тестовых ситуаций.
При использовании этого источника происходит поиск по выбранным
пользователем проектам в workspace на предмет обнаружения файлов с
заданным расширением. Расширение задается пользователем. Для указанных
файлов производится построчная проверка содержимого файла на
соответствие регулярному выражению, описанному пользователем. В
результате такого поиска инструмент получает набор покрытых элементов и
информацию о покрывающих файлах.
- Document Model отчет - отчет о покрытии выделенных фрагментов документа другими
элементами (например, тестами), заданный с помощью дополнительного
источника информации о покрытии. Таких источников может быть 2:
ВНИМАНИЕ! Рассматриваемые механизмы являются экспериментальными. Часть
представленных функций может быть изменена в дальнейших версиях.
- Файл с информацией о покрытии, записанной в определенном формате
- Автоматический поиск файлов, содержащих идентификаторы покрытых ими
требований или тестовых ситуаций
При использовании этого источника происходит поиск по выбранным
пользователем проектам в workspace на предмет обнаружения файлов с
заданным расширением. Расширение задается пользователем. Для указанных
файлов производится построчная проверка содержимого файла на
соответствие регулярному выражению, описанному пользователем. В
результате такого поиска инструмент получает набор покрытых элементов и
информацию о покрывающих файлах.
- Файл с информацией о покрытии - это XML-документ, задающий покрытие требований и
тестовых ситуаций другими элементами (например, тестами). Используется для генерации некоторых отчетов.
Записывается следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<coverageInfo>
<reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации">
<covered_by uri="путь_к_покрывающему_элементу" [hits="1"]/>
</reqcoverage>
<reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации">
<covered_by uri="путь_к_покрывающему_элементу"/>
</reqcoverage>
<error [name="имя_ошибки"] testuri="uri_элемента_covered_by" [uri="ссылка_на_описание_ошибки"]>
[<violates qid="уникальный_идентификатор_требования_или_тестовой_ситуации"/>]*
[<description [format="вид_описания_ошибки"]>описание_ошибки</description>]
</error>
</coverageInfo>
Здесь:
Квадратными скобками обозначены опциональные параметры.
-
coverageInfo - может быть только один экземпляр в файле. Он содержит вложенные XML-элементы reqcoverage (один или несколько) и error (может не быть, может быть один или несколько).
-
reqcoverage - элемент-ребенок для coverageInfo. Должен быть задан отдельно для каждого покрытого Requality-элемента. (Непокрытые узлы не описываются никак.)
Содержит вложенные XML-элементы covered_by (один или несколько). Каждому вложенному covered_by должен соответствует одна тестовая процедура или тест. Имеет атрибут qid.
-
qid - это user-visible-name(element) или qualifying-id(element) покрываемого элемента:
-
user-visible-name(element) - это имя элемента, если оно есть (то есть если поле name в Properties view у этого элемента не пустое),
иначе это user-visible-name(element.parent)/id, то есть сначала user-visible-name родительского элемента, потом id - идентификатор элемента (в качестве разделителя использовать '/').
Например:
"TR-FMF-01-01-002/TR-FMF-01-01-002_T01"
-
qualifying-id(element) - это полный путь к элементу, начиная с корневого элемента (Requirements), в качестве разделителя используется '/'.
Например:
"Requirements/01/MyRequirement01"
-
covered_by - элемент-ребенок для reqcoverage. Внутри reqcoverage их может быть несколько в зависимости от того, сколько тестовых процедур или тестов покрывают
соответствующий ему Requality-элемент. Каждый covered_by соответствует одному покрывающему Requality-элементу. covered_by
меет атрибуты uri и hits.
-
uri - атрибут XML-элемента covered_by, указывает путь к тесту, описанному в этом covered_by элементе:
-
если описывается покрытие тестовых ситуаций тестовыми процедурами, то это путь к шагу тестовой процедуры.
-
Если тестовая процедура находится в том же проекте, то путь записывается без протокола, например:
"/TestProcedures/01/TestStep04"
Здесь 01 - идентификатор тестовой процедуры, 04 - номер шага тестовой процедуры.
-
Если тестовая процедура находится в другом проекте Requality, то путь записывается следующим образом:
"requality://ProjectName/TestProcedures/01/TestStep04"
Здесь ProjectName - имя проекта, где находится тестовая процедура.
-
если описывается покрытие тестовых ситуаций тестами, то это путь к тесту, например:
"file:///home/user/work/test1.c#12"
-
hits - атрибут XML-элемента covered_by, является опциональным. Указывает количество упоминаний этого требования reqcoverage в тесте covered_by.
-
error - элемент для описания ошибки, полученной в результате выполнения теста. Может содержать один элемент description с описанием ошибки. Может включать один или
несколько элементов violates в ситуации, когда можно определить какие именно требования нарушает ошибка.
Имеет атрибут testuri и опциональные атрибуты name и uri.
-
testuri - путь к одному из тестов, описанному в covered_by элементе.
-
name - опциональный параметр, представляет собой отображаемое имя ошибки. В случае если не определен, используется имя "error"+порядковый_номер_ошибки.
-
uri - опциональный параметр, путь к файлу с подробной информацией об ошибке.
-
violates - опциональный элемент, соответствует требованию, которое нарушает ошибка. Каждый элемент violates соответствует одному нарушенному требованию.
Имеет атрибут qid. Если элемент violates не указан, ошибка в отчете отображена не будет.
-
qid - это user-visible-name(element) или qualifying-id(element) покрываемого элемента (подробнее см. выше, в описании элемента reqcoverage).
-
description - опциональный элемент, текстовое описание ошибки. Имеет опциональный атрибут format.
-
format - формат описания ошибки. Может быть "html" или "plain". В случае "plain" все html теги будут отображаться в виде текста.
-
описание_ошибки представляет собой описание ошибки, при этом для формата "html" допускается использование html тегов для форматирования текста.
- Outline - окно в перспективе Requality,
отображающее список фрагментов документа.
- Подтребование, дочернее требование (sub-requirement,
child-node) - это
требование, являющееся дочерним узлом
другого требования в иерархии проекта.
- Виртуальный узел (Virtual Node) -
это элемент каталога проекта 'Requality', используемый для повторного использования фрагментов каталога требований.
Процесс повторного использования в общем случае осуществляется путем выбора подхода к повторному использованию с
последующим указанием целевого элемента для которого будет проводиться переиспользование. На данный момент имеется два возможных подхода к повторному использованию:
- 'Reuse' — использование обобщенного описания, копии которого будут добавлены к виртуальному узлу.
- 'Base element' - определение базового элемента, при котором копии прямых потомков целевого элемента будут добавлены к виртуальному узлу.
Для обобщенного описания также доступны настройки связанные с определением количества копий. В дереве проекта виртуальный узел отображается
как один из элементов дерева требований в виде потомка того элемента, для которого предполагается определить повторно
использованные элементы в виде потомков.
Виртуальный узел может быть скрыт (может не отображаться) в дереве проекта. В скрытном режиме вместо виртуального узла
отображаются его потомки, то есть повторно использованные элементы.
- Параметры виртуального узла - свойства виртуального узла, которые устанавливаются в окне 'Properties'.
Для виртуальных узлов окно 'Properties' содержит 4 вкладки:
- Вкладка Main содержит следующие параметры виртуального узла:
- Id – идентификатор виртуального узла. Идентификатор уникален среди дочерних узлов одного родителя. Может быть изменен вручную.
- Name – имя виртуального узла. Может не быть уникальным. По умолчанию пусто. Может быть изменено вручную.
- Attributes – атрибуты виртуального узла. Применяются в предикатах и генераторах. Заполняются вручную.
- Вкладка Source содержит только json-код:
- json – низкоуровневое
представление виртуального узла как
сущности. Не редактируется.
- Вкладка Iteration содержит следующие параметры виртуального узла:
- Target – целевой элемент,
которым будет оперировать виртуальный узел. Требование или тестовая ситуация.
По умолчанию не указан. Может быть выбран среди узлов каталога проекта.
Если у требования-родителя виртуального узла есть дочерняя тестовая ситуация,
то в качестве 'Target' может быть выбрана только тестовая ситуация (не требование).
- Iteration method –
способ использования виртуального узла. Может иметь два значения, выбираемые из выпадающего списка:
- Reuse - использование обобщенного описания, копии которого будут добавлены к виртуальному узлу.
- Base element - определение базового элемента, при котором копии прямых потомков целевого элемента будут добавлены к виртуальному узлу.
- It.vars – итерируемые переменные.
Этот параметр появляется только в том случае, если выбран способ 'Reuse'.
По умолчанию не указана ни одна итерируемая переменная. Могут быть добавлены и удалены с
помощью соответствующих кнопок. Выбираются с помощью выпадающего списка, который содержит
список доступных генераторов, определенный во вкладке 'Generators'.
- Вкладка Generators -
содержимое вкладки описано отдельно, поскольку является универсальным для разных типов узлов.
- Вкладка Generators окна 'Properties'
одинакова для разных типов узлов ('Requirement', 'Test Purpose', 'Comment', 'Virtual Node').
ВНИМАНИЕ! Генерация и использование атрибутов относится к экспериментальной функциональности. Поэтому работа с генераторами и ее описание в документации могут быть не полностью корректными.
Вкладка Generators содержит следующие параметры:
- Generators – список генераторов, заданных в этом узле.
Изменяется с помощью соответствующих кнопок по добавлению и удалению генераторов. По умолчанию пуст.
- Origin – элемент дерева требований, в котором описан генератор, выделенный в списке генераторов.
- Attr.name – имя генератора, выделенного в списке генераторов. Доступно только в том случае,
если в списке генераторов есть хоть один генератор. Может быть отредактировано пользователем вручную.
- Attr.gen.type – способ генерации атрибута. Доступны три способа генерации атрибута: 'RANDOM', 'BY_FORMULA', 'CYCLE'.
- RANDOM - генерация случайным образом. При выборе этого способа появляются поля 'Min' (минимальное значение выборки),
'Max' (максимальное значение выборки) и 'Count' (количество генерируемых значений).
По умолчанию во всех этих полях установлено значение 0.
Значение полей может быть отредактировано пользователем.
Значение 'Max' всегда должно быть не меньше значения 'Min', если пользователь указывает обратное, значения полей меняются местами между собой.
Изменение значений этих полей сразу влияет на содержимое поля 'Preview'.
Также, если выбрано значение 'RANDOM', доступна кнопка 'Generate new set', при нажатии которой генерируется новый набор значений в поле 'Preview'.
- BY_FORMULA - генерация значений в соответствии с заданной формулой. Если выбран этот способ, становится доступно поле 'Formula'.
По умолчанию оно пусто. Может быть отредактировано пользователем вручную.
Синтаксис формул будет описан позднее.
Пример: если указать в поле Formula значение: 'element'+_i, то генератор будет генерировать значения вида element_0, element_1, element_2 и т.д.
- CYCLE - генерация значений с помощью перебора циклом типа From-To (с указанием начального и конечного значения, а так же шага).
При выборе этого способа генерации становятся доступны следующие поля: 'From', 'To' и 'Step'. По умолчанию во всех этих полях
установлено значение 0. Пользователь может редактировать значение этих полей вручную.
Значение 'To' всегда должно быть не меньше значения 'From', если пользователь указывает обратное, значения полей меняются местами между собой.
Изменение значений этих полей сразу влияет на содержимое поля 'Preview'.
- Scope - область видимости генерируемого параметра, может иметь одно из трех значений:
'DIRECT_CHILDREN', 'LOCAL', 'SUBTREE'.
- DIRECT_CHILDREN - значение параметра распространяется только на прямых потомков (детей) текущего элемента.
- LOCAL - значение параметра распространяется только на данный элемент.
- SUBTREE - значение параметра распространяется на все поддерево потомков данного элемента.
По умолчанию установлено значение 'DIRECT_CHILDREN'. Пользователь может выбрать одно из трех перечисленных значений в выпадающем списке.
- Preview - поле, где отображается сгенерированный указанным способом набор значений атрибута.
Содержимое этого поля является результатом установки значений параметров генератора. По умолчанию поле пусто. Редактирование возможно
косвенным образом при изменении параметров генератора (см. редактирование поля 'Attr.gen.type').