About Me

  • Full name:Morteza Zakeri-Nasrabadi
  • Email:morteza_zakeri@comp.iust.ac.ir
  • Skype:zakerim2012
  • Phone:+98 21 7322 5314
  • Address: Reverse Engineering Lab., School of Computer Engineering, Iran University of Science and Technology, Daneshgah Street, Hengam Street, Resalat Square, Narmak, Tehran, Iran.
  • Research interests: - Empirical and automated software engineering (EASE),
    - Artificial intelligence for software engineering (AI4SE)
  • CV: PDF
  • PhD: My Ph.D. dissertation online appendix

Hello!

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.

Academic backgrounds

  • Education

  • Ph.D., Computer Engineering, Software

    Iran University of Science and Technology (2018 - Now)

    Thesis title: Measuring and improving testability of software systems artifacts Supervisor: Dr. Saeed Parsa

  • M.Sc., Computer Engineering, Software

    Iran University of Science and Technology (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: Design and implementation multi-agent system to participant in multi-agent programming contest (MAPC'15)
    Supervisor: Dr. Vahid Rafe

  • Professional Activities

  • 2016 - Now: Graduate student

    Iran University of Science and Technology

    Developing an automated refactoring engine (CodART), software requirement and source code testability measurement tools (ARTA, ADAFEST), and a file format fuzzer (IUST-DeepFuzz)

  • 2020 - 2021: Research assistant

    MCI Lab., Sharif University of Technology

    Designing and implementing a software maintainability measurement tool (QualCode)

  • 2019 - 2020: Research assistant

    Iranian Online Smart Monitoring (Riz-Payesh) Company

    Designing a wearable bladder monitoring system (WBMS)

  • Mar 2015 – Aug 2015: Intern

    Computer Engineering Laboratories, Arak University

    Building AVR and ARM micro-controllers educational boards, rewriting and revising laboratories pamphlets and handbooks, launching the faculty cloud-center based on 2X OS

Honors and Awards

Ranked 1st

among 60 students during my M.Sc program at Iran University of Science and Technology

Ph.D. admission

Admission to the Ph.D. program without entrance exam, fall 2018

Ranked 2nd

among 31 students during my B.Sc program at Arak university, fall 2014

Projects


CodART


ARTA


ADAFEST


IUST-DeepFuzz


IUST-Compiler


IUST-DeepPoem


ZMOST


More

Courses


Advanced Compiler


Natural Language
Processing


Advanced Software Engineering


Dependable Software
Systems


Distributed Systems


Performance Evaluation Of Computer Systems


Game Theory


More

Blog

May 8th, 2022

Search-based refactoring

I am going to explain the implementation of search-based refactoring at the source code level from scratch.

May 7th, 2022

Automated refactoring

I give a short description of how we can automate the refactoring process with ANTLR in Python.

May 6th, 2022

Dynamic program analysis

I explain how we can use the ANTLR tool to instrument the C++ programs in Python.

May 5th, 2022

Static program analysis

I explain how we can use the ANTLR tool to perform some basic kinds of static analysis of the C++ programs in Python.

April 4th, 2022

ANTLR beginner turtorial

I explain how we can generate and use the Java parser with ANTLR in the Python programming language.

March 18th, 2022

Coverageability prediction

Our recent article offers a machine learning model to predict the extent to which the test could cover a class.

June 6th, 2021

IUST DeepFuzz

A two minutes demonstration of our intelligent file format fuzzer, IUST-DeepFuzz (release 1.3.0).

March 22th, 2021

CodART

A brief introduction to our automatic source code refactoring engine for Java, CodART.

March 20th, 2021

Innovations in automatic test data generation

Our innovations in test data generation with deep learning techniques.

October 27th, 2018

Reverse engineering

A brief introduction to my lovely research laboratory, IUST Reverse Engineering Lab.

September 27th, 2018

What is fuzz testing?

A two minutes introduction to fuzz testing, fuzzers, and vulnerability detection (in Persian).

February 8th, 2018

Seq2Seq learning tutorial

A technical report on sequence-to-sequence learning with neural networks (in Persian).


More