Skip to content

qa-at-the-point/example-qa-assessment-dotnet

Repository files navigation

Example QA Assessment

A real-world technical assessment from a company hiring QA / Software Testers.

The Quality Engineer Test Task

Find the assessment instructions in this file: quality-engineer-test.md

Give this a try yourself before looking at the solution in this repo!

A Solution

To look at the solution I came up with, look for these files:

Besides that, my solution uses:

  • C# (dotnet core) as my language
  • NUnit as my test framework
  • Selenium to automate the browser
  • RestSharp to automate the API requests

⏰ I gave myself 2 hours to do this

Setup

  • 🐍 dotnet 6 or higher is required
  1. Clone the repo

    git clone https://github.com/qa-at-the-point/example-qa-assessment-dotnet.git
  2. Install packages

    # Installs all packages and dependencies
    dotnet build

Run Tests

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

Run Tests by Category

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:

Example Extent Report for UI Tests (Dark) index.html

Example Extent Report for API Tests (Light) index.html

Generate XML Report

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!)

Known Limitations

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

Submit a Bug or Request

If you've found an bug or you have an idea or feature request, please create an issue on the Issues Tab

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published