Skip to content

A Software Test Library compaction tool based on VC-Z01X.

License

Notifications You must be signed in to change notification settings

cad-polito-it/testcrush

Repository files navigation

Python3 Unit Tests Static Badge

🗜️ TestCrush: An STL Compaction Toolkit 🗜️

Software Test Library (STL) compaction is a critical concern for the industry, as system resources—often limited and valuable—must be temporarily allocated to run test code segments while the Circuit Under Test (CUT) operates in normal mode. These non-invasive tests must be executed strictly during idle time intervals to avoid any disruption to the system's regular operation. Consequently, the tests must not only meet the required coverage percentages mandated by safety standards but also minimize memory usage and execution time within the system.

TestCrush is a prototypical toolkit, written in 🐍 Python3 (>=3.10), that implements compaction algorithms for pre-existing STLs which are written in assembly. It is an implementation of the compaction algorithms described in the article:

M. Gaudesi, I. Pomeranz, M. Sonza Reorda and G. Squillero, "New Techniques to Reduce the Execution Time of Functional Test Programs," in IEEE Transactions on Computers, vol. 66, no. 7, pp. 1268-1273, 1 July 2017, doi: 10.1109/TC.2016.2643663.

Dependencies 🔗 & Architecture 📐

To use TestCrush, you must have an existing logic and fault simulation flow in VC-Z01X for the hardware design that the STL being compacted corresponds to. TestCrush interacts with these flows through callbacks, which are specified to the framework via a configuration file written in TOML. The architecture of TestCrush is shown in the figure below:

TestCrush Architecture

Documentation 📚

You can find the documentation of TestCrush here.

🚧 TestCrush is currently under active development phase 🚧

Releases

No releases published

Packages

No packages published

Languages