sugar-trail
Set of syntax rules and a PL to allow for easy writing of test procedures.
Synopsis
Header: value of any kind
Other-header: name1=value1; name2=value2
Another-one: something else
After an empty line, body starts. (Just like MIME.) The body is
basically just Markdown with some modifications discussed later.
#case name#
1. instruction
> expected result (or check point, or oracle)
> another expected result {fam>10} {os~win*}
2. cond. instruction
* yes: opt 1
* no: opt 2
0. Assertion (specifically zero, can be anywhere)
3. another instruction
Description
Basic form is similar to MIME. First headers, then, after one empty line, the
body, up to the EOF. Just like in MIME, headers are only for meta-data--they
are not visible in the final output.
Inside header, various parameter ranges like OSes, architectures, product
editions or hardware types can be declared. Later, presence of entities (e.g.
instructions) can be conditioned using these.
This is also meant to allow for generation of set of ready procedures with
variations of parameters.
Rules
- if assertion -or- instruction fails
- IN is generated
- rest of test case is skipped
- if expected result fails
- IN is generated
- TC goes on
Terms
- IN - incident note
- TC - test case
- ST - sugar trail (trail of test cases)
Example
Name:
Putting giraffe into fridge
- Open the fridge
- Put the giraffe into the fridge
- Close the fridge
Putting elephant into fridge
- Open the fridge
- Take the giraffe put of the fridge
- Put the elephant into the fridge
- Close the fridge
Emptying fridge
- Open the fridge
- What is inside the fridge?
- elephant: take out the elephant
- giraffe: take out the giraffe
- Closer the fridge
!. Fridge is empty
Taking elephant out of the fridge
- There is an elephant inside the firdge
- Open the fridge
> fridge opens well
- Look inside the fridge
> you see elephant
> elephant has a pullover
> elephant is not cold
- Take the elephant out of the fridge
> elephant does not fight
> elephant looks happier outside the fridge
> it does not make too much sound
- everybody is sleeping
- Close the fridge
> Fridge closes well
TODO
- define keyboard shortcuts (not the ugly `Shift+F8)