The main objective of this assignment is measuring test engineering skills.
1- Open Tajawal or Almosafer Native Mobile App
2- Check for current set language. If language is already set to english then proceed with next steps. If not, then first change language to english and then proceed.
3- Navigate to flights-home page, and enter below criteria in flights search form to make flight search:
- Origin - (from random array of origins - length 5) (Example: DXB, AUH, SHJ, JED, RUH)
- Destination - (from random array of destinations - length 5) (Example: AMM, CAI, DEL, KHI, PAR)
- Depart and Return Dates (randomly generated dates in future. Do not select date in current month. Scroll down in calendar view and select future dates)
- Passengers (1Adult,2Children,1Infant)
- Cabin Class (Economy)
3- Wait for loading to be completed on flight listing page
4- Assert the Dates in the flight listing page on the header
5- Use sort feature to ensure that flights are sorted by 'cheapest'. (Scroll down in the flights results view and do this check for multiple flights)
6- After loading is completed, fetch and save price of first flight
7- Assert the minimum-price displayed for price-range-filter equals to price of first-flight in list
- iOS OR Android Native App
- Code challenge to be done using Appium / Java / testNG
- For automated tests, assertions are the key. We want you to explore the application and add the assertions that you think are important.
- Follow best practices for coding & automation (OOP, POM, reusable, clean, documented code).
- Start Appium server Programatically
- Test Report for the Automation (Optional)
A code we can Trust!
This code is meant for testing, and passed execution does not mean working application; maybe testing code needs to be tested in the first place.
- Code challenge should be delivered as a link to a public git repository (github.com is preferred).
- Implementations focusing on quality over feature completeness will be highly appreciated. Don’t feel compelled to implement everything, while compromising on code quality.
- Follow All the Best Practices for Implementing a Quality Automation Framework.
- Even if you are not able to complete the challenge, please do submit it anyways.
- Make sure you are able to run the tests successfully
- Please avoid any ToDo's in the code.