arch.md 4.9KB

Arch notes

Workflow

[ Repo ]

   | 1      init(type,args) # init repo:
   |                        # * type can be Filesystem or other,
   |                        # * args can be root, connection string...
   |        load(stm)       # obtain STM from repo
   v n

[ STM ]

   | 1      parse_head()    # parse text and fill out metadata properties
   |        gen_sts(args)   # generate a number of STS from an STM
   |                        # * args - args specify ranges from where
   |                        #          STMs are generated; typically
   |                        #          Cartesian product
   v n

[ STS ] = STM + ARGS

   | 1      gen_task(sts,args)  # a task (or a number of) can be created
   |                            # from STS.  In less managed scenarios
   |                            # (e.g. Beta testing) STS can be served
   |                            # right away, and task ID will be generated
   |                            # off-site, e.g. using embedded JS, at
   |                            # time of report
   v n

[ TSK ] = STS + TID

More graphical, from HTTP POV

  • the main source file is stored in repository, under revision say, 123

    /release/rc.stm

    +------------------[ vcs rev: 123 ]-----+
    | STM # Source file                     |
    +---------------------------------------+
    | Name: Release Client                  |
    | Component: ~                          |
    | Description: Basic release criterion  |
    | Owner: some.guy@example.com           |
    | Various ISTQB BS: this; that...       |
    |                                       |
    | Here the body sterts...               |
    |                                       |
    | # Main #                              |
    | 1. Check A                            |
    |    > result is a                      |
    | 2. Check IMAPIsm        {proto==imap} |
    | 2. Check POP3ism        {proto==pop3} |
    |    > result is OK                     |
    +---------------------------------------+
    
  • QA operator requests for Slave (i.e. a variation for his specific needs); text/plain version. Notice how revision number is passed down to the Slave

    GET /release/rc.stm?os=7&proto=imap
    Accept: text/plain
    
    +---------------------------------------+
    | STS # Slave template                  |
    +---------------------------------------+
    | Stm: /release/rc.stm                  |
    | Stm Revision: 123                     |
    | Params: os=7; proto=imap              |
    |                                       |
    | Here the body starts...               |
    |                                       |
    | # Main #                              |
    | 1. Check A                            |
    |    > result is a                      |
    | 2. Check IMAPIsm                      |
    |    > result is OK                     |
    +---------------------------------------+
    
  • or they may like HTML better (and POP3 rather than IMAP)...

    GET /release/rc.stm?os=7&proto=pop3
    Accept: text/html
    
    +---------------------------------------+
    | HTML # Generated from STS             |
    +---------------------------------------+
    | # HTML version of above...            |
    | # With POP3 step instead of IMAP step |
    |                                       |
    :                                       :
    '                                       '
    

Flow diagram

 User  :  App  :  Repo :  STM  :  STS
=======================================
   |       |       |       |       |
   |       o ----> |       |       |
   |       | init  |       |       |
   o ----> |       |       |       |
   | GET   |       |       |       |
   | /rc?a o ----> |       |       |
   | =b    | load  |       |       |
   |       | <---- o       |       |
   |       |  stm  |       |       |
   |       |       |       |       |
   |       o ------------> |       |
   |       |       | gen(a |       |
   |       |       | =b)   |       |
   |       | <------------ o       |
   |       |       | sts   |       |
   |       |       |       |       |
   |       o --------------------> |
   |       |       |       | rndr  |
   |       | <-------------------- o
   |       |       |       | html  |
   |       |       |       |       |
   | <---- o       |       |       |
   |  html |       |       |       |
   |       |       |       |       |
=======================================

Service API

+----------------------
| SVC
+----------------------
|