DevPartner Fault Simulator takes on .Net fault handling
Version 2.0 improves integration, helps developers and testers "ruggedize" .Net code.
Using DPFS with Visual Studio is great if you’re the developer and have all the source code. But what if you’re the tester? DPFS 2.0 has three new features for you: a standalone Fault Simulator application that allows testers to simulate faults without Visual Studio; a command line interface (CLI) for setting up automatic regression tests, and a “Watch My Target” function that treats an app as a black box.
“Watch My Target” is the most interesting addition. It monitors an application as it runs and determines what resources it uses. After the observation phase, it lists the activities and offers to create environmental faults to simulate failures of these activities. The program handles five types of environmental fault: COM, Disk I/O, Memory, Network, and Registry.
When DPFS simulates a fault, it injects code into the application at load time to intercept the appropriate action and generate the desired fault condition. It then monitors and logs what happens at run time; if the code throws an exception, DPFS captures the entire call stack, making it easy to find the offending line of code. If code coverage integration is enabled, DPFS also tracks which lines of code have been tested by the fault simulation.
If you have Visual Studio Team System, you can submit a work item of type Bug from DPFS, either from a fault instance during an active session, or from the simulated faults report after a session is completed. DPFS also integrates with Compuware TrackRecord for defect submission.
Code injection does take time, and the application runs slower when you are monitoring it for fault simulation. DPFS 2.0 can suspend a running fault simulation, which mitigates the slowdown somewhat. Suspending the fault simulation makes it easier to test specific parts of an app, and also makes it easier to skip over program initialization and get to the code you want to test.
Making an Effort
I find DPFS 2.0 much improved over its predecessor and a useful tool for serious .Net developers and testers. The standalone Fault Simulator is a good addition, and the integration improvements are very welcome.
Remember, however, that this is a specialized product that is primarily an add-on to another product (Visual Studio) -- so its capabilities are on the specialized side, and its price is on the high end of the scale.
The documentation could also be better organized: I think all the information is there, but some is in PDF form, some in HTML, some in compiled HTML help, and some integrated with Visual Studio. To understand the product and documentation, it helps to be familiar with the concept of software fault injection, as well as with the .Net framework and its structured exception handling. But if you’ve been waiting for the next release, DPFS 2.0 is worth checking out.