Using RIVER, users can test their software against common vulnerabilities (crashes, datatype and buffer overflows) with no knowledge about source code. Fuzz testing methods are smartly applied using its taint analysis component to direct the testing towards pieces of inputs used for branch decisions.
The tracing component gives in-deep knowledge of the paths taken by the code and branch decisions, helping users to discover the code coverage of their test suites and also to automatically augment them with newly generated tests.