ReqSuite® Quality Checker (QC)
REST API

Authentication

POST
/token

With this method you get an access token, which you must use as the key for authentication using Bearer for the other methods.

Request:
grant_type=password&username=max.mustermann&password=myPassword1234

Response:

{"access_token":"TikwwVdL1jQyVUP4MrZrTM56eAAK1lq6woY7qRCXDrR3GPcxn4Y17qGwNbqLJsaxANLK_cpovo-iE45M7Kbn74751j0LynQI55AK4piYVfAaIBF-mUjMOCvQhYGyR98yZd_cjr6O-DHZA1KNbOvs0jv-YOkREaBQrca0of_JtRlkXz17Ke0wzj_P43zCz5_2uYXFd2Xcf38V0NU0Dw1vmlQX2FO9IdaIfQ7v5m6XYPVFXZHOtnZ0KDX9_71LbYdp-p_EE6rL9tJPJRbt6bvJW8PuHmKia7k5DvTgPtfVgIlHpq4jNw72vG-QSr6fhkpc5_UQ7hTX6n-aSRZ2fXwY3iLg03dA7BTG4Tu9lvYTxyHYT8XYBSLY4yqtYaAfMCT8HW_3HqUzmu8qWRoQ4Bhxc6l4J0QXEJ6UnUVZCUjjuaL9yO0b-Xl_2cBZt0PhTYOtqS-CBATWhCwScqJvvOa_79dgSw_hghZte4UiCItjY2ZX9iHgt9fUxsLM5yDjekxfWE0E0tc4iY72eRJeE6hHyCMOeGhFHeZQ","token_type":"bearer","expires_in":31535999,"as:client_id":"","userName":"max.mustermann","userId":"1","TenantId":"1","ReqSuiteRole":"TenantAdmin",".issued":"Thu, 30 Aug 2018 13:18:53 GMT",".expires":"Fri, 30 Aug 2019 13:18:53 GMT"}

Perform Checks

POST
/api/External/QC/Quality/{lang}/{checkRequirement}/{checkTerms}?checkTypes={checkTypesString}

With this method you get results of a linguistic quality check for requirements in the specified language {lang}, whereby this is currently possible in German (DE) or English (EN). The mandatory boolean field {checkRequirement} indicates by true or false whether the algorithm shall check for statements that are not written in a requirements-like manner. The mandatory boolean field {checkTerms} defines by true or false whether to give a recommendation which terms and abbreviations shall be defined. The optional {checkTypes} parameter specifies which finding types should be included in the response. To specify multiple types, it is possible to concatenate the types with a pipe: “GENERIC WORD|MISSING ACTOR”. Possible Values are “UNFOUNDED WISH”, “REQUIREMENTS EXPLANATION MIX”, “MISSING ACTOR”, “NO REQUIREMENT”, “COMPLEX SENTENCE”, “WEAK WORD”, “GENERIC WORD”, ”MISSING CASE DISTINCTION”, “MISSING QUANTIFICATION”, “MISSING DETAIL” and “NON APPROPRIATE WORD”.

Request:
[
   {
	"id": "1287",
	"text" : "The system must provide the user with the ability to save his data."
   },
   {
	"id": "1288",
	"text" : "The system must be able to calculate the user's data."
   }
]

Response:

   {
   "$id": "1",
   "$type": "ReqSuite.API.Data.RSCheckResult",
   "results": [
	{
		"$id": "2",
		"$type": "ReqSuite.API.Data.RSCheckContent",
		"id": "1287",
		"text": "The system must provide the user with the ability to save his data.",
                "findingType": "GENERIC WORD"
		"review": "The sentence \"The system must provide the us...\" is imprecisely described because of the unspecific word \"data\". ",
                "recommendation": "Make clear which \"data\" you mean."
	},
	{
		"$id": "3",
		"$type": "ReqSuite.API.Data.RSCheckContent",
		"id": "1288",
		"text": "The system must be able to calculate the user's data.",
                "findingType": "MISSING DETAIL",
		"review": "The sentence \"The system must be able to cal...\" is incomplete due to a missing statement about the criteria (according to what?) for the verb \"calculate\". ",
                "recommendation": "Make this clear."
	}
   ],
   "checkedWords": 23,
   "timeStamp": "2020-09-02T09:47:12.692Z",
   "costs": "0,02 €"
}
POST
/api/External/QC/ElaborateReview/{lang}

This method allows you to receive more information about a review result. To do this, a review result must be sent in the request, which you can receive via the above mentioned “Quality” method.

Request:
{
   "id": "1287",
   "text": "The system must provide the user with the ability to save his data.",
   "findingType": "GENERIC WORD",
   "review": "The sentence \"The system must provide the us...\" is imprecisely described because of the unspecific word \"data\". ", 
   "recommendation": "Make clear which \"data\" you mean."
}

Response:

{
   "The feedback on the requirement \"The system must provide the user with the ability to save his data\" suggests that the requirement is not specific enough. It is not clear what type of data the user can save, where the data will be saved, or how the user can access the saved data. \n\nTo improve the requirement, you can add more details such as:\n\n- Specify what type of data the user can save. For example, user preferences, user-generated content, or system settings.\n- Specify where the data will be saved. For example, locally on the user's device, in the cloud, or on a server.\n- Specify how the user can access the saved data. For example, through a file explorer, a specific menu option, or an API.\n\nA more specific requirement could be: \"The system must provide the user with the ability to save their preferences locally on their device, and access them through a dedicated preferences menu.\" This requirement is more specific and provides clear guidance on what needs to be implemented."
}
POST
/api/External/QC/Similarity/{lang}

Use this method to get results of a linguistic similarity search for requirements in the specified language {lang}, which currently works for German (DE) and English (EN).

Request:
[
   {
	"id": "1287",
	"text" : "If the status changes to critical, the system must display a warning."
   },
   {
	"id": "1288",
	"text" : "When the status is critical, the system should display a warning to the user."
   }
]

Response:

{
   "$id": "1",
   "$type": "ReqSuite.API.Data.RSCheckResult",
   "results": [
	{
		"$id": "2",
		"$type": "ReqSuite.API.Data.RSCheckContent",
		"id": "1287",
		"text": "If the status changes to critical, the system must display a warning.",
                "findingType": "SIMILARITY",
		"review": "The requirement has a 83.33 % similarity with the requirement 1288. \"When the status is critical, the system should dis...\". ",
                "recommendation": "Check whether this is a duplicate or even a contradiction and resolve the conflict if necessary."
	},
	{
		"$id": "3",
		"$type": "ReqSuite.API.Data.RSCheckContent",
		"id": "1288",
		"text": "When the status is critical, the system should display a warning to the user.",
                "findingType": "SIMILARITY",
		"review": "The requirement has a 83.33 % similarity with the requirement 1287. \"If the status changes to critical, the system must...\". ",
                "recommendation": "Check whether this is a duplicate or even a contradiction and resolve the conflict if necessary."
	}
   ],
   "checkedWords": 26,
   "timeStamp": "2020-09-02T09:49:40.116Z",
   "costs": "0,03 €"
}

Settings

POST
/api/External/QC/WordList/{lang}

This method allows you to define which black and white lists in the specified language {lang} (German (DE) or English (EN)). If you specify only terms in the “use” field, the quality checker will learn these terms and will not list them in the glossary recommendation. If you specify both “avoid” and “use” fields, the quality checker will recognize the use of these undesirable terms and will provide appropriate alternatives instead.
Please note that each call of this method overrides the existing word list, i.e., you must always enter all terms in each call and not only the terms you want to update.

Request:
[
     {
		"avoid": "requirements analysis, requirements development, requirements elicitation",
                "use": "requirements engineering"
     },
     {
		"avoid": "software development, software creation",
                "use": "software engineering"
     }
]

Response:

-
POST
/api/External/QC/WrongReview

With this method you can mark a given review as wrong or not appropriate, e.g., because it is a false positive.

Request:
{
		"id": "1287",
		"text": "The system must provide the user with the ability to save his data.",
                "findingType": "GENERIC WORD"
		"review": "The sentence \"The system must provide the us...\" is imprecisely described because of the unspecific word \"data\". ",
                "recommendation": "Make clear which \"data\" you mean."
}

Response:

-

Query Credit

GET
/api/External/QC/Contingent

With this method you receive the status of your current remaining credit, which you can use for the language tests of your requirements.

Request:
-

Response:

96,83 €