Skip to content

consumerreports/groundcontrol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ground Control

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.

📓 Documentation

Ground Control API

gcsh

web client (coming soon)

🤓 Requirements

Node.js > 12

💾 Installation

git clone https://github.com/consumerreports/groundcontrol

cd groundcontrol/src

npm i

🧠 Usage

cd src/gcsh

node gcsh.js

👽 Mutable standards: the problem space

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:

  1. Declare our data immutably1
  2. 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.

🛣️ Roadmap

Ground Control is currently in prototype stage. Here's what's coming next:

Immutable data storage

Web client

🔌 Integration with external services

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.

🙏 Dependencies

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published