3 ms·
Thanks for the explanation. A lot of my code is getting old (just like me), but I was lucky in that it was designed from the start to be cross platform. This en
by danieltillett 11y ago
Thanks for the explanation. A lot of my code is getting old (just like me), but I was lucky in that it was designed from the start to be cross platform. This ended up meaning that it was written in C and all the platform specific code was kept as separate modules.
My big problem is I have so many code paths that I can’t fully test the interactions between the different modules and functions (there are over 10^25 different possible paths). I am not sure what can be done about this given the functionality of the software is critically dependent on this flexibility. The best I have been able to come up with is testing 99.99% of the most popular paths and building in a lot of error recovery code.
- vram22 11y ago>My big problem is I have so many code paths that I can’t fully test the interactions between the different modules and functions (there are over 10^25 different possible paths). Interesting. Have you considered the pros and cons of writing a custom fuzzer for your app, and whether it may help?
- danieltillett 11y agoI actually have written a custom fuzzer. It has been really useful in chasing out bugs caused by improper handling of corrupt files, but fuzzing won't help solve the combinatorial coverage problem.
- vram22 11y ago>possible paths But don't all those paths depend on the inputs, ultimately? Trying to understand this here. Can a fuzzer that generates lots of different inputs, not be used to exercise all those paths?
- danieltillett 11y agoNot when you have 10^25 paths to cover and each path takes around 2 seconds.
- vram22 11y agoWow. Got it.