smtc
v1.0.1
Published
A test case generator from state machine diagram
Downloads
3
Maintainers
Readme
smtc
This is a Smtc class. It's a "S"tate "M"achine "T"est "C"ase generator inspired by https://note.com/yumotsuyo/n/nd3099b40dc1f
Try it in your browser! TRY IT NOW
Document is here
install
$ npm i -g smtc
Usage
command line
# -h:help
# <file>:inputscript
# -s : switch
# -t : output type t:transition/m:matrix/c:testcases/d:diagram
smtc [-h] <file> [-s <0|1|2... (0:default)>] [-t <t|m|c|d (t:default)>]
sample data
$ cat __tests__/testData.txt
initial => "Accepting reservations" ;
"Accepting reservations" => "Reservation accepted" : reserve ;
"Reservation accepted" => "Reserved" : approve;
"Reserved" => "Reservation accepted" : cancel approval;
"Reservation accepted" => "Accepting reservations" : reject;
"Reservation accepted" => "Accepting reservations" : cancel of reservation;
"Reserved" => "Accepting reservations" : cancel;
"Reserved" => final : car delivered;
Transition matrix
$ smtc __tests__/testData.txt
||[None]|reserve|approve|cancel approval|reject|cancel of reservation|cancel|car delivered| |:--|:--|:--|:--|:--|:--|:--|:--|:--| |initial|Accepting reservations|||||||| |Accepting reservations||Reservation accepted||||||| |Reservation accepted|||Reserved||Accepting reservations|Accepting reservations||| |Reserved||||Reservation accepted|||Accepting reservations|final| |final|||||||||
zero switch cases
$ smtc __tests__/testData.txt -t c
|#|State#1|Event#1|State#2| |:--|:--|:--|:--| |0|initial|[None]|Accepting reservations| |1|Accepting reservations|reserve|Reservation accepted| |2|Reservation accepted|reject|Accepting reservations| |3|Reservation accepted|cancel of reservation|Accepting reservations| |4|Reservation accepted|approve|Reserved| |5|Reserved|cancel|Accepting reservations| |6|Reserved|cancel approval|Reservation accepted| |7|Reserved|car delivered|final|
zero switch matrix
$ smtc __tests__/testData.txt -t m
||initial|Accepting reservations|Reservation accepted|Reserved|final| |:--|:--|:--|:--|:--|:--| |initial||[None]|||| |Accepting reservations|||reserve||| |Reservation accepted||reject,cancel of reservation||approve|| |Reserved||cancel|cancel approval||car delivered| |final||||||
one switch cases
$ smtc __tests__/testData.txt -t c -s 1
|#|State#1|Event#1|State#2|Event#2|State#3| |:--|:--|:--|:--|:--|:--| |0|initial|[None]|Accepting reservations|reserve|Reservation accepted| |1|Accepting reservations|reserve|Reservation accepted|reject|Accepting reservations| |2|Accepting reservations|reserve|Reservation accepted|cancel of reservation|Accepting reservations| |3|Accepting reservations|reserve|Reservation accepted|approve|Reserved| |4|Reservation accepted|approve|Reserved|cancel|Accepting reservations| |5|Reservation accepted|reject|Accepting reservations|reserve|Reservation accepted| |6|Reservation accepted|cancel of reservation|Accepting reservations|reserve|Reservation accepted| |7|Reservation accepted|approve|Reserved|cancel approval|Reservation accepted| |8|Reservation accepted|approve|Reserved|car delivered|final| |9|Reserved|cancel approval|Reservation accepted|reject|Accepting reservations| |10|Reserved|cancel approval|Reservation accepted|cancel of reservation|Accepting reservations| |11|Reserved|cancel|Accepting reservations|reserve|Reservation accepted| |12|Reserved|cancel approval|Reservation accepted|approve|Reserved|
one switch matrix
$ smtc __tests__/testData.txt -t m -s 1
||initial|Accepting reservations|Reservation accepted|Reserved|final| |:--|:--|:--|:--|:--|:--| |initial|||[None] -> reserve||| |Accepting reservations||reserve -> reject,reserve -> cancel of reservation||reserve -> approve|| |Reservation accepted||approve -> cancel|reject -> reserve,cancel of reservation -> reserve,approve -> cancel approval||approve -> car delivered| |Reserved||cancel approval -> reject,cancel approval -> cancel of reservation|cancel -> reserve|cancel approval -> approve|| |final||||||
{% include form.html %}