A real-world technical assessment from a company hiring QA / Software Testers.
Find the assessment instructions in this file: quality-engineer-test.md
Give this a try yourself before looking at the solution in this repo!
To look at the solution I came up with, look for these files:
- Test Plan - veriff.feature in a Gherkin-style format
- UI Tests - UiTests.cs
- API Tests - ApiTests.cs
- Veriff Code abstraction (pages and api) - Veriff Project
- Bugs found - BUGS.md
Besides that, my solution uses:
C# (dotnet core)
as my languageNUnit
as my test frameworkSelenium
to automate the browserRestSharp
to automate the API requests
⏰ I gave myself 2 hours to do this
- 🐍 dotnet 6 or higher is required
-
Clone the repo
git clone https://github.com/qa-at-the-point/example-qa-assessment-dotnet.git
-
Install packages
# Installs all packages and dependencies dotnet build
However, the base command is always the same:
# Run all tests
dotnet test
💡 The terminal will show test results and summary once the Test Run is complete
The recommended way for running tests in this framework is by specifying the API or UI suite to execute.
# API Tests
dotnet test --filter TestCategory=API
# UI
dotnet test --filter TestCategory=UI
💡 An
index.html
Extent Report file is generated at the Workspace Root which you can view in the browser!
For example:
dotnet test --filter <expression> -l:"trx;LogFileName=results.xml" -r
💡 A
results.xml
file is created at the Worspace Root to be used by CI (like Jenkins!)
With a 2-hour time limit of exploring, designing, and programming, and 1 hour of documentation, I didn't have time to implement everything I'd normally do. Imagine if I was working full-time!
😎 Hire me and I'll have full-time to design and implement even better solutions!
- You cannot run all tests (API and UI) at the same time because of the current
BaseTest
setup - UI Tests cannot be run in parallel as they depend on the same
IWebDriver
reference - API and UI Test Results are separated instead of being combined in a single report
- Only
Chrome
is being tested, but that is within scope of the assignment - Some values are hard-coded that probably shouldn't be. For example, the request URLs in
Veriff.Api
VeriffUi.FindQRCode()
looks for the text"QR"
on the page which won't work for every language- Tests are not parameterized to more closely match my veriff.feature scenarios
If you've found an bug or you have an idea or feature request, please create an issue on the Issues Tab