Apps
Introduction
Apps is the term that we use for containers of requirements (user stories). Other tools commonly refer to this as a project.
Available Commands
GET /apps
GET /apps/{app_id}
GET /apps/{app_id}/requirements
GET /apps/{app_id}/suggested_tests
GET /apps/{app_id}/glossary
POST /apps/{app_id}/requirements
List Apps
GET https://api.scopemaster.com/v1/apps
Returns a list of the first 100 apps for which the user (who created the API key) has access. Each app includes meta information under the stats object.
Get an App
GET https://api.scopemaster.com/api/v1/apps/{app_id}
e.g.
GET https://api.scopemaster.com/api/v1/apps/AP976797889
Returns the app excluding the requirements (user stories)
Example response:
{
"id": "AP72f6ed657b",
"lang": "en",
"title": "Example web shopping cart 6",
"description": "This is just an example that you can learn with. .",
"owner_id": "1",
"org_id": "OR30c8746905",
"created_utc": "1572969724",
"updated_utc": "1573230864",
"access_level": "OWNER",
"url": "https://api.scopemaster.com/v1/apps/AP72f6ed657b",
"requirements_url": "https://api.scopemaster.com/v1/apps/AP72f6ed657b/requirements",
"stats":{
"test_count": 132,
"test_scenario_count": 44,
"cfp_total_estimate": 74,
"requirements_count": 12,
"cfp_total_extrapolated": 81,
"rtype_nfrs_count": 0,
"rtype_functionals_count": 12,
"rtype_tasks_count": 0,
"rtype_constraints_count": 0,
"version": "1.8.1",
"q_ambiguous_count": 1,
"q_missing_count": 38,
"q_duplicate_count": 3,
"q_total_defect_count": 43,
"q_complex_count": 1,
"q_score": 56.15833333333333,
"q_sized_stories": 11
}
},
{
"id": "AP36220daad2",
"aid": "248",
"lang": "en",
"title": "New Jira test",
... ETC...
}
]
Glossary Arrays (Updated)
GET /apps/{app_id}/glossary
Note this endpoint output has been rationalised and simplified. Scroll to the bottom to see the previous output.
This will append the glossary (data dictionary) arrays of :
Users
- Suggested users (ScopeMaster guesses)
- Confirmed users (Your confirmed glossary entries)
Objects
- Detected functional objects (functional intent detected for this object)
- Confirmed objects (Your confirmed/glossary entries)
/** Updated output **/
"users": [
{
"name": "user",
"occurrence_count": 176,
"confirmed": false
},
{
"name": "client",
"occurrence_count": 15,
"confirmed": true,
"glossary": {
"id": "GL759ae8b662",
"word": "client",
"definition": "customer",
"created_utc": "1665744488",
"udpated_utc": "0",
"user_id": "1"
}
},
{
"name": "operator",
"occurrence_count": 67,
"confirmed": false
}
],
"objects": [
{
"name": "enterprise edition",
"occurrence_count": 1,
"occurrences": [
"RQ9ec8efb768"
],
"confirmed": false
},
{
"name": "entity",
"occurrence_count": 3,
"occurrences": [
"RQdef929dda4",
"RQ833a53cd82",
"RQ011d0ec261"
],
"confirmed": true,
"glossary": {
"id": "GL2a2d6df4cd",
"word": "entity",
"definition": "a reusable thing",
"created_utc": "1665738952",
"updated_utc": "1665740397",
"user_id": "1",
"json": "{\"attributes\":[{\"name\":\"name\",\"datatype\":\"String\"}]}"
}
},
],
Previous Output Below (for reference only, no longer available)
This will append the glossary (data dictionary) arrays of :
- Suggested users (ScopeMaster guesses)
- Suggested objects (ScopeMaster guesses)
- Confirmed users (Your confirmed glossary values)
- Confirmed objects (Your confirmed glossary values)
Example partial response:
"suggested_users": [ { "name": "administrator", "total_salience": 1.2129544, "confirmed": 0, "occurrences": [ { "requirement_id": "RQ3f176b7cfc", "original_name": "administrator" }, { "requirement_id": "RQ55431dd43b", "original_name": "administrator" } ] }, { "name": "candidate", "total_salience": 0.03183357, "confirmed": 0, "occurrences": [ { "requirement_id": "RQ155c8f6e2a", "original_name": "candidate" } ] } ], "confirmed_users": [ { "name": "visitor", "original_name": "visitor", "id": "GLd5b49b7b8c", "app_id": "AP488280a716", "definition": "", "created_utc": "1610448718", "updated_utc": "0" } ], "confirmed_objects": [ { "name": "address", "original_name": "address", "id": "GL9d9be72172", "app_id": "AP488280a716", "definition": "a delivery address object", "created_utc": "1610555828", "updated_utc": "0" } ],
The Stats Sub object
Each app has a stats sub object that contains summary information about the results of the ScopeMaster analysis for all the requirements in the app.
Field Name | Description |
version |
The analysis engine version number. This affects the rules for determining functional intent (and therefore size) of each story. This is different from the API version. |
requirements_count |
The total number of requirements (of all types) in the app |
test_count | The number of suggested individual test checks. |
test_scenario_count |
The number of suggested test scenarios (both positive and negative test scenarios) |
rtype_functionals_count |
The number of requirements marked as functional (default). Currently only these requirements are analysed and sized. |
rtype_nfrs_count |
The number of requirements marked as NFR Non functional requirement |
rtype_tasks_count |
The number of requirements marked as a task |
rtype_constraints_count |
The number of requirements marked as a project constraint |
q_sized_stories |
The number of requirements for which functional intent (and therefore size) was detected. |
q_ambiguous_count |
The number of requirements for which no functional intent was detected. i.e. q_sized_stories + q_ambiguous_count = rtype_functionals_count |
q_missing_count |
Suggested number of missing stories based on the CRUD analysis across all the functional requirements. |
q_duplicate_count |
Suggested number of duplicate stories based on the CRUD analysis across all the functional requirements. |
q_complex_count |
Suggested number of stories that may be too complicated or too large. |
q_total_defect_count |
Total number of suggested possible defects in the requirements. |
q_score |
ScopeMaster's combined weighted score out of 100 for the overall quality of the requirements based on the other q_ values. |
Get Requirements
GET https://api.scopemaster.com/api/v1/apps/{app_id}/requirements
Returns an array of requirements for the given app_id
Example:
[
{
"app_id": "AP36220daad2",
"id": "RQfcfade02e0",
"title": "Add my search term to the search box. ",
"ref": "MG-342",
"body": "Add my search term to the search box. Press go to start the search. Display a list of searched products, really fast. Only show products that are in inventory. Create this page in javascript so that it displays very fast. Verify that this can be don",
"notes": null,
"external_id": "MG-342",
"created_utc": "1573059235",
"updated_utc": "0",
"cfp": 0,
"analysis":[],
"links_from": [
{
"id": "91",
"link_type": "RELATES",
"link_from": "RQ76508350cf",
"link_to": "RQ9932f1ecc4",
"label": "menu click"
}
],
"links_to": [],
"tags": [
{
"tag_id": "TGee69b34767",
"label": "discuss with customer"
},
{
"tag_id": "TGd00ec1abc9",
"label": "sprint 1"
}
],
},
{
"app_id": "AP36220daad2",
"id": "RQ7a3b4af019",
"title": "As a [site] editor I can save information",
"ref": "MG-101",
"body": "As a [site] editor I can save information in a trainers-only section [so that only trainers see it.]",
"notes": null,
"external_id": "MG-101",
"created_utc": "1573059298",
"updated_utc": "0",
"cfp": 0,
"analysis":[]
}
]