Skip to content

Latest commit

 

History

History
 
 

profile-resolution

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Profile Resolution Specification and Testing

process notes

  • new 'resolution-testing.xml' keeps track of unit tests
  • spec is validated against this test manifest
  • it can also be converted into XSpec or other test drivers

Test coverage

Finishing the tests by assigning them to Github Issues?

Validating the tests (source/target)

need a process for this - also Github Issues?

Revising the spec

  • validate test manifest against its spec - any broken links?

Providing feedback on this specification

The OSCAL team welcomes feedback on the work in progress in this subdirectory, whether it be questions, points for clarification, critiques or suggestions. A rendered version of the Profile Resolution specification maintained here appears on the OSCAL web site.

Please post Issues in Github or questions to the OSCAL mailing list, or ask about them on our Gitter channel. (See https://pages.nist.gov/OSCAL/contact/ for links.)

The specifications are being edited in an ad-hoc XML back end format, a lightweight extension to HTML tagging. If you wish to edit the files directly, we have stylesheets for presentation and HTML conversion along with Schematron for validation (runtime or at check points); please contact us.

Profile Resolution Unit Tests

Profile resolution unit tests are maintained here and bound to the specification via markup embedded with the specifications, for convenience in alignment. Formal test scenario files can be generated dynamically from markup when needed.

In this subdirectory, the folder profile-resolution-examples includes old tests kept here for potential future use/reuse while we complete a common test set.

The comment test set we are developing can be found in folder requirement-tests.

SpecML Capabilities

  • XML authoring of specifications

  • HTML previews with ToC / requirements index

  • HTML rendering for Hugo / site load

  • Back end validation support for specialized semantics

  • Tagging of requirements integrates with unit tests

  • Cosmetic reformatter rewrites your document with clean tagging and whitespace

  • Unit test set (XSpec) is annotated with keys (links) back to spec document

  • Two-way indexing enables assessment of coverage by unit tests (per marked up requirements)

  • The tests themselves can be illustrated (in/out) using another rendering XSLT

oXygen project for editing specs

Included in this folder is an oXygen XML Editor project file with settings for many of these operations.

SpecML requirement tagging

//req shows requirements called out as statements in line.

//eg shows bindings to example documents for purposes of testing.

<eg href="requirement-tests/req-chained-deepA.xml">PENDING chained profiles</eg>

The @href is the file instance for the example. The text is a qualifying description. Prefixing the text with PENDING signals that a test should be deactivated. In this case, as soon as chained profiles are supported, the description can be changed and the test will be run.

Presently all eg are inside req so there is an implicit relation there (no examples are named apart from stated requirements).

Unit test scenario generation

Based on markup in the SpecML document, XSpec unit test sheets can be generated framing the unit test held in this subdirectory, to be executed in any (current) XSpec implementation.

Requirements listing

Broken out by requirement - corresponding line by line to //req in the Spec document source. This XSpec is generated by applying the XSLT lib/build-reqs-xspec.xsl to the SpecML source document (marked with req and eg tags).

File listing

Grouped by file instead of by requirement (since there is a many-to-many relation), this XSpec may be faster and more efficient to execute.

This XSpec is generated by applying the XSLT lib/build-examples-xspec.xsl to the same SpecML source document.

Handmade XSpec

Additionally handmade XSpec works, such as profile-resolution-queryset.xspec