This repository has been archived by the owner on Oct 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 16
/
CHANGELOG
122 lines (95 loc) · 4.74 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Modbat history
Version Description
1.0.0 Initial release. Built against Scala 2.9.2.
1.0.1 Fixed bug about reporting on classes with empty package names.
1.0.2 Fixed typo in example/improvements in documentation.
-- 1.2 series --
1.2.0 Internally used version. Features off-line code generation.
Built against Scala 2.10.0.
1.2.1 Fixed typo in example/improvements in documentation.
-- 1.3 series --
1.3.0 Added optional label for actions.
Better error handling for invalid model classes.
Generating meaningful labels automatically for dot output when
no user-defined label is given.
Fixed bug where some transitions would not be shown in dot output.
-- 1.4 series --
1.4.0 Added optional weight for transitions.
Changed behavior of random seed option (-s) for small numbers
to avoid poor distributions in random values.
Fixed bug where some transitions would be shown twice in dot output.
Fixed bug in state coverage count in case launch was used.
Defined and implemented more precise semantics for @Before/@After
when child instances are launched.
Fixed bug where IllegalArgumentException was misclassified as a
failed requirement.
1.4.1 Added "chooseIf", which takes a list of predicates and actions,
and chooses one of the actions of which the predicate is true
(or none if no predicate is true).
Fixed bug where coverage information was not always correct.
-- 1.5 series --
1.5.0 Added "@States" annotation, which allows the specification of
self-loop transitions for multiple given states, by annotating
a method.
A failed transition action is now reported by its stack trace
information rather than by reflection, which pinpoints the
right source line of the failing last transition.
1.5.1 Minor bug fixes.
1.5.2 Various bug fixes regarding the output of "@States" transitions.
-- 2.0 series --
2.0.0 Annotations are now in upper case (thus models using annotations
are not compatible between 1.X and 2.X).
Added support for "@Throws", "@Weight" annotations for methods
using "@States".
Added support for showing coverage information of all launched
(child) models, too, both as summary and as dot output.
REMOVED option dot-file as it does not work for multiple outputs.
Added option dot-dir to set output directory for dot files.
Added API functions getRandomSeed, testFailed.
2.1.0 Initial support for Observer state machines.
Added option --show-choices, which shows choices taken inside
a transition (in the error trace).
Rewrote code that handles requirements/assertions for:
- more fine-grained control of model/SUT-level requirements, and
- ability to handle assertion failures in other threads.
2.2.0 More UML-like visualization of state graph.
-- 3.0 series --
3.0 Simplified model syntax; less boilerplate code and no commas
between transitions needed.
REMOVED empty transitions (use "skip") and singleton models.
- Remove "def instance = new MBT" from old models.
- Change "Set[State]" to "List[State]" to ensure correct ordering.
- To convert singleton models, keep annotated Init/Shutdown and
related code in companion object but move model to dynamic
instance (class).
3.1 Added a classification of test failures based on the exact
exception and the transition in which they occurred.
Added a feature to trace model variables using annotation @Trace.
3.2 - After a declared exception is caught, the next transition is
executed on the same model, so the successive action appears
to execute atomically with the action that caught the exception..
This helps with dealing with exceptions in models that have
multiple active instance. A non-atomic catch can be modeled
by inserting an additional "skip" transition.
- Coverage now shows the percentage of all times a given edge
was taken (for non-zero coverage).
- Print a warning if test has to be aborted because all
preconditions of all available transitions are false.
- Added "join(Model)", which blocks the given model until the
target model has terminated. Note that termination does not
recognize transitions with impossible preconditions, but
only models with no outgoing transitions or where the loop
limit is reached.
3.3 - Build is now on gradle; the documentation has been updated
accordingly.
- A system test suite with the test script bin/test.sh has been
added.
3.4 - The tool now supports the visualization of execution paths and
test case generation based on heuristic search.
- Added new annotation "stay", API functions "setWeight" and
"invokeTransition".
- Added support for virtual time (requires akka).
3.5 The source code and scripts have been adapted for Scala 2.11.12
and Java 11 (OpenJDK 11.0.2).
The JAR packaging has been updated to include more libraries,
to make it easier to run Modbat with different Scala installations.