Overview
Franz A. Fuchs is a researcher affiliated with the University of Cambridge (Department of Computer Science and Technology, cl.cam.ac.uk) who works on randomized and mutation-based testing of RISC-V CPUs, with a particular emphasis on the CHERI capability-security extensions. He is listed as a co-author of the journal paper "Randomized Testing of RISC-V CPUs Using Direct Instruction Injection", published in IEEE Design & Test, volume 41, issue 1, pages 40–49, in February 2024 (DOI: 10.1109/MDAT.2023.3262741). The full author list is: Alexandre Joannou, Peter Rugg, Jonathan Woodruff, Franz A. Fuchs, Marno van der Maas, Matthew Naylor, Michael Roe, Robert N. M. Watson, Peter G. Neumann, and Simon W. Moore.
Fuchs is also a co-author of the RISC-V Summit Europe 2025 presentation "Who tests the TestRIG? Tooling for randomised tandem verification" (Peter Rugg, Alexandre Joannou, Jonathan Woodruff, Franz A. Fuchs, Simon W. Moore).
Associated work: TestRIG and Direct Instruction Injection
The 2024 paper describes TestRIG (Testing with Random Instruction Generation), a testing framework for RISC-V implementations. TestRIG cross-verifies implementations against the Sail formal model of the RISC-V architecture by generating random instruction sequences, executing the same sequences on the model and on the implementation under test, and comparing execution traces in tandem execution. The approach does not formally prove equivalence but can demonstrate divergence between an implementation and the model, and is usable at all stages of development.
The paper introduces Direct Instruction Injection (DII) as a test-injection technique. In normal execution the next instruction is fetched from program memory at the address given by the program counter; with DII, the next instruction to be executed is supplied directly by the test harness, regardless of the program counter. TestRIG uses the standard RISC-V Formal Interface (RVFI) to observe state changes after each instruction of the implementation under test.
Findings and methodology
The authors report using TestRIG to test many standard RISC-V extensions and the experimental CHERI security extension. They state that TestRIG was easier to use than instruction-set level unit tests, since individual instructions can be tested as they are implemented without supporting a full testing framework. They also report that random generation gave more thorough test coverage than developer-driven exploration, and that TestRIG was effective at detecting issues not only in instruction semantics but also in the pipeline and data caches. As a result, TestRIG has completely replaced instruction-set level unit testing in the authors' development workflow.
Subsequent work: "Who tests the TestRIG?" (2025)
The 2025 RISC-V Summit Europe presentation, co-authored by Fuchs, discusses improvements to the TestRIG ecosystem since its first public presentation at the RISC-V Summit in Zurich in 2019. The work, which originated at the University of Cambridge, describes:
- A mutation-based coverage tooling feature. Because the Sail golden model is treated as correct by definition, traditional code coverage can hide bugs in Sail itself. The authors describe auto-generated reports that show the results of mutation-based testing of Sail CHERI functions (e.g., by removing lines of Sail code), indicating whether deletion prevented the model from building, whether a counterexample was successfully detected, or whether no counterexample was detected and additional directed test generation is needed.
- Features for generating static test suites.
- A single-implementation mode that enables more traditional fuzzing.
The developments are motivated by testing the Toooba processor, including its CHERI security extensions. TestRIG is in use to test CHERI in the Toooba and CVA6 processors, and the repository has seen community engagement from users and contributors at Microsoft Research, lowRISC, and SCI Semiconductor.
The presentation also describes QuickCheckVEngine, a verification engine that uses Haskell's QuickCheck library to generate tests and automatically shrink any divergences to a minimal reproducer. The RISC-V golden Sail model implements the RVFI-DII interface, allowing implementations to be compared against this executable simulator.