I am a Ph.D. student at Iran University of Science and Technology (IUST). I received 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). My research interest is about Empirical and Automated Software Engineering (EASE), especially software refactoring and testing. Software engineering is a very complex task because software systems and ecosystems are inherently complex, intangible, and unpredictable! Software engineers must deal with numerous problems during the software development life-cycle (SDLC), mainly software testing and maintenance. Automating software engineering activities efficiently not only increase the quality of these activities but also leads to an economic saving. Unfortunately, search-based software engineering (SBSE) fails to cope with many complex problems in measuring and improving software quality. I use machine learning for software engineering (ML4SE) besides SBSE to address problems in automating SDLC activities, including testing, debugging, repair, and maintenance.
Currently, I am a member of IUST Reverse Engineering Research Laboratory and work under the supervision of Dr. Saeed Parsa. As a software engineer, I know about software development 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, reverse engineering, cluster, grid, and cloud computing, and secure and dependable software systems design. In my M.Sc. thesis, I designed and built IUST DeepFuzz, a file format fuzzer which can learn the grammar/structure of file automatically and then generate various test data. 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). You can find and read more information on the laboratory website.
Thesis title: Measuring and improving testability of software systems artifacts Supervisor: Dr. Saeed Parsa
Thesis title: Automatic test data generation in file format fuzzers
Supervisor: Dr. Saeed Parsa
Project: Design and implementation multi-agent system to participant in multi-agent programming contest (MAPC'15)
Supervisor: Dr. Vahid Rafe
Developing an automated refactoring engine (CodART), software requirement and source code testability measurement tools (ARTA, ADAFEST), and a file format fuzzer (IUST-DeepFuzz)
Designing and implementing a software maintainability measurement tool (QualCode)
Designing a wearable bladder monitoring system (WBMS)
Building AVR and ARM micro-controllers educational boards, rewriting and revising laboratories pamphlets and handbooks, launching the faculty cloud-center based on 2X OS
among 60 students during my M.Sc program at Iran University of Science and Technology
Admission to the Ph.D. program without entrance exam, fall 2018
among 31 students during my B.Sc program at Arak university, fall 2014
I am going to explain the implementation of search-based refactoring at the source code level from scratch.
I give a short description of how we can automate the refactoring process with ANTLR in Python.
I explain how we can use the ANTLR tool to instrument the C++ programs in Python.
I explain how we can use the ANTLR tool to perform some basic kinds of static analysis of the C++ programs in Python.
I explain how we can generate and use the Java parser with ANTLR in the Python programming language.
Our recent article offers a machine learning model to predict the extent to which the test could cover a class.
A two minutes demonstration of our intelligent file format fuzzer, IUST-DeepFuzz (release 1.3.0).
Our innovations in test data generation with deep learning techniques.
A brief introduction to my lovely research laboratory, IUST Reverse Engineering Lab.
A two minutes introduction to fuzz testing, fuzzers, and vulnerability detection (in Persian).
A technical report on sequence-to-sequence learning with neural networks (in Persian).