PennTURBO / semantic-engine

TURBO semantic engine (Drivetrain). Transforms source-dependent RDF data into a source-independent, semantically rich RDF model.
6 stars 0 forks source link

Drivetrain Automated Test Generation - How to Use and Ideas for Improvement #74

Closed greenguy33 closed 4 years ago

greenguy33 commented 4 years ago

Commit 0e22bae allows Drivetrain to automatically generate Snapshot tests based on Update Specifications (formerly called Process Specifications, formerly called Processes, typed as turbo:TURBO_0010354) in a given Transformation Instruction Set. These tests provide a "Snapshot" of the expected inputs and outputs of a given Update Specification at a certain point in time, and should be re-generated when changes are made to the Update Specification or to relevant Connection Recipes.

How to use is subject to change in subsequent releases. For now, do this to get it working:

Each generated test class will include 2 tests:

  1. All fields test
  2. Minimum fields test

All fields test contains a synthetic set of triples for the given Update Specification based on all possible inputs, required and optional. Minimum fields test contains a synthetic set of triples for the given Update Specification based on only the required inputs. In both cases, the triples are inserted into the testing repo listed in turbo_properties.properties under testingRepository and then the Update Specification is executed against the triples. Results are pulled back by the test class and confirmed to match results hard-coded in the test class, based on the results returned during the generation of the Snapshot test.

Below are a few concerns I have with the current implementation, which can be improved upon in future releases.