MOBIQUITY QA CODE CHALLENGE
This repository contains the code for Mobiquity code assignment for the Senior QA engineer position.
Tech Stack
the tools and language used are:
- Kotlin as programming language
- Serenity BDD as main library, that includes:
- Rest-assured wrapper
- Screenplay implementation
- Cucumber integration
- Test Reporting
- Cucumber were used as test specification tool (the latest version were used that includes support to Rule keyword in Gherkin)
- Maven
- Hamcrest for assertions
- GitHub Actions as CI
Test Scenarios
In order to implement the assignment, the following flows were tested:
- Users search: Test scenarios that covers Searching users by different queries were added
- Posts search: Test that verify searching posts using different queries like, userId, title or postId were implemented
- Comments search: This cover the main test flow asked in the challenge, scenarios that covers searching comments using simple and complex queries (like comments made to all the posts of a user) were added, all the verifications checks valid emails.
How to execute
In order to run the tests, these things are needed:
- Java 11 or greater
- Maven (tested with the latest version)
- If tests are going to run locally is necessary to deploy the typicode serve first, there is a DockerFile in the project that deploys it.
- to run the tests pointing to a local server run the command
mvn clean verify
- to run the tests pointing to the official server deployment run the command
mvn clean verify -Denvironment=production
- After test execution a SerenityBDD report will be generated located at
target/site/serenity
CI
For this project GitHub actions were used as CI, by default any commit made to the development
branch will run the test pointing to a local server (deployed in the CI environment using Docker). Any commit made to master
branch will run the tests against the production deployment.
Test Reports
Test results are deployed to GitHub Pages: Test Reports