-
Notifications
You must be signed in to change notification settings - Fork 8
fuzz testing
Fuzzers are computer programs that are used to detect security holes in other programs, by sending those programs inputs that are initially random, but eventually learned to be pathological. deepstate is a testing framework that allows easy testing of C++ programs with fuzzers.
- fuzzr provides less sophisticated random testing of R functions. (and no framework for writing unit tests)
- covr provides instrumentation of R code for unit testing. (instrumentation is also necessary for fuzzers to learn a function from inputs to the execution path through the code)
- testthat provides functions for defining tests, similar to deepstate.
The goal of this GSOC project is to implement new features for defining unit tests in R code that can be used with deepstate/fuzzers.
After implementing the framework, we will use it to detect bugs in several widely used R packages (including base R).
TODO more detailed goals.
Currently R package developeRs do not systematically use random testing on their code; this project would make it much easier to do so. If we end up detecting new bugs in R packages, it will result in improvements to these packages.
Please get in touch with Toby Dylan Hocking <[email protected]> and Alex Groce <[email protected]> after completing at least one of the tests below.
Do one or several — doing more hard tests makes you more likely to be selected.
- Easy: use fuzzr on one of your favorite R functions, and post the results to a gist.
- Medium: TODO
- Hard: TODO
- Students, please post a link to your test results here.
Name: Ronnie Gandhi
Email: [email protected]
Website: RonnieGandhi
University: Indian Institute of Technology, Roorkee
Course: Computer Science and Engineering
Solution to Easy Test: Easy
Solution to Medium Test: TODO
Solution to Hard Test: TODO