0% found this document useful (0 votes)
14 views6 pages

QA - Assignment

The document outlines a technical assignment for a Quality Assurance Engineer at AdZ, a platform for publishing advertisements. It includes a scenario description of the system architecture, the advertisement lifecycle, and specific questions related to identifying bugs, writing test cases, performance testing, and Cypress coding tasks. The assignment aims to assess the candidate's ability to ensure the quality and functionality of the application through various testing methodologies.

Uploaded by

isharav68
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views6 pages

QA - Assignment

The document outlines a technical assignment for a Quality Assurance Engineer at AdZ, a platform for publishing advertisements. It includes a scenario description of the system architecture, the advertisement lifecycle, and specific questions related to identifying bugs, writing test cases, performance testing, and Cypress coding tasks. The assignment aims to assess the candidate's ability to ensure the quality and functionality of the application through various testing methodologies.

Uploaded by

isharav68
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Azbow | Quality Assurance Engineer | Technical Assignment

Scenario
AdZ is a platform for users to publish advertisements. These ads can be items to be sold,
services, renting property to vehicle hires. The system is built following a 3 tier architecture

1.) Web based front-end (Web App), Back-office web application (Admin dashboard)
2.) Web services (REST API)
3.) Database layer (RDBMS)

The admin dashboard exists for the client team to monitor and manage the application. Once a
user logins they are provided with an overview of the current status of the advertisements.
Once a user publishes an advertisement on the web, the advertisements go through the
following cycle before being published and visible to the end-users.
1.) Pending Review
2.) Pending Payment Confirmation
3.) Active
4.) Expired

Other than the 4 main statuses there exists two additional statuses to flag ads which can cause
harm to the business, the clients and the end-users
1.) Reported
2.) Suspended

An UX engineer has designed the UI according to the requirements brought forward by the
client and the development team has carried out the development. You have been assigned as
the QA engineer responsible for testing the dashboard page. The advertisements have

We have provided you a screenshot of the design and the system as it has been developed by
the development team.
UI designed by UX engineer
Developed Dashboard

Questions
Question 1
Using the UI, identify the bugs in the developed system. Categorize the bugs as functional,
non-functional or UI. Note the severity of each bug
Question 2
The team has captured the following user stories as new requirements for the application. Read
the following user stories and write test cases. Try to cover as much test cases for each user
story as possible
● As a back-office user I want to be able to view the number of the featured
advertisements in the admin dashboard
● As a back-office user once i click on an advertisement in the dashboard page i want to
be able to view the specific ad on a new tab
● As an admin user I want to be able to assign an ‘Ad Review Agent’ for ads which are of
the ‘Pending Review’ status
● As a back-office user I want to be able to filter the ads by status

Question 3
Write test cases for the following API endpoint

● GET /ads/ad_id?limit=100&offset=0
○ {adId} is a path parameter (Optional)
○ limit is a query parameter (default value = 100)
○ offset is a query parameter (default value = 0)
○ 1 <= ad_id, limit , offset <= N where N is an integer
○ If the ad_id is set returns the ad with the specific id
○ If the ad_id is not set returns a list of ads
○ If an advertisement is not found returns a response with status code 200 and
message no ad found
○ For invalid scenarios status code 500 is produced from the server

Question 4
Our client is planning to carry out a digital marketing campaign to promote the AdZ application.
As such the marketing team for AdZ is expecting an increase of the user base in the next
month. The client is concerned that the system will not be able to handle the increase in the
user count. As a QA how will you carry out a performance test to ensure that the system will be
able to handle the increase of users during the next month.
Question 4.5
Other than the APIs performance, what other factors would affect the website's performance?

Question 5
Cypress Coding Task Questions

 Write a Cypress command to visit the login page of a local web application running at
http://localhost:3001/login.

 Use Cypress to select the email input field by its placeholder and assert that it is visible
on the page (Alias the placeholder as “Enter your password here”

 Write a Cypress command to pause the test execution for 2 seconds.


Why is it better to avoid using cy.wait() in production-grade tests?

 Write a Cypress command to Select the password input using its placeholder
Alias it as @passwordInput
Click the field and type the password 123456

 Write a Cypress script to:


Get all the anchor (<a>) tags with class underline text-blue-700 inside table cells
Select the first anchor tag
xtract and trim its text content
Log the project name using cy.log()

Question 5

 What is Cypress, and how is it different from Selenium?

 What is the default folder structure of a Cypress project?


 What is the difference between cy.get() and cy.find()?

 Explain how to use .then() in Cypress and why it’s needed.

 How do you select an element by text content in Cypress?

 How would you verify that a button is disabled?

 Explain the difference between describe() and it() blocks in Cypress.

 How would you write a test that runs only once (e.g., during a smoke test)?

 How would you write a test that runs only once (e.g., during a smoke test)?

You might also like