Development Milestones » History » Version 9
Alexander Kamkin, 04/03/2014 08:37 AM
1 | 1 | Alexander Kamkin | h1. Development Milestones |
---|---|---|---|
2 | |||
3 | 2 | Alexander Kamkin | h2. Version 2 (deadline: 31/08/2014) |
4 | 1 | Alexander Kamkin | |
5 | 2 | Alexander Kamkin | MicroTESK v2 should fully support instruction set specifications and random/combinatorial template-based test program generation. This is the minimal functionality that makes the MicroTESK tool useful. |
6 | 1 | Alexander Kamkin | |
7 | 8 | Alexander Kamkin | | *Version 2.0* | *30/04/2014* | *Features:* nML-based instruction set specification, test situations, exceptions, initialization code, branching instructions | |
8 | 3 | Alexander Kamkin | |
9 | 2 | Alexander Kamkin | * _Test Situations_ |
10 | ** Manual description of test situations in Java and XML should be supported |
||
11 | ** Test situations should be accessible from test templates (corresponding solvers should be invoked, and generated data should be substituted into the test program) |
||
12 | ** Each instruction should have a top-level test situation (by default, the top-level situation is @Random@) |
||
13 | ** There should be a configuration file assigning top-level test situations to instructions (@Random@, @Zero@, etc.) |
||
14 | * _Initialization Code_ |
||
15 | ** Manual specification of initialization code (for each access mode) should be supported |
||
16 | ** Automated extraction of initialization code (for each access mode) should be implemented |
||
17 | * _Exceptions_ |
||
18 | ** Mechanism for specifying exceptions should be clarified (probably, a predefined function, like @RaiseException@, should be introduced) |
||
19 | ** Means for describing exception handling logic should be added |
||
20 | * _Branch Instructions_ |
||
21 | ** Facilities for defining/using labels in test templates should be revisited |
||
22 | ** Combinatorial test program generation based on test templates with branch instructions should be implemented |
||
23 | 4 | Alexander Kamkin | * _Examples_ |
24 | ** A test template with branch instructions (combinatorial generation) |
||
25 | 1 | Alexander Kamkin | * _Documentation_ |
26 | 2 | Alexander Kamkin | ** All new facilities should be documented |
27 | |||
28 | 9 | Alexander Kamkin | | *Version 2.1* | *31/05/2014* | *Features:* VLIW specification and testing, floating-point arithmetic, register aliases, self-checking test program generation | |
29 | 3 | Alexander Kamkin | |
30 | 1 | Alexander Kamkin | * _Specification_ |
31 | 9 | Alexander Kamkin | ** Means for specifying VLIW architectures (e.g., Elbrus) should be added |
32 | ** Floating-point arithmetic should be supported |
||
33 | 3 | Alexander Kamkin | ** Auxiliary nML constructs, like @alias@, should be enabled |
34 | ** Mechanisms for calling operations in operations should be implemented |
||
35 | * _Testing_ |
||
36 | ** Mechanisms for calling test templates in test templates should be implemented |
||
37 | ** Generation of self-checking test programs should be supported |
||
38 | 1 | Alexander Kamkin | ** Means for writting test templates for VLIW architectures should be added |
39 | * _Examples_ |
||
40 | 4 | Alexander Kamkin | ** A fragment of the Elbrus architecture should specified |
41 | 3 | Alexander Kamkin | ** Some test templates for the Elbrus architecture should be written |
42 | * _Documentation_ |
||
43 | ** All new facilities should be documented |
||
44 | 1 | Alexander Kamkin | |
45 | 8 | Alexander Kamkin | | *Version 2.2* | *30/06/2014* | *Features:* test situation composition/decomposition/iteration, test coverage extraction, constrained-random test data generation | |
46 | 1 | Alexander Kamkin | |
47 | 4 | Alexander Kamkin | * _Test Situation Composition_ |
48 | ** Disjunctive composition of test situations should be supported (random choice of a test situation based on biases) |
||
49 | ** Conjunctive composition of test situations should be supported (there should possibility to specify hard and soft constraints) |
||
50 | * _Test Situation Decomposition_ |
||
51 | ** Means for splitting test situations into disjunctions of implicants should be implemented (BDD-based and other test generation algorithms can be applied): @rule(situation)@ |
||
52 | ** The set of decomposition rules should be extensible |
||
53 | * _Test Situation Iteration_ |
||
54 | ** Means for iterating test situations should be implemented: @iterate(disjuntive_situation)@, @iterator(rule(situation))@ or @iterate(situation1, situation2, ...)@ |
||
55 | * _Test Coverage Extraction_ |
||
56 | 1 | Alexander Kamkin | ** For each instruction and for each path in its CFG, the corresponding test situation should be constructed |
57 | 4 | Alexander Kamkin | ** For each instruction, the top-level test situation should be constructed as the disjunctive composition of the extracted test situations |
58 | * _Examples_ |
||
59 | ** A test situation composition example should be added |
||
60 | ** A test situation decomposition example should be added |
||
61 | ** A test situation iteration example should be added |
||
62 | * _Documentation_ |
||
63 | ** All new facilities should be documented |
||
64 | 1 | Alexander Kamkin | |
65 | 8 | Alexander Kamkin | | *Version 2.3* | *31/08/2014* | *Features:* integration with TestBase, Eclipse-based development environment, test program tracing | |
66 | 1 | Alexander Kamkin | |
67 | 4 | Alexander Kamkin | * _TestBase Project_ |
68 | ** Functions for structuring/composing/decomposing/... test situations should be separated into the TestBase project |
||
69 | ** Additional test generation facilities should be implemented |
||
70 | 1 | Alexander Kamkin | * _MicroTESK IDE_ |
71 | 4 | Alexander Kamkin | ** An Eclipse plugin should be implemented (including an nML editor, instructions/situations viewers, test template wizards, compiler/generator launchers, etc.) |
72 | * _Tracing_ |
||
73 | ** A trace format should be developed |
||
74 | 1 | Alexander Kamkin | ** Trace utilities should be implemented and integrated into the test program generator |
75 | 4 | Alexander Kamkin | * _Documentation_ |
76 | ** All new facilities should be documented |
||
77 | * _Promotion_ |
||
78 | 1 | Alexander Kamkin | ** The miniMIPS microprocessor should be specified |
79 | 4 | Alexander Kamkin | ** Test templates for the miniMIPS microprocessor should be written |
80 | ** The test program generator should be added into the miniMIPS project at OpenCores |
||
81 | |||
82 | 5 | Alexander Kamkin | h2. Version 3 (Deadline: 31/08/2015) |
83 | 2 | Alexander Kamkin | |
84 | 4 | Alexander Kamkin | MicroTESK v3 should support microarchitectural specifications and automated test template generation. The tool should be extended to complex multicore microprocessors with cache coherence support. |
85 | 2 | Alexander Kamkin | |
86 | 8 | Alexander Kamkin | | *Version 3.0* | *31/12/2014* | *Features:* memory management, caching, address translation | |
87 | 4 | Alexander Kamkin | |
88 | * _Microarchitectural Specifications_ |
||
89 | ** Specification of memory management units should supported |
||
90 | 2 | Alexander Kamkin | |
91 | 8 | Alexander Kamkin | | *Version 3.1* | *31/05/2015* | *Features:* pipelining, microarchitectural networks | |
92 | 4 | Alexander Kamkin | |
93 | * _Internal Representation_ |
||
94 | 2 | Alexander Kamkin | ** Internal representation should be unified with the Retrascope''s one |
95 | |||
96 | 8 | Alexander Kamkin | | *Version 3.2* | *31/08/2015* | *Features:* multicore microprocessors, Promela, cache coherence | |
97 | 4 | Alexander Kamkin | |
98 | * _Multicore Microprocessors_ |
||
99 | ** Integration with Promela specifications should be implemented |
||
100 | |||
101 | _To be continued..._ |