About Me

Who Am I?

Hello, I'm Ali Mohebbi, a Ph.D. graduate in Informatics from Università della Svizzera italiana (Lugano, Switzerland), where I worked under the guidance of Prof. Mauro Pezzè and Prof. Valerio Terragni. My research primarily revolves around the automatic generation of GUI test cases for interactive applications, such as Android apps. The focus is on creating semantically meaningful test cases by harnessing information embedded in the GUI.

With a diverse background, I bring experiences in web development, cloud computing, and machine learning.

My Skills

Technical Skills

Web Spring Boot, Kafka, Django, NodeJS, Angular, React, REST, Gnuicorn, BootStrap, HTML, CSS
Cloud Google Cloud, Ansible, Kubernetes, Elastic Search, Kibana, LogStash, OpenStack
Database MongoDB, MySql, SQLight, Microsoft SQL, PostgreSQL, Hibernate, Spring JPA
ML/Data Pandas, Spark, TensorFlow, NumPy, SciPy, Genism, Weka, Matplot, Seaborn
Testing Selenium, Appium, Junit, PyTest, Mockitio, μJava, PIT
Programming Python, Java, R, SQL, JavaScript, C/C++
OS Linux, MacOS, Windows
Build Aut. Maven, Gradle, Ant
CI/CD GitLab, Jenkins
Method. Scrum, Kanban, TDD
Others Docker, Git
Education

Education

  • 2019 - 2023

    PhD Studies Software Engineering

    USI Università della Svizzera italiana, Lugano, Switzerland

    PhD Theses: Automated testing of interactive applications - Supervisor: Mauro Pezzè, Cosupervisor: Valerio Terragni

    Key Areas: GUI Testing • NLP • Mobile Applications Testing • Cloud • Deep Learning Testing

    The goal of my Ph.D. is to automatically generate GUI test cases that are semantically relevant to the target application. That means a test case exercises a functionality of an application in a way that developers intended to be used. In my Ph.D., I focus on test reuse techniques that can generate semantically meaningful test cases by migrating a test case from one application to another. To do so, test reuse approaches find events in the target application which are semantically equivalent to events of the source test case. Some highlights of my research are:

    • We designed a new algorithm for semantic matching of GUI events that improved the state-of-the-art by 7.5%
    • We built a new train set of applications description by crawling Google Play. We used the new train set to build word embedding models which, as a result, improved semantic matching.
    • We investigated the effectiveness of domain-specific trains sets for word embedding by applying Università della Svizzera topic modeling
    • We created and executed more than 9000 GUI test cases automatically to study the impact of semantic matching.

    During my Ph.D., I also worked on PREVENT research project. Prevent is a fault prediction and localization approach in cloud systems. Our new proposed approach uses Autoencoder - a type of Deep Learning algorithm - to find anomalies in system health metrics. We evaluated the approach on a cluster of Redis (key-value database) nodes. We used the ELK stack to collect system health metrics from 20 nodes of a Redis cluster. Results of experiments showed False alarms were reduced by 30% and true positives improved by 40% in comparison to the state of the art.

  • 2016 - 2018

    Master Studies Software Engineering

    Sharif University of Technology, Tehran, Iran

    Master Theses: Bug prediction based on mutation metrics

    Key Areas: • Mining Software Repositories • Machine Learning

    In my research, I introduced new metrics for predicting software bugs based on mutation scores. Utilizing historical mutation analysis, these metrics were derived from analyzing different versions of a software system.

    Empirical evaluation was conducted using the defect4j dataset, comprising 6 JAVA projects and their bugs. Models, employing Neural Network, SVM, Logistic Regression, and Decision Tree, predicted the likelihood of a Java file containing bugs in the next release. The proposed metrics improved model accuracy by 6.6% compared to previous approaches.

  • 2010 - 2015

    Bachelor Studies Software Engineering

    Sharif University of Technology, Tehran, Iran

    Bachelor Theses: Classroom issue tracker

    Key Areas: Object Oriented Design • Web Development

    My thesis project provided a platform for students and administrators to improve physical conditions of classrooms. Students could report different types of issues in a classroom such as malfunction of projector, sound system, air conditioning, and etc. When a student reports an issue, administrators will be notified through the admin panel. Administrators can assign issues to relevant users to fix them, and track progress of the fixing process. Two of the project's objectives were usability and maintainability. We achieved the first goal by implementing a web application respecting the Human Computer Interaction (HCI) principles. The second goal achieved by designing architecture of the software considering Object Oriented Design solutions and patterns.

Experience

Work Experience

Research Assistance April 2019 – Oct 2032
USI Università della Svizzera italiana, Lugano, Switzerland

During this role I conducted research on two topics: a) Automated generation of test cases of GUI applications and b) Predicting failure in cloud environment. The technical highlights of the role based on category are as follows:

Software Architecture:

  • Proposed an innovative architecture for automated reusing GUI test cases
  • Built a framework to evaluate the impact of semantic matching on reusing Android app test cases

Data Analysis:

  • Conducted comprehensive empirical experiments to validate various hypotheses
  • Analyzed a large dataset of test cases using statistical methods to extract insights and patterns
  • Produced informative graphs and charts using to convey research findings effectively
  • Constructed a corpus of apps descriptions by crawling over 1 million apps from Google Play

Machine Learning:

  • Employed advanced data cleaning techniques to ensure data quality for subsequent NLP tasks
  • Built and evaluated various Word Embedding models for identifying semantic of GUI events
  • Applied topic modeling algorithms to cluster the extensive dataset of application descriptions
  • Analyzed results of unsupervised system for predicting and localizing failures in cloud environment

Cloud Environment:

  • Built and managed a cluster of docker containers on Google Cloud Platform (GCP) using Ansible
  • Providing a cloud infrastructure using OpenStack
  • Implemented a comprehensive monitoring system comprising Elasticsearch, Kibana, Metricbeat, Logstash
  • Leveraged Kibana to create intuitive and informative visualizations

Teaching Assistance Sep 2019 – May 2022
USI Università della Svizzera italiana, Lugano, Switzerland

During my time as a teaching assistant, my responsibilities included creating and grading assignments and exams. Additionally, I had the opportunity to deliver class lectures on certain occasions. I served as a teacher for the following courses:

  • Software Quality & Testing
  • Software Engineering
  • Bachelor Project

Teaching Assistance Sep 2017 - Sep 2018
Sharif University of Technology, Tehran, Iran

During my time as a teaching assistant, my responsibilities included creating and grading assignments and exams. Additionally, I had the opportunity to deliver class lectures on certain occasions. I served as a teacher for the following courses:

  • Software Architecture
  • DataBase Design
  • Verification of Reactive Systems
  • Software Engineering Lab

Full Stack Developer Jan 2019 - Feb 2019
STAR Lab

I designed and implemented the current website of I created and developed the current STAR Lab website, crafting a dynamic backend accessible through an admin page. This functionality offers a great deal of flexibility and user-friendly interaction.

Backend Developer May 2016 - Oct 2016
Tapsell, Tehran, Iran

I created a push notification microservice within the Backtory cloud service, which offers infrastructure for mobile app development. Developers can send and store messages using a database service. The notification service keeps track of message deliveries and provides updates through an administration panel.

Backend Developer (Internship) Jul 2014 – Sep 2014
ViraTech, Tehran, Iran

I actively participated in the design, development, and maintenance of backend systems using Java. I Identified and resolved software bugs, contributing to the stability and reliability of production systems.

Extra Experience

Active Member Sep 2021 - now
ESN, Lugano, Switzerland

Erasmus Student Network (ESN) is a prominent student association in Europe, dedicated to assisting international students in their social and practical integration. As a member of ESN Lugano, I actively participated in many local, intersectional and national events, fostering cultural understanding through festivals and city visits across Switzerland. I also contributed to the Discover Ticino project, organizing hiking events to explore Switzerland's beautiful nature.

Key Areas: Event Planning • Effective Communication • Critical Thinking • Team Management • Open-mindedness

Publications

Here are my publications

Semantic Matching in GUI Test Reuse Khalili, F., Mariani, L., Mohebbi, A. , Pezzè, M. , Terragni, V. Transactions on Software Engineering (TSE) 2022. *

PREVENT: An Unsupervised Approach to Predict Software Failures in Production. Denaro, G., Heydarov, R., Mohebbi, A., Pezzè, M. Transactions on Software Engineering (TSE) 2022. *

The ineffectiveness of domain specific word embedding models for GUI test reuse. Khalili, F., Mohebbi, A., Terragni, V., Pezzè, M., Mariani, L., & Heydarnoori, A. International Conference on Program Comprehension (ICPC) 2022.

Semantic matching of GUI events for test reuse: are we there yet? Mariani, L., Mohebbi, A., Pezzè, M., & Terragni, V. In Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis. 2021. *

* Authors names are ordered alphabetically
Get in Touch

Contact