1. A system for performing dynamic fault injection software testing, comprising: a program binary, the program binary including a function symbol, wherein the function symbol corresponds to a function called by the program binary; a library, the library including a fault injected version of the function; a script, the script including instructions for suspending the execution of the program binary when the function symbol is encountered, dynamically linking the function symbol to the fault injected version of the function included in the library, wherein the dynamic linking includes dynamically switching the function with the fault injected version of the function during the execution of the program binary without requiring modification or access to underlying source code of the function, and resuming the execution of the program binary; and a dynamic trace framework, the dynamic trace framework configured to dynamically execute the program binary according to the script instructions with the fault injected version of the function.