RVS works by combining static and dynamic analyses of software execution to gain an understanding of the software architecture. Using this understanding, RVS injects and/or instruments code to perform a variety of functions including generating and running functional test harnesses, analyzing the structural coverage achieved during functional testing, and analyzing the timing behavior of code being executed.
By integrating into the existing development environment and continuous build servers, RVS reduces the cost of software verification. The flexible nature of RVS integrations and its extremely low instrumentation overheads support its use on even the most complex systems, including multicore systems.