dc.contributor.advisor | Ganapathy, Vinod | |
dc.contributor.author | Malakar, Subhendu | |
dc.date.accessioned | 2021-05-20T07:18:50Z | |
dc.date.available | 2021-05-20T07:18:50Z | |
dc.date.submitted | 2019 | |
dc.identifier.uri | https://etd.iisc.ac.in/handle/2005/5130 | |
dc.description.abstract | Directed testing is a technique to analyze user-specified target locations in the program. It reduces
the time and effort of developers by excluding irrelevant parts of the program from testing and
focusing on reaching the target location. Existing tools for directed testing employ either symbolic
execution with heavy-weight program analysis or fuzz testing mixed with hand-tuned heuristics.
In this thesis, we explore the feasibility of using a data-driven approach for directed testing. We
aim to leverage the data generated by fuzz testing tools. We train an agent on the data collected
from the fuzzers to learn a better mutation strategy based on the program input. The agent then
directs the fuzzer towards the target location by instructing the optimal action for each program
input. We use reinforcement learning based algorithms to train the agent. We implemented a
prototype of our approach and tested it on synthetic as well as real-world programs. We evaluated
and compared different reward functions.
In our experiments, we observe that for simple synthetic programs, our approach can reach the
target location with fewer mutations compared to AFL and AFLGo that employ random mutations.
However, for complex programs, the results are mixed. No one technique can perform consistently
for all programs. | en_US |
dc.language.iso | en_US | en_US |
dc.relation.ispartofseries | ;G29881 | |
dc.rights | I grant Indian Institute of Science the right to archive and to make available my thesis or dissertation in whole or in part in all forms of media, now hereafter known. I retain all proprietary rights, such as patent rights. I also retain the right to use in future works (such as articles or books) all or part
of this thesis or dissertation | en_US |
dc.subject | Software testing | en_US |
dc.subject | fuzz testing | en_US |
dc.subject | AFLGo | en_US |
dc.subject.classification | Research Subject Categories::TECHNOLOGY::Information technology::Systems engineering | en_US |
dc.title | Experiences in using Reinforcement Learning for Directed Fuzzing | en_US |
dc.type | Thesis | en_US |
dc.degree.name | MTech (Res) | en_US |
dc.degree.level | Masters | en_US |
dc.degree.grantor | Indian Institute of Science | en_US |
dc.degree.discipline | Engineering | en_US |