Note that there are some explanatory texts on larger screens.

plurals
  1. POHow you test your applications for reliability under badly behaving i/o
    primarykey
    data
    text
    <p><strike>Almost</strike> every application out there performs i/o operations, either with disk or over network.</p> <p>As my applications work fine under the development-time environment, I want to be sure they will still do when the Internet connection is slow or unstable, or when the user attempts to read data from badly-written CD.</p> <p>What tools would you recommend to simulate:</p> <ul> <li>slow i/o (opening files, <em>closing</em> files, reading and writing, enumeration of directory items)</li> <li>occasional i/o errors</li> <li>occasional 'access denied' responses</li> <li>packet loss in tcp/ip</li> <li>etc...</li> </ul> <hr> <p>EDIT:</p> <p>Windows:<br> The closest solution to do the job as described seems to be holodeck, commercial software (>$900).</p> <p>Linux:<br> Open solution wasn't found by now, but the same effect can be achived as specified by smcameron and krosenvold.</p> <hr> <p>Decorator pattern is a good idea. It would require to wrap my i/o classes, but resulting in a testing framework. The only remaining untested code would be in 3rd party libraries.</p> <p>Yet I decided not to go this way, but leave my code as it is and simulate i/o errors from outside.</p> <hr> <p>I now know that what I need is called 'fault injection'. I thought it was a common production-line part with plenty of solutions I just didn't know. (By the way, another similar good idea is 'fuzz testing', thanks to Lennart)</p> <p>On my mind, the problem is still not worth $900. I'm going to implement my own open-source tool based on hooks (targeting win32). I'll update this post when I'm done with it. Come back in 3 or 4 weeks or so...</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload