Mehdi ShokoohiSoftware QA  / Tech Blogger



/Let’s Learn Together

Monday, January 15, 2018

Python is Beautiful! 7 Reasons Why We Should Choose Python

What is Python btw? Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it…

Read More

Katalon Studio: A Comprehensive Automated Testing Tool for Web, Mobile and API

For many years I used to use Selenium webdriver and Appium (was Selendroid) for testing web applications. Since I was satisfied working with Selenium empowered by Python or Java, I…

Read More

Monday, December 4, 2017
Tuesday, November 28, 2017

JMeter vs Gatling, A Quick Comparison

First thing’s first: I got another article titled"JMeter or LoadRunner? That is the Question!"; worth to have a look. what is load testing and what is performance testing? When talking…

Read More

Wait, Selenium wait!: A brief comparison between Implicit, Explicit and Fluent Waits in Selenium WebDriver

Selenium WebDriver provides a programming interface to create and execute test cases for almost every web application. For this aim Selenium needs to interact with elements on webpages either in…

Read More

Wednesday, November 1, 2017
Monday, September 18, 2017
How to Write an effective bug report?

How to Write an effective bug report?

Introduction: A Software Bug can be described through the detailed explanation of the unexpected behavior happening as a result of some action performed on the software application. In bug reports,…

Read More

JMeter or LoadRunner? That is the Question!

I am not a fan of comparison since I believe we cannot just put two things in both pans of a scale and see which one is heavier. Especially when…

Read More

Monday, September 4, 2017

Quality means doing it right even when no one is looking.

- Henry Ford -

About Me

/Who Am I

Mehdi ShokoohiI started programming computer software in high school when I was 16. First with QBasic, C, C++ and later, with Microsoft Visual Basic. But my true love came the day I met Java! Java was that missing part that I was desperately looking for. Everything I needed was now available to me in a unique, user-friendly programming environment: flexibility, reliability and, I must say, beauty without headaches! Then, the wonders of making computers work finally appeared to me when I discovered Linux. The circle was finally complete.
In 2004, I received my bachelor’s degree in economics and in 2010, my bachelor’s degree in computer science, which allowed me to offer my services to the world as a professional programmer.
During my final years of my bachelor’s, I proudly joined Matcore (Matin Communication Research Inc.) where I had the chance to work with highly talented fellow programmers. At Matcore I learned many things about telecommunication systems, software development processes and IT research in a dynamic, creative and joyful environment. The combination of using open source software with widely popular Microsoft technologies brought us the ability to design, develop and release wonderful products for organizations, businesses and personal use in domains such as telecom systems, web applications, mobile applications and client-server utilities.
After I arrived in Canada, I decided to apply and to study quality system engineering at Concordia University in downtown Montreal. During two wonderful years, I learned many new things which helped me to better understand everything I experienced before as a professional software developer. I finally graduated and obtained my master’s degree in quality system engineering in the fall of 2016.
I believe that learning and experimenting are the keys and the common thread for my life and career. Knowledge and experience are the wings that allow me to fly. And I am grateful to still be at the beginning of a fascinating journey of discovery!


/My entire career


Software QA Developer

Aerial Technologies

Document test plans Design, implement and execute test cases - manual and automated Collaborate with R&D, Engineering, and Product Management teams to deliver quality and timely solutions Act as a core member of our Agile team Contribute to the ongoing plans to refine and improve the internal software development processes, test methodologies, and internal testing tools

Software QA Analyst


Contribute to improvements in quality for our core product; Preform integration and regression testing of products; Develop test plans to ensure quality and on-time delivery of builds to production; Writing automated test script using Python and/or Java-script; Coordinate testing efforts by customer support, engineering and other Barco Divisions; Following industry standard application testing techniques and practices Working with software developers

August 2017 - November 2017

Software QA Engineer

Monify Media inc.

Core Responsibilities:

  • Designing and developing automation test script.
  • Designing and executing testing plans.
  • Deploy and test new features as they are completed by the development team.
  • Reviewing the execution of test plans done by other QA members.
  • Improving the quality of the deployment tools.
  • Maintenance of various staging environments (including staging databases) both manually and with existing scripts.

Software Analyst and Consultant

Xtreme Prototypes inc.

Core Responsibilities:  

  • Review requirements, specifications and technical design documents
  • Develop, test and maintain web pages and back end systems
  • Design, program and test special software modules
  • Develop test plans, test cases, test scripts and test reports based on projects requirements
  • Develop and execute automation scripts using tools such as Jmeter and Selenium and analyze output
  • Perform testing of new features as well as regression testing of existing systems and software features


Software QA Analysis

Matin Communications Research Co.

Core Responsibilities:

  • Review requirements, specifications and technical design documents
  • Develop test plans, test cases, test scripts and test reports based on projects requirements
  • Design, develop and execute automation scripts using tools such as Jmeter, Selenium, Loadrunner, etc and analyze output
  • Perform testing of new features as well as regression testing of existing system
  • Identify, record, document thoroughly and track bugs using Jira
  • Communicate feature interaction problems and identify problems across the system

IT Project Manager

Matin Communications Research Co.

Core Responsibilities:

  • Execute full software development life cycle
  • Write well-designed, testable code
  • Document and maintain software functionality
  • Designing and applying appropriate project management standards
  • Planning and monitoring the project
  • Preparing and maintaining project, stage and exception plans as required
  • Monitoring overall progress and use of resources
  • Reporting through agreed lines on project progress


Executive Assistant Manager

Iranian Agricultural Economics Society

Core Responsibilities:

  • Develop new feature for the CMS software
  • Write, and edit new content
  • Conduct regular audits of website content
  • Develop and update content management documentation
  • Troubleshoot hosting and web software issues


Master of Quality System Engineering

Concordia University

Related Courses:  

  • Total Quality Methodologies in Engineering
  • Advanced Statistical Approaches to Quality
  • Total Quality Project Management
  • Quality Methodologies for Software
  • Software Quality Assurance
  • Quality-Based Systems Engineering
  • Quality Assurance for Systems Engineering
  • Principles of Systems Engineering
  • Foundation of Cryptography

Bachelor of Computer Science

Payam Noor University


Bachelor of Economics

Shiraz University



90%Automation Testing
90%Manual testing
70%API/Web Services Testing
75%Performance/Load Testing

90%Selenium WebDriver

90%Project Management