initial list of test heuristics

This commit is contained in:
unlikelyzero 2022-04-17 09:29:56 -07:00
parent dbac9e6cd2
commit 75241a42fb

View File

@ -0,0 +1,72 @@
# Test Heuristics / QA Checklist
The purpose of this document is to identify common patterns and "implicit requirements" associated with Open MCT domain objects to prevent bugs as early as possible in the SDLC: the design and implementation phases.
These checklist items are not strict rules to follow, but just a list of "implicit requirements" that come when adding new domain objects to Open MCT given how it is leveraged by many downstream projects. When a checklist item in the form of a question, they should be viewed as design decision as well as a requirement.
## Net New Domain Object
The following checklist items should be considered when adding a net new domain object.
### CRUD
Checklist items specific to creating, reading, updating, or deleting interactions.
#### Create
- A domain object should be visible on the Create Menu with an icon and hoverover helper text
- A domain object should be creatible with only required fields selected.
- A domain object should be creatible with optional fields.
- A newly created domain object should have a selectable Location which can have composition (i.e. Folders)
- If a domain object is editable, it should be in edit mode after create modal
#### Read
- Once a domain object is created, it should be possible to directly navigate to it by URL in fixed and real-time
#### Edit
- Can edit all properties from 'Edit properties' action
#### Delete
- Can delete domain object with 'Remove Object' action
- Once removed, object is no longer visible in tree, no traces remain as links, and the object is not returned in Search
### Interaction with first order domain objects
The following is a list of "first order" domain objects which integrate with _new_ domain objects by default
#### Notebook interaction
- Should be able to drag object into notebook?
- Can take a snapshot of the object in fixed or realtime mode
- Can include snapshot of object in notebook entry
- Snapshot Modal. Can export as JPEG/PNG
#### Drop interaction
- Should this object be droppable into other objects like display layout?
- What should be droppable into this domain object's main view?
#### Telemetry Interaction
- Does this object need to receive realtime updates from a telemetry endpoint?
- If yes, how many telemetry endpoints can we reference. If one, show confirmation dialoge to replace existing.
- Does this object need
#### Form Properties
- All form props (except hidefromInspector) are visible in inspector
- All props should be testable
- All time related properties should avoid DDOS attacks
#### Search
- Search for object in tree
#### Import and Export
- Export Object and Re-import this domain object as JSON
#### Navigation
- Can refresh after creating object
- Can navigiate direclty via URL to object
- Open Object in New Tab action works as expected
#### Fixed vs Realtime mode
- Events generated by time API
- Clock
- Time system
- Bounds
#### Display Layout
- Can drag object into Displaylayout and object "looks good"
- Should be able to use Large Display Action