4
Request a talent

Hello

Let us know about your hiring needs and we will help you find the best talent.

Request now

Mohamed Ashraf

Egypt - 1 year of Experience

About me

Dedicated software tester with hands-on experience in Front-end, Mobile and API testing, using tools like Selenium, Rest-Assured and Postman. Solid understanding of Agile methodologies and Testing principles. Skilled in mobile and web app testing, passionate about continuous learning and delivering reliable software

Me and Sprints

"I have successfully completed (Software Testing BootCamp) at Sprints"

  • ISTQB
  • Java
  • Manual Testing
  • Web Frontend UI Testing
  • Web Performance Testing
Me and Sprints

"I have successfully completed (Software Testing BootCamp) at Sprints"

  • ISTQB
  • Java
  • Manual Testing
  • Web Frontend UI Testing
  • Web Performance Testing

My personality traits

Innovative problem solver
Detail-oriented
Adaptable
Collaborative team player

Technical skills

Agile Methodologies (Scrum, Kanban) Flutter Git Java Object-Oriented Programming (OOP) Test Automation (Selenium, Cypress, Appium) Test Frameworks (JUnit, TestNG, XCTest) Unit Testing (JUnit, NUnit, pytest) Unit Testing

Education


ECU

Bachelor's degree . Engineering

From 2018 to 2023

Experience


Teaching Assistant

ECU

Aug 2023 - Present

Get free access to our talents till Dec 2025

To get the contact info, please sign up now as a company

To download the CV please create a company account

Hello again,


Log in to your account

or
Don't have an account? Join Us

title_name

Register for free today and start your journey to finding the best talent

or
Have a company account on Sprints?

Password Recovery

or

Account verification

Log in to your account

or
Don't have an account? Join Us

title_name

Register for free today and start your journey to finding the best talent

or
Have a company account on Sprints?

Password Recovery

or

Account verification

const route = $(this).data('route'); $(this).addClass('loadingbar primary').prop('disabled', true); $.ajax({ type: 'GET', url: route, data: 'json', success: (response) => { $(this).removeClass('loadingbar primary').prop('disabled', false); window.open(response.join_url, '_blank'); }, }); }); $(document).ready(function() { const $techShiftBanner = $('#tech-shift-banner'); const EIGHT_HOURS = 8 * 60 * 60 * 1000; const techShiftHiddenTime = localStorage.getItem('techShiftBannerHiddenTime'); const currentTime = new Date().getTime(); if (!techShiftHiddenTime || currentTime - parseInt(techShiftHiddenTime) > EIGHT_HOURS) { $techShiftBanner.removeClass('tw-hidden').addClass('tw-flex'); localStorage.removeItem('techShiftBannerHiddenTime'); } $('.close-tech-shift-banner').on('click', function() { $techShiftBanner.fadeOut(); localStorage.setItem('techShiftBannerHiddenTime', currentTime.toString()); }); const $agfBanner = $('#agf-banner'); const agfHiddenTime = localStorage.getItem('agfBannerHiddenTime'); if (!agfHiddenTime || currentTime - parseInt(agfHiddenTime) > EIGHT_HOURS) { $agfBanner.removeClass('tw-hidden').addClass('tw-flex'); localStorage.removeItem('agfBannerHiddenTime'); } $('.close-agf-banner').on('click', function() { $agfBanner.fadeOut(); localStorage.setItem('agfBannerHiddenTime', currentTime.toString()); }); }); $("#user-mode-toggle").on("change", function() { }); const itiErrorMap = ["Invalid number", "Invalid country code", "Too short", "Too long", "Invalid number"]; $(document).ready(function() { var removeItemsTitle = ""; if (removeItemsTitle != '') { Swal.fire({ html: '

The' + ` ${removeItemsTitle} ` + 'is currently not available for purchase and removed from your cart

', icon: 'info', showCancelButton: false, backdrop: 'static', allowOutsideClick: true, }); } if (isNotActivateAccountRoute && (mobileRequired || nameRequired || needUpdateType)) { let model = $('#popup_complete_profile').html(); if (typeof model === 'undefined') { return; } model = model.replaceAll('phone', 'phone_number'); model = model.replaceAll('error-msg', 'phone_error_msg'); model = model.replaceAll('valid-msg', 'phone_valid_msg'); Swal.fire({ html: model, icon: 'question', showCancelButton: false, showConfirmButton: false, backdrop: 'static', allowOutsideClick: false, customClass: { content: 'p-0 text-left', }, onOpen: () => { $('[data-toggle="tooltip"]').tooltip(); renderPhoneField('phone_number'); }, width: '32rem', }); } }); let iti; let phoneNumber = null; let countryCode = null; function renderPhoneField(id, defaultCountry = 'eg') { const input = document.querySelector("#" + id); if (!input) { return; } input.setAttribute("dir", document.body.dir); iti = intlTelInput(input, { hiddenInput: () => ({ phone: "mobile", country: "country_code" }), initialCountry: defaultCountry, separateDialCode: true, nationalMode: false, }); countryCode = defaultCountry; input.addEventListener('countrychange', (e) => { countryCode = iti.getSelectedCountryData().iso2; }); input.addEventListener('keyup', (e) => { phoneNumber = e.target.value.replaceAll(' ', ''); }); } function validatePhone(id, returnValue = false) { const input = document.querySelector("#" + id); if (input) { let errorMsg = ''; let error = false; if (!input.value.trim()) { errorMsg = "Phone is required."; error = true; } else if (!iti.isValidNumber()) { const errorCode = iti.getValidationError(); errorMsg = itiErrorMap[errorCode] || "Invalid number"; error = true; } if (error) { if (returnValue) { return error } $.toast({ text: errorMsg, bgColor: '#f63c3c', textColor: 'white', hideAfter: 10000, position: 'bottom-right', icon: 'error' }); } return error; } }