Input formats
REQCHECKER™ car read requirement statements and coverages from several data sources:
An Java API is provided to develop your own data source. Contact support team to get it.
Format features
The table below presents the format that are managed and for each format the available features.
- Track Change: the track change is available and the text is read after applying the change.
- Page Number: the page or slide number is available.
- Heading Number: the positions detail the chapter heading number. Such format allows to create requirement directly from chapter heading number.
- Table cell: the text is extracted from tables. Cell Text feature is available for custom tags (see GUI Custom Tags).
- Style filter: the style names are extracted.
Microsoft Office formats
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
Microsoft WORD >2007 (.docx .docm) | NO | NO | YES | YES | YES |
Microsoft WORD 97 (2) (.doc) | YES | NO | YES | NO | NO |
Microsoft EXCEL 2007 (.xlsx .xlsm) | N/A | N/A | N/A | YES (1) | NO |
Microsoft POWERPOINT 2007 (.pptx) | N/A | YES | N/A | NO | NO |
Microsoft EXCEL 97 (2) (.xls) | N/A | N/A | N/A | YES (1) | NO |
Note
(1) Each cell is read as a new line
(2) MS Word or MS Excel must be installed
Google Document formats
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
Google Docs (.gdoc) | NO | NO | YES | YES | YES |
Note
(1) You must allow the REQCHECKER Reader Google application to access the reading of your Google documents. The authorization page opens during the first calculation.
(2) Please read the REQCHECKER privacy policy
Other documents
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
Adobe PDF (.pdf) | N/A | YES | YES (1) | YES (1) | NO |
OpenOffice WRITER (2) (.odt) | NO | YES | YES | NO | YES |
Markdown (basic support) (.md) | NO | NO | NO | NO | NO |
Note
(1) Only some PDF heading number patterns are supported. The experimental heuristic algorithm automatically detects headings. The table of content is ignored. Standard patterns like "1.1 1.2.1.." and "1. A. 1. B.." are supported. Only some PDF structures are supported. The table cell recognition for PDF is an experimental feature.
(2) OpenOffice WRITER must be installed
"Database" formats
The required columns are described here
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
REQCHECKER XLSX reports (.xlsx) | NO | NO | NO | N/A | NO |
Jira reader
Atlassian Jira Software is a suite of agile work management solutions that powers collaboration across all teams from concept to customer, empowering you to do the best work of your life, together. Jira offers several products and deployment options that are purpose-built for Software, IT, Business, Ops teams, and more.
The .jira
file format is a text file that defines the connection properties to your custom query.
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
Jira connection file (.jira) | NO | NO | NO | NO | NO |
Main use case
To retrieve the list of ticket as requirements, you have to:
- Go to the ticket list of your Jira project
- Clic on
JQL
then define your filters, your sort options and launch the query. - Copy the full URL from the browser address bar. Its format something like:
https://<domain>/..../issues/?jql=project%20%3D%20%22...
. - Create a new connection file (e.g. with Notepad) and create a first line to define the value of
url:
, e.g.url: https://<domain>/..../issues/?jql=project%20%3D%20%22...
- Go to the API token management of your Atlassian account to create an API token
- Add new line in the connection file to define your Jira login
login: <your login>
- Add new line in the connection file to define your Jira APi key
pass: <your API key>
- Save the text connection file with the
.jira
extension, e.g.tickets.jira
- Go to Data Sources tab > Add File button and select your connection file.
- In the list Statement retrieval from:, select
Database
- Run your project and check that the tickets are correctly imported
Note
Saved issue list are supported as well. Go to the issue management of your projects : https://<domain>/issues
, create and save a predefined issue list.
File format
The syntax is for example as follow. The fieldMapping value are optional.
url: https://<your domain>/[jira/software/projects/<your project>/]issues/?jql=<your JQL>
[login: <your login>]
[pass: <your API key>]
[limit: <maximum number of ticket to retrieve ; default is 2000>]
[fieldMapping:
- from: <field id>
to: <REQCHECKER custom field>
...
]
Where:
[
]
means the item is facultative<your domain>
is your company or project in Atlassian URL<your project
> is your project ID<your JQL>
is your custom query copied from the Internet browser address<your login>
is your Atlassian login<your API key>
is your API key<field id>
is a field ID (see below)<REQCHECKER custom field>
is an associated to a custom field that presents the Jira custom field. The custom field is autmatically created.
Note
The query can be tested if you paste it in the URL bar of your browser. This is a way to test that there is no error in your connection file.
The following ticket attributes are automatically mapped to the requirement system attributes:
Field ID | Type | Description |
---|---|---|
key | Text | mapped to requirement ID |
summary | Text | mapped to requirement Title |
description | Text | mapped to requirement Text |
updateDate | Time | mapped to requirement Version with format YYMMDD.hhmm |
issue link | URL | mapped to requirement position |
The following ticket attributes can be mapped to custom fields.
Field ID | Type | Description |
---|---|---|
status | Text | Ticket status |
priority | Text | Ticket priority |
assignee | Text | Name of assignee |
creator | Text | Name of creator |
duedate | Date | Ticket Due date |
issuetype | Text | Ticket type |
project | Text | Project name |
updated | Date | Task spent hours |
Example
The syntax is for example as follow.
url: https://issues.apache.org/jira/browse/LOGGING-180?jql=project%20%3D%20LOGGING%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC
fieldMapping:
- from: status
to: TICKET_STATUS
- from: updated
to: UPDATED
Redmine reader
Redmine is an open-source flexible project management web application. It can be used to record tickets defining the need for a software or system change. The tickets are then similar to requirements or requirement groups. This reader extracts the tickets from a Redmine custom query and import them as requirements.
The .redmine
file format is a text file that defines the connection properties to your custom query.
Format | Track Change | Page Number | Heading Number | Table cell | Style filter |
---|---|---|---|---|---|
Redmine connection file (.redmine) | NO | NO | NO | NO | NO |
Main use case
To retrieve the list of ticket as requirements, you have to:
- Go to the Issues tag of the Redmine project
- Define your filters and sort options
- Save the custom query. Its name does not matter.
- Create a new text file (e.g. with Notepad) and write
query=
- Copy the value of the query in the URL bar of your browser.
- Paste the value of the URL in the text file. The result looks like
query=http://myredmine/projects/myproject/issues?query_id=1
- If your Redmine project is not public, add your login and password in the query definition. The result looks like
query=http://login:password@myredmine/projects/myproject/issues?query_id=1
- Save the text file with the
.redmine
extension, e.g.myprojectquery.redmine
- Add this file in your Reqchecker project in Data Sources tab > Add File button.
- In the list Statement retrieval from:, select
Database
- Run your project and check that the tickets are correctly imported
Warning
If your Redmine project is not public, you must check that REST API is enabled: go to Redmine Administration > Settings > API > Enable REST API.
File format
The syntax is
query: HTTP://LOGIN:PASS@SERVER:PORT/projects/PROJECTID/issues?query_id=QUERYID
field:
- from: REDMINE_FIELD_ID
to: REQUIREMENT_ATTRIBUTE
- from: ...
to: ...
Where:
HTTP
is either HTTP or HTTPSLOGIN:PASS@
(facultative for public projects) is a text that defines the user login and the user password, or the API key.SERVER
is the IP or DNS name of the serverPORT
(facultative if 80) is the portPROJECTID
is the Redmine project identifier defined in the project page > Settings > Project > Identifier.QUERYID
is the query number (integer) that is visible at the end of the URL in the browserREDMINE_FIELD_ID
is a system or custom field ID in RedmineREQUIREMENT_ATTRIBUTE
is the name of the target requirement attribute
Note
The query can be tested if you paste it in the URL bar of your browser. This is a way to test that there is no error in your Redmine file.
The following information are automatically mapped to the requirement system attributes:
Field ID | Type | Description |
---|---|---|
id | Text | mapped to requirement ID |
subject | Text | mapped to requirement Title |
description | Text | mapped to requirement Text |
journal size | Integer | mapped to requirement Version |
issue link | URL | mapped to requirement position |
List of system field IDs
The following field IDs can be used as "from" values to be mapped as requirement attribute.
Field ID | Type | Description |
---|---|---|
startDate | Date | Start date |
dueDate | Date | End date |
createdOn | Date | Creation date |
updatedOn | Date | last update date |
doneRatio | Integer | Progress rate percentage |
parentId | Integer | ID of parent issue |
estimatedHours | Float | Task estimated hours |
spentHours | Float | Task spent hours |
assigneeName | String | name of assignee |
priorityText | Text | Priority (text value) |
projectName | Text | project name |
authorName | Text | name of author |
tracker | Text | tracker name |
closedOn | Date | issue closed on date |
statusName | Text | status (text value) |
targetVersion | Text | target version |
issueCategory | Text | category |
privateIssue | Boolean | issue is private |
Examples
The following are examples of the contents of Redmine data import files (file with .redmine extension).
Connection without login and with some mapping
query: https://www.redmine.org/projects/redmine/issues?query_id=84
field:
- from: estimatedHours
to: HOURS
- from: dueDate
to: DUE DATE
- from: Resolution
to: Resolution
- from: authorName
to: AUTHOR
- from: issueCategory
to: CATEGORY
- from: priorityText
to: PRIORITY
- from: tracker
to: TRACKER
- from: projectName
to: PROJECT
- from: statusName
to: STATUS
- from: parentId
to: PARENT
Connection with login and password
query=http://johndoe:apassword@myredmine/projects/myproject/issues?query_id=2
Connection with API key
To avoid writing your password in a project file that is shared with other users, you can identify yourself with your API key.
In Redmine, go to My Account, on the right pane click on API access key > Show and copy the value. The result is something likea89987536fcd37d69ed887ec80adda144b48d329
.
query=http://a89987536fcd37d69ed887ec80adda144b48d329@myredmine/projects/myproject/issues?query_id=2
Source Code
This plugin reads the statements and/or coverage in the source code comments.
Main use case
It allows requirements or user stories to be covered directly in the software source code, which is required to comply with certain non-rules such as the DO-178C LEVEL C.
For example:
/*
* Security management
* This class manages ...
* <<REQ_SEC_02>>
*/
File format
Language | File extension |
---|---|
C/C++ source code | .cpp .hpp .c .h .inc |
Java source code | .java |
JavaScript source code | .js |
C# source code | .cs |
XML file | .xml |
Python source file | .py .pyw |
Windows batch script | .bat |
Linux shell script | .sh |
Kotlin source file | .kt |
Groovy source file | .groovy .gvy .gy .gsh |
PHP source file, two single line markers | .php |
TypeScript source file | .ts |
YAML source file | .yaml .yml |
Objective-C source file | .mm .m |
ASP (Active Server Pages) source file | .asp |
Swift source file | .swift |