This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
I remember testing a complex tree manipulation algorithm
(coded in TCL) - and we needed lots of trees ;-)
I wrote a perl script that generated the trees - using directories ;-) - the idea is to exploit
the randomness of a folder
(cd somedir; find .) | perl treeConverter.pl
However, though the test data comes cheap - and effective (I found obscure bugs lurking in regexes)...
Thinking back - the perl code kind of took some good time to develop (gave me an excuse to write some perl ;-)...
Jokes apart, would something like this be possible with GenRocket? This is complex - as the data is very specific to the code under test.
Assuming it is somehow possible, is there some scripting needed with GenRocket to achieve this?
Thanks for the question and the link on Fuzz Testing. Truth be told, this is the first I've heard of Fuzz Testing but after reading your link, I realized that it is what we would call Negative Testing. So the short answer to your question is absolutely!
GenRocket can produce any kind of data you need. However, it doesn't know the difference between bad data and good data. For example, if you had a system that accepted email addresses and you wanted to make sure your system rejected invalid email addresses, you would create a Scenario in GenRocket that generated invalid email addresses. Or you could have it generate valid and invalid email addresses. That way you could assert that your system is doing the right thing with the data it is receiving.
More specifically about your file structure example, we don't currently have any Receivers that create a file system. But it wouldn't be difficult to write one. In fact, don't be surprised if one shows up in the next couple of weeks. A lot of our Receivers do generate random data and we even provide a seed parameter in those cases.