Ground Control is a system for managing testing programs which employ highly mutable standards. If you test products or services -- and the standards you apply during testing are subject to complex and frequent changes -- Ground Control can help.
Ground Control was developed at Consumer Reports Digital Lab to address the specific challenges associated with applying The Digital Standard as part of a rigorous and ongoing product testing program.
gcsh
web client (coming soon)
Node.js > 12
git clone https://github.com/consumerreports/groundcontrol
cd groundcontrol/src
npm i
cd src/gcsh
node gcsh.js
If you're serious about product testing, then you must not only apply standards in a rigorous way at test time -- you must also be able to look back at past test history and understand how and why previous tests were performed. This can become quite challenging if your standards change over time. Given some testable widget whose behaviors you'd like to study longitudinally, it's not immediately clear how to compare multiple test events spread over a period of time if the standards you applied at each test event may have prescribed differing test domains and methodologies.
This is a foundational problem for us to solve at Consumer Reports Digital Lab -- because we apply The Digital Standard -- a living, open source consensus which is subject to ongoing evolution.
We model the challenge as a state management problem and solve it by borrowing two ideas from functional programming:
- Declare our data immutably1
- Express our outputs (e.g. test plans) as functions which map values to new values, rather than state
1 We haven't yet implemented immutable data storage. Want to work on it together? Become a contributor.
Ground Control is currently in prototype stage. Here's what's coming next:
Immutable data storage
Web client
Ground Control can use the Google Sheets API to write and fetch data; this functionality is implemented as a gcdata module through a simplified PUT/GET interface (src/gcdata/store/gcstore_gs.js).
To take advantage of Google Sheets integration, you'll need to drop your own valid API credential in src/gcenv.
jsonschema Used widely for object validation. Standards are currently defined as jsonschema schemas.
js-yaml Used to serialize and deserialize YML. Ground Control currently uses YML as its serialization format.