Skip to content
STIMSMITH

MicroTESK

Tool

MicroTESK is an open-source, specification-based test program generation framework for microprocessors developed at ISP RAS. It uses ISA specifications in a dialect of nML, MMU specifications in MMUSL, and Ruby test templates to extract testing situations and dependencies and generate concrete test programs using symbolic execution and constraint solving.

First seen 5/26/2026
Last seen 8/22/2026
Evidence 38 chunks
Wiki v4

WIKI

MicroTESK

MicroTESK is a specification-based test program generation (TPG) framework for microprocessor verification. It is described in the literature as one of the few open-license tools in its class and as an open-source, extensible, reconfigurable TPG framework developed by the MicroTESK team at ISP RAS.[1][2]

Architecture and inputs

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

50 connections
Constraint-based Test Generation implements → 90% 4e
MicroTESK is a specification-based tool for constructing test program generators using constraint-based techniques.
Architecture Description Language uses → 100% 4e
MicroTESK uses ADL descriptions to configure the test program generator for target microprocessors.
The paper mentions MicroTESK as a related tool for test program generation.
SMT-LIB uses → 100% 3e
MicroTESK uses the SMT-LIB language to formulate constraint satisfaction problems.
test program generation implements → 100% 3e
MicroTESK is a specification-based tool for constructing test program generators.
Coverage Model uses → 100% 3e
MicroTESK uses ADL descriptions to build coverage models for individual instructions.
test templates uses → 100% 3e
MicroTESK uses test templates to describe test scenarios and generate test programs.
Test Template Processor ← part of 100% 2e
The test template processor is a component of MicroTESK's testing framework.
MIPS Instruction Set Architecture uses → 90% 2e
MicroTESK is demonstrated with MIPS instruction set architecture examples.
Microprocessor Architecture Model uses → 100% 2e
MicroTESK is built around a microprocessor meta-model derived from architecture specifications.
Constraint Solver Engine ← part of 100% 2e
The constraint solver engine is a component of MicroTESK's testing framework.
Test Sequence Generator ← part of 100% 2e
Test sequence generators are components of MicroTESK's testing framework.
Test Data Generator ← part of 100% 2e
Test data generators are components of MicroTESK's testing framework.
Instruction Set Architecture uses → 100% 2e
MicroTESK models the instruction set architecture as part of its framework functionality.
Combinatorial Generation implements → 100% 2e
MicroTESK supports combinatorial generation as one of its test generation techniques.
MMUSL uses → 100% 2e
MicroTESK uses MMUSL for MMU specifications
constraint solving implements → 90% 2e
MicroTESK implements constraint solving for test data generation
Template-Based Generation implements → 95% 2e
MicroTESK supports template-based generation through its test template processor.
Instruction-Level Model uses → 100% 2e
MicroTESK is organized around instruction-level models.
Symbolic Execution implements → 90% 2e
MicroTESK implements symbolic execution for test data generation
MIPS Instruction Set uses → 90% 2e
MicroTESK uses the MIPS instruction set as an example for specification.
Constraint-Based Random Generation implements → 100% 2e
MicroTESK implements constraint-based random generation for test data generation.
The paper mentions MicroTESK as a related test generator tool.
Test Template uses → 100% 2e
MicroTESK uses test templates to specify test scenarios.
Test Situation uses → 100% 2e
MicroTESK uses test situations expressed as constraints for test data generation.
Design Model uses → 100% 2e
MicroTESK uses a design model extracted from formal specifications.
The paper introduces MicroTESK as an ADL-based reconfigurable test program generator.
Reconfigurable Test Program Generator implements → 100% 2e
MicroTESK implements the concept of a reconfigurable test program generator using ADL specifications.
SMT Solver uses → 100% 2e
MicroTESK uses SMT solvers for constraint-based test data generation.
Constraint Satisfaction Problem uses → 100% 2e
MicroTESK formulates and solves constraint satisfaction problems for test data generation.
Java Constraint Solver API uses → 100% 2e
MicroTESK uses Java Constraint Solver API for SMT-LIB-based constraint solving.
Self-Checking Test implements → 100% 2e
MicroTESK's test template processor supports generation of self-checking tests.
Random Generation implements → 100% 2e
MicroTESK supports random generation as one of its test generation techniques.
Instruction Set Model uses → 100% 2e
MicroTESK builds an instruction set model from ADL specifications.
Test Knowledge uses → 100% 2e
MicroTESK automatically extracts test knowledge from ADL specifications.
Microprocessor Verification evaluates → 90% 1e
MicroTESK is applied to microprocessor verification
buffer-event factorization uses → 90% 1e
MicroTESK uses buffer-event factorization as a heuristic
preparator uses → 90% 1e
MicroTESK uses preparators to generate initialization code
ISP RAS develops the MicroTESK framework
Alexander Kamkin authored by → 98% 1e
Alexander Kamkin is listed as a manager and project creator of MicroTESK.
Alexander Protsenko authored by → 95% 1e
Alexander Protsenko is listed as a manager and developer of MicroTESK.
Mikhail Chupilko authored by → 90% 1e
Mikhail Chupilko is listed as a developer of MicroTESK.
The paper cites MicroTESK as a specification-based tool for constructing test program generators.
Sergey Smolov authored by → 90% 1e
Sergey Smolov is listed as a developer of MicroTESK.
Model-Based Test Generation implements → 90% 1e
MicroTESK is a specification-based tool for constructing test program generators, implementing model-based test generation.
The paper mentions MicroTESK as a related test generation framework.
The paper introduces the MicroTESK framework.
Sim-nML uses → 100% 1e
MicroTESK uses Sim-nML as its supported ADL for specifying microprocessors.
Yices uses → 95% 1e
MicroTESK suggests using Yices as one of the SMT solvers.
Z3 uses → 95% 1e
MicroTESK suggests using Z3 as one of the SMT solvers.

CITATIONS

9 sources
9 citations — click to expand
[1] MicroTESK is an open-license specification-based TPG tool whose version 2.3+ inputs include nML ISA specifications, MMUSL MMU specifications, and Ruby test templates; it extracts situations and dependencies for test generation and template enumeration. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[2] The MicroTESK team describes its goal as creating an open-source, extensible, reconfigurable TPG framework; the MIPS64 MMU work used ISA specifications in nML, MMU specifications in MMUSL, Ruby test templates, symbolic execution, and constraint solving, and identified constraint-solving performance and multicore extension as future work. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[3] The MIPS64 MMU tool based on MicroTESK consists of an architecture-independent generation core and MIPS64 memory-subsystem specifications, and uses MMUSL specifications to extract execution paths and dependencies with symbolic execution and constraint solving for test data. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[4] MicroTESK ISA specifications define data types, constants, registers, access modes, memories, and instructions; MMUSL is used for address types, memory segments, buffers, and load/store control logic. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[5] MMUSL buffer specifications can include associativity, sets, entry format, index and tag functions, and eviction policy; test templates are Ruby subclasses that use specification-defined modes/instructions and TPG constructs such as blocks and situations. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[6] For MMU generation, MicroTESK parses specifications into an ISS interpreter and a labeled DAG, extracts execution paths, derives dependencies over shared buffers, and enumerates symbolic test programs using path/dependency combinations and heuristics. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[7] Symbolic test programs are instantiated with test data such as addresses, buffer entries, and load/evict sequences and then transformed into ISA-specific preparation code. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[8] The MIPS64 MMU case study specified address spaces, TLB entry format, address translation, two-level write-through cache, JTLB/DTLB, L1/L2 caches, selected memory segments, and 18 memory-access instructions; the MMUSL description was approximately 220 lines. Specification-Based Test Program Generation for MIPS64 Memory Management Units
[9] The MicroTESK public project page lists Alexander Kamkin as project creator, Alexander Kamkin and Alexander Protsenko as managers, and Alexander Protsenko, Alexander Kamkin, Mikhail Chupilko, and Sergey Smolov among developers. Overview - MicroTESK - Open-Source Projects