I am a first year computer engineering Ph.D. student at Iran University of Science and Technology (IUST). I have got my B.Sc. in computer engineering / software from Arak University and then received my M.Sc. degree from Iran University of Science and Technology (IUST).
Toward better software systems by automating laborious tasks in software engineering through the intelligent reverse engineering techniques
My research interests are about empirical and automated software engineering (ASE), especially automated software testing, test data generation, dynamic software analysis and applying machine learning in software engineering. As a new contribution I want to use deep learning techniques in various phases of software testing process include test data generation, fault localization and program repair. For the time being, I have focused on fuzz testing and test data generation in file format fuzzers. I used deep neural networks (kind of deep learning techniques) to statistically capture the format of highly complex file structures and then built a generative model to generate new test data. It seems that there is a straight relationship between well-formed files and percentage of code coverage when Software Under Test (SUT) was executed with such files as input.
- Ph.D., Computer Engineering, Software; Iran University of Science and Technology (IUST) (2018 - Now)
- Supervisor: Dr. Saeed Parsa
M.Sc., Computer Engineering, Software; Iran University of Science and Technology (IUST) (2016 - 2018)
- Thesis Title: “Automatic Test Data Generation in File Format Fuzzers”.
- Supervisor: Dr. Saeed Parsa
B.Sc., Computer Engineering, Software; Arak University (2011 - 2015)
- Project Title: “Design and implementation multi-agent system to participant in Multi-Agent Programming Contest (MAPC) 2015”.
- Supervisor: Dr. Vahid Rafe
Hmm… It is on the way!
In my M.Sc. thesis, I designed and built IUST-DeepFuzz, a file format fuzzer and provide IUST-PDFCorpus, a large dataset of PDF files and PDF data objects. IUST-DeepFuzz can automatically learn the grammar (structure) of a given input file, then generate and fuzz various test data based on the learned model and some mutation-based methods. You can find all relevant information about my M.Sc. thesis on the IUST-DeepFuzz GitHub repository.
”’ *Password is needed. ”’
In my B.Sc. project, I worked on agent-oriented software engineering and developed a multi-agent system to participate in the multi-agent programming contest (MAPC). Unfortunately, the competitions did not hold in the year 2014, for the technical reasons raised by the new scenario, and our team could not participate in the competitions. But MAPC is alive for me and my teammates and there for our final project reports is kept in draft version :)
- Download my B.Sc Project Report (Draft version) [PDF]
As a software engineer, I know about software development methodologies (both traditional and modern methodologies), software architectures, enterprise applications design and development, programming, and computer networks. I am an expert in object-oriented design, database concepts, and ORMs. During the IUST master program, I learned about distributed systems, advanced software engineering, software reverse engineering techniques, cluster, grid, and cloud computing, and secure and dependable software systems design. For the time being, my skills are as follows:
- Software Engineering
- Software Testing
- Automatic Test Data Generation
- Dynamic Program Analysis
- Deep Learning
- Recurrent Neural Networks
- Recurrent Language Models
From summer 2013 my friends and I also maintain Micropedia a free software engineering/ programming tutorials website in Persian. You can find some basic programming tutorials on Micropedia.
Please visit my blog or jump to resources page for more information. At this time, there is no commenting tool here on my blog and you can contact me anytime by sending an email to: M – Z A K E R I [AT] L I V E [DOT] C O M (firstname.lastname@example.org). I will provide proper response as soon as possible.
More details can be found in my up-to-date C.V.