Ali Mesbah, Quality Assurance (QA) Developer in Vancouver, BC, Canada
Ali Mesbah

Quality Assurance (QA) Developer in Vancouver, BC, Canada

Member since March 14, 2022
Ali is an expert in software quality and dependability. With more than a decade of R&D experience in the field of software testing and analysis, he has a proven track record in quality assurance, code quality assessment, test design, test effectiveness and adequacy, test automation, root cause analysis, and program repair.
Ali is now available for hire

Portfolio

Experience

  • Web App Testing 15 years
  • Automated Testing 15 years
  • Quality Assurance (QA) 15 years
  • QA Automation 15 years
  • QA Leadership 12 years
  • Team Leadership 10 years
  • Mobile App Testing 10 years
  • API Testing 7 years

Location

Vancouver, BC, Canada

Availability

Full-time

Preferred Environment

Java, Web, Selenium WebDriver, Git, REST Assured, Appium, Mobile Apps, Python

The most amazing...

...thing I've developed is Crawljax, an event-driven crawler for automatically analyzing and testing web applications.

Employment

  • Senior Test Engineer Consultant

    2022 - PRESENT
    Mobile Security Management Company
    • Developed automated tests for various native mobile apps in both Android and iOS.
    • Implemented tests in Appium and Robot Framework for cross-platform testing of mobile apps.
    • Set up continuous integration (CI) through Jenkins for automated test execution.
    Technologies: Appium, Robot Framework, Pytest, XCUITest, UI Testing, Mobile App Testing, Android, iOS, WebDriver, Android Studio, Xcode, Python, Jenkins
  • Principal Investigator in Software Engineering

    2017 - PRESENT
    The University of British Columbia
    • Founded a research lab called Software Analysis and Testing (SALT) to investigate and implement new techniques for improving software quality.
    • Designed and delivered undergraduate courses on software testing and analysis covering unit testing, mutation testing, web and mobile app testing, code coverage, regression testing, static and dynamic analysis, fault localization, and program repair.
    • Taught graduate courses on software testing and verification covering state-of-the-art tools and techniques for analyzing large-scale software systems such as control-flow and data-flow analysis, taint analysis, and symbolic execution.
    • Supervised Ph.D. and MSc graduate students working on software analysis topics such as automated test generation, web testing, API testing, automated program repair.
    Technologies: Software Engineering, Testing, University Teaching, R&D
  • CEO

    2015 - 2020
    Testcue
    • Established connections with industrial software companies for providing QA automation and testing services.
    • Participated in consulting projects, offered automated testing services to newly developed mobile and web apps.
    • Led the development of an automated online monitoring system for a large enterprise application to detect regression bugs.
    • Managed the development of a framework for testing canvas applications.
    • Liaised with industrial collaborators and clients for securing R&D funding. Made budgetary plans and objectives and adjustments to project constraints based on financial analysis.
    Technologies: QA Leadership, Management, Consulting, QA Automation, Mobile App Testing, Web App Testing, Quality Assurance (QA), Automation
  • Software Engineering Consultant

    2017 - 2018
    Google
    • Participated in the design and implementation of an ML-based tool for automatically suggesting fixes for Java compilation errors using neural machine translation. The tool learns from errors developers make and the way they fix the errors.
    • Created a scalable Java type refactoring tool for ultra-large-scale mono repositories through a MapReduce design that made multiple passes over the code to collect type information and perform in-code refactoring.
    • Added bug patterns for the Error Prone framework, an open-source compile-time static bug checker.
    Technologies: Java, Blaze, JUnit, Google MapReduce, Deep Neural Networks, Compilers, Static Analysis, Python, TensorFlow, Test Automation
  • Software Engineering Consultant

    2010 - 2010
    Fujistu Laboratories of America
    • Developed a testing framework for automatically creating a navigational model of a given enterprise web application.
    • Devised an automated technique for cross-platform testing to detect inconsistencies and errors in the functional behavior of web applications across different browsers.
    • Designed and implemented a guided crawling algorithm to complement an automated tool with user input.
    Technologies: Java, JavaScript, HTML DOM, Cross-platform, Test Automation, Browsers, XML, CSS, Quality Assurance (QA), QA Testing, QA Automation
  • Senior Software Engineer

    2002 - 2010
    West
    • Developed a software system for generating a ventilation and heating strategy based on input from weather forecasts, measurements of temperature and radiation, and manual settings for regulating enterprise greenhouses.
    • Designed and was liable for implementing substantial parts of a large software system for the energy sector, including meeting with the client to elicit and document the desired requirements, designing the initial software architecture.
    • Designed, developed, and tested a web portal for a client based on REST APIs. The testing activities consisted of unit testing with JUnit, regression testing, and integration testing.
    • Acted as the technical lead and coordinator of a team of software developers.
    Technologies: Leadership, Agile Project Management, Software Architecture, QA Leadership

Experience

  • Crawljax
    https://github.com/crawljax/crawljax

    Crawljax is an open-source tool for automatically crawling and testing modern web applications. I am the inventor of Crawljax, which can explore any web application through an event-driven crawling engine. It produces as output a state-flow graph of the dynamic web pages and the event-based transitions between them. Crawljax can easily be extended through its easy-to-use plugin architecture. Its test generation plugin automatically generates UI test cases once crawling has stopped. Crawljax has been used for both research and development as well as testing enterprise applications at large organizations such as IBM, Google, Huawei, and Fujitsu.

  • Automated Cross-platform Compatibility Testing
    https://patentimages.storage.googleapis.com/81/9e/84/65e211a3249f3c/US9032067.pdf

    Devised a novel automated testing technique for consistent and correct functionality checking across different platforms and browsers. This invention resulted in a US patent at Fujitsu Laboratories of America.

Skills

  • Languages

    Java, CSS, XHTML, AspectJ, SQL, R, JavaScript, XML, Python
  • Frameworks

    JUnit, Selenium, TestNG, QUnit, Appium, Robotium, Jasmine, Jest, Robot Framework, XCUITest
  • Libraries/APIs

    WebDriver, Node.js, Sikuli, REST APIs, Selenium WebDriver, TensorFlow
  • Tools

    Apache JMeter, Apache Maven, REST Assured, Cucumber, Bazel, Jenkins, LaTeX, Clover, Git, Postman, IntelliJ, Mocha, ANTLR, Apache Ant, Travis CI, SonarQube, Make, Bugzilla, Jira, Coverity, Maven, Pytest, Android Studio, Xcode
  • Paradigms

    Continuous Deployment, Object-oriented Design (OOD), Fuzz Testing, Unit Testing, Test-driven Development (TDD), Automated Testing, Behavior-driven Development (BDD), REST, MapReduce, Refactoring, Load Testing, W3C, Microservices, Automation, Manual Testing, E2E Testing, Scrum, XP, Agile, Test Automation, Testing, Cross-platform, HTML DOM, Agile Project Management, Management
  • Platforms

    Eclipse, Linux, MacOS, Android, Docker, Web, iOS
  • Storage

    MySQL, NoSQL, JSON
  • Other

    Web App Testing, Generative Testing, Code Coverage, Technical Writing, High Code Quality, Mutation Testing, API Testing, FindBugs, MonkeyTalk, Automated UI Testing, Mobile App Testing, Static Analysis, Quality Assurance (QA), A/B Testing, Debugging, Root Cause Analysis, Boundary Testing, Regression Testing, Fault-Based Testing, QA Automation, Performance Testing, Test Design, Team Leadership, Team Mentoring, Test Planning, QA Test Plan Management, Web Applications, Manual QA, QA Leadership, Machine Learning, Test Automation Frameworks, Blaze, Google MapReduce, Deep Neural Networks, Compilers, Software Engineering, University Teaching, Research, R&D, Browsers, QA Testing, Leadership, Software Architecture, Consulting, Mobile Apps, UI Testing

Education

  • PhD Degree in Software Engineering
    2005 - 2009
    Delft University of Technology (TU Delft) - Delft, The Netherlands
  • Master's Degree in Computer Science
    2001 - 2003
    Delft University of Technology (TU Delft) - Delft, The Netherlands
  • Bachelor's Degree in Computer Science
    1997 - 2000
    Delft University of Technology (TU Delft) - Delft, The Netherlands

Certifications

  • Professional Engineer (P.Eng.) in Software Engineering License
    NOVEMBER 2011 - PRESENT
    Association of Professional Engineers and Geoscientists of British Columbia, BC, Canada (APEGBC)

To view more profiles

Join Toptal
Share it with others