input_formats.Rd
In order to format validation docs, mrgvalidate must collect various pieces
of information from the caller. This information can be broken down into two
categories: information about the requirements and information about the
executed tests. Below is a description of how this data is expected to be
formatted. **Note: there a companion package mrgvalprep
containing
functions to preprocess common inputs (R's testthat
, Googlesheets, etc.)
into the format required by mrgvalidate
.
A tibble or data.frame containing the stories, and optionally requirements,
for the software being validated. Will be passed to specs
argument of
create_package_docs()
or create_metworx_docs()
. Must have the following columns:
StoryId: unique identifier for the story
StoryName: short name of story (ideally 5-8 words max, but no hard limit)
StoryDescription: body of the story ("As a user,..."). This will be dumped as is into the requirements document. The text up to the first new line will be used the value of the "User Story" column in the traceability matrix.
ProductRisk: specify the risk to the product of this story (typically "Low", "Medium", "High", etc.)
RequirementId (Optional): unique identifier of technical requirement associated with story. If included, there can be >1 requirement per story, each with its own row in the table, in which case the first four columns will be repeated for each requirement.
RequirementDescription (Optional): plain text description of the requirement
TestIds: unique identifiers for tests that validate this requirement or story. This field is used to map stories/requirements to tests.
The mrgvalprep
packages has several helpers for importing stories into this
format. See mrgvalprep::read_spec_gsheets()
and
mrgvalprep::parse_github_issues()
for examples.
For automated tests, a directory containing any number of CSVs with the test
results. The path will be passed to auto_test_dir
argument of
create_package_docs()
or create_metworx_docs()
. A CSV file must have the following columns:
TestName: a description of the test
passed, failed: a count of passed and failed assertions for the test
TestId: a unique identifier of the test. This field is used to map tests to stories/requirements.
For testthat
tests, the mrgvalprep::parse_testthat_list_reporter()
helper can be used
to convert testthat::ListReporter results into the above format.
Note that if TestName and TestId columns are identical,
create_package_docs()
/ create_metworx_docs()
will auto-generate IDs. This is a temporary kludge
to support legacy tests and GitHub issues that don't use test IDs.
Alongside each CSV, there must be a JSON file with the same base name. This file includes information about the run itself (e.g., the date it was executed and system details). At the minimum, it must have a "date" field. Any key-value pairs that are specified under the top-level "info" field will be rendered in the validation docs.
{"date": "2021-07-26 12:20:10 EDT",
"info":
{"commit": "78f70b9297a7f8b0f2ec2a18d17a9cc6722359c8"
} }
The mrgvalprep::get_sys_info()
helper can be used to capture various system details and
write them to a JSON file.
For manual tests, a directory containing test subdirectories named by test ID, one subdirectory per manual test. For example:
|-- MAN-ACC-001
| |-- assets_MAN-ACC-001
| | `-- SSH-Access-1.png
| `-- test.md
|-- MAN-ACC-002
| |-- assets_MAN-ACC-002
| | |-- Guacamole-UI-1.png
| | `-- Guacamole-UI-2.png
| `-- test.md
Each subdirectory must adhere to the following:
The subdirectory (and therefore the test ID) must begin with MAN-
.
It must contain a file called test.md
which contains the user story, etc.
If there are any images or other content linked in the test.md
file,
those files must be in a subdirectory (in the same directory as the relevant test.md
)
named assets_[test ID]
.
The test.md
file must have the following structure:
A subheading starting with ## [test ID]: [test name]
at the top. The "test name"
will be parsed through into the validation docs.
A date that the test was run, on a line beginning with * date: [date the test was run]
Any other content you want parsed through into the Validation Testing document. For example, test description, run details, test results, links to images, etc.
The path will be passed to man_test_dir
argument of
create_metworx_docs()
.
mrgvalprep::parse_testthat_list_reporter()
,
mrgvalprep::get_sys_info()
, mrgvalprep::read_spec_gsheets()
,
mrgvalprep::parse_github_issues()