Project

General

Profile

Coverage format » History » Version 16

Viktoria Kopach, 10/08/2014 06:00 PM

1 2 Viktoria Kopach
h1. Формат файла с информацией о покрытии
2 1 Viktoria Kopach
3
Описывается на XML.
4
5 2 Viktoria Kopach
<pre>
6
<?xml version="1.0" encoding="UTF-8"?>
7
<coverageInfo> 
8
  <reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации">
9 6 Viktoria Kopach
    <covered_by uri="путь_к_покрывающему_элементу" hits="1"/>
10 2 Viktoria Kopach
  </reqcoverage>
11 9 Denis Kildishev
  <reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации">
12
    <covered_by uri="путь_к_покрывающему_элементу"/>
13
  </reqcoverage>
14 13 Viktoria Kopach
  <error [name="имя_ошибки"] testuri="uri_элемента_covered_by" [uri="ссылка_на_описание_ошибки"]>
15 10 Denis Kildishev
      [<violates qid="уникальный_идентификатор_требования_или_тестовой_ситуации"/>]*
16 11 Alexey Khoroshilov
      [<description [format="вид_описания_ошибки"]>описание_ошибки</description>]
17 9 Denis Kildishev
  </error>
18 2 Viktoria Kopach
</coverageInfo>
19
</pre>
20 1 Viktoria Kopach
21
Здесь:
22 8 Denis Kildishev
23 9 Denis Kildishev
Квадратными скобками обозначены опциональные параметры.
24 14 Viktoria Kopach
25 15 Viktoria Kopach
- +*coverageInfo*+ - может быть только один экземпляр в файле. Он содержит вложенные XML-элементы *reqcoverage* (один или несколько) и *error* (может не быть, может быть один или несколько).
26 14 Viktoria Kopach
27 16 Viktoria Kopach
- +*reqcoverage*+ - элемент-ребенок для *coverageInfo*. Должен быть задан отдельно для каждого покрытого Requality-элемента. (Непокрытые узлы не описываются никак.) Содержит вложенные XML-элементы *covered_by* (один или несколько). Каждому вложенному *covered_by* должен соответствует одна тестовая процедура или тест. Имеет атрибут *qid*.
28 1 Viktoria Kopach
29 16 Viktoria Kopach
- +*covered_by*+ - элемент-ребенок для *reqcoverage*. Внутри *reqcoverage* их может быть несколько в зависимости от того, сколько тестовых процедур или тестов покрывают соответствующий ему Requality-элемента. Каждый *covered_by*  - это один покрывающий Requality-элемент. *covered_by* имеет атрибуты *uri* и *hits*.
30 15 Viktoria Kopach
- +*hits*+ - атрибут XML-элемента *covered_by*, является опциональным. Указывает количество упоминаний этого требования *reqcoverage* в тесте *covered_by*.
31 14 Viktoria Kopach
32 16 Viktoria Kopach
- +*error*+ - элемент для описания ошибки, полученной в результате выполнения теста. Может содержать один элемент *description* с описанием ошибки. Может включать один или несколько элементов *violates* в ситуации, когда можно определить какие именно требования нарушает ошибка. Имеет атрибут *testuri* и опциональные атрибуты *name* и *uri*.
33 14 Viktoria Kopach
34 16 Viktoria Kopach
- +*violates*+ - опциональный элемент, соответствует требованию, которое нарушает ошибка. Каждый элемент *violates* соответствует одному нарушенному требованию. Имеет атрибут *qid*. Если элемент *violates* не указан, ошибка в отчете отображена не будет.
35 14 Viktoria Kopach
36 16 Viktoria Kopach
- +*description*+ - опциональный элемент, текстовое описание ошибки. Имеет опциональный атрибут *format*.
37 3 Viktoria Kopach
38 5 Viktoria Kopach
*_уникальный_идентификатор_требования_или_тестовой_ситуации_* это user-visible-name(element) или qualifying-id(element) покрываемого элемента
39 1 Viktoria Kopach
40 5 Viktoria Kopach
* user-visible-name(element) - это имя элемента, если оно есть (то есть если поле name в Properties view у этого элемента не пустое),
41
иначе это user-visible-name(element.parent)/id, то есть сначала user-visible-name родительского элемента, потом id - идентификатор элемента (в качестве разделителя использовать ''/'').
42
Например: 
43 3 Viktoria Kopach
"TR-FMF-01-01-002/TR-FMF-01-01-002_T01"
44 1 Viktoria Kopach
45 5 Viktoria Kopach
* qualifying-id(element) - это полный путь к элементу, начиная с корневого элемента (Requirements), в качестве разделителя используется ''/''.
46
Например:
47
"Requirements/01/MyRequirement01"
48
49 1 Viktoria Kopach
*_путь_к_покрывающему_элементу_*
50
* если описывается покрытие тестовых ситуаций тестовыми процедурами, то это путь к шагу тестовой процедуры.
51 6 Viktoria Kopach
** Если тестовая процедура находится в том же проекте, то путь записывается без протокола, например:
52 1 Viktoria Kopach
"/TestProcedures/01/TestStep04"
53
Здесь 01 - идентификатор тестовой процедуры, 04 - номер шага тестовой процедуры.
54 6 Viktoria Kopach
** Если тестовая процедура находится в другом проекте Requality, то путь записывается следующим образом:
55
"requality://ProjectName/TestProcedures/01/TestStep04"
56
Здесь ProjectName - имя проекта, где находится тестовая процедура.
57 1 Viktoria Kopach
58 6 Viktoria Kopach
* если описывается покрытие тестовых ситуаций тестами, то это путь к тесту, например:
59 2 Viktoria Kopach
"file:///home/user/work/test1.c#12"
60 1 Viktoria Kopach
61
*имя_ошибки* - опциональный параметр, представляет собой отображаемое имя ошибки. В случае если не определен, используется имя "error"+порядковый_номер_ошибки. 
62
63 13 Viktoria Kopach
*uri_элемента_covered_by* - путь к одному из тестов, описанному в covered_by элементе
64 10 Denis Kildishev
65 11 Alexey Khoroshilov
*ссылка_на_описание_ошибки* - опциональный параметр, путь к файлу с подробной информацией об ошибке
66 9 Denis Kildishev
67
*уникальный_идентификатор_требования_или_тестовой_ситуации* - путь к требованию или тестовой ситуации, соответствующий *qualifying-id(element)*
68
69
*format="вид_описания_ошибки"* - формат описания ошибки, есть два возможных представления, соответвующих "вид_описания_ошибки" - представление в формате html или plain соответствующий тексту без форматирования. Для последнего варианта все html теги будут отображаться в виде текста.
70
71
*описание_ошибки* представляет собой описание ошибки, при этом для формата html допускается использование html тегов для форматирования текста.
72
73 2 Viktoria Kopach
Пример описания покрытия тестовыми процедурами:
74
75
<pre>
76
<?xml version="1.0" encoding="UTF-8"?>
77 1 Viktoria Kopach
  <coverageInfo>
78 2 Viktoria Kopach
    <reqcoverage qid="TR-FMF-01-01-001/TR-FMF-01-01-001_T02">
79 9 Denis Kildishev
      <covered_by uri="/TestProcedures/01/TestStep05" hits="1"/>
80 2 Viktoria Kopach
    </reqcoverage>
81 1 Viktoria Kopach
    <reqcoverage qid="TR-FMF-01-01-001/TR-FMF-01-01-001_T01">
82 9 Denis Kildishev
      <covered_by uri="/TestProcedures/01/TestStep03" hits="1"/>
83 1 Viktoria Kopach
    </reqcoverage>
84 2 Viktoria Kopach
    <reqcoverage qid="TR-FMF-01-01-001">
85 9 Denis Kildishev
      <covered_by uri="/TestProcedures/01/TestStep01" hits="1"/>
86 2 Viktoria Kopach
    </reqcoverage>
87
    <reqcoverage qid="TR-FMF-01-01-002/TR-FMF-01-01-002_T01">
88 9 Denis Kildishev
      <covered_by uri="/TestProcedures/01/TestStep02" hits="1"/>
89 2 Viktoria Kopach
    </reqcoverage>
90
    <reqcoverage qid="TR-FMF-01-01-006">
91 9 Denis Kildishev
      <covered_by uri="/TestProcedures/01/TestStep04" hits="1"/>
92 2 Viktoria Kopach
    </reqcoverage>
93 1 Viktoria Kopach
  </coverageInfo>
94
</pre>