Functional Testing

Three functional pages: login form, shopping cart and email/message screen

During functional testing a tester checks whether implemented changes match the functional requirements.

Let’s look at:

Software Requirements Specification

Usually, a testing task includes links to the requirements for the feature. The ideal source for a tester is the SRS, but if the analysis is incomplete, you may need to rely on other project documents as well.

Software Requirements Specification
a document that defines how the system should work: what it does and what quality attributes it must meet.

Functional requirements what the system does

Describe system functions: what actions are performed and under what conditions.

Example

«When a user registers, a new user must be created in the database»

Non-functional requirements how the system works

Describe system qualities: performance, reliability, security, usability, and so on.

Example

«The request latency must not exceed 500 milliseconds»

Example of functional requirements

1. Functional requirements

1.1 User registration

The user registration functionality is intended to create a new account in the system. The user fills in a form, the system creates an account, and it is then used to access the platform.

  • Endpoint: /functional-testing/register
  • Method: POST
  • Data format: application/json

Request format requirements.

Field Description Type Requi
red
Constraints
username Username for logging in string + From 3 to 128 characters
email Email for logging in string + From 3 to 128 characters in the format email@domain.com
password Password for account access string + From 8 to 128 characters, a combination of letters and digits
password_match Repeat the password to verify it matches string + Must match password

Validation (checking that data meets requirements) must be implemented on both the backend and the frontend.


Response format requirements.

Field Description Type Requi
red
message A message indicating the result of processing the registration request string -

Result Status code Message
Successful registration 201 (Created) Registration successful!
Client error 400 (Bad Request) Please check the data you entered.
Passwords do not match 400 (Bad Request) Please check the password confirmation.
Server error 500 (Internal Server Error) Sorry, the service is temporarily unavailable.

You can test this functionality using Postman (backend) and the test registration form (frontend).

How to run functional testing

1. Preparation

2. Frontend testing

2.1 Check the page layout

Make sure the registration form is displayed correctly and that all fields and buttons are present.

2.2 Client-side field validation

  • Check required fields.
  • Check constraints on data type, format, and length.
  • Check that passwords match.

2.3 Send data to the server

Make sure the request is sent (DevTools), and that server messages are displayed correctly.

Test form «Registration»

3. Backend testing (API)

3.1 Test a valid request

Check that the server returns the correct status and message according to the requirements, depending on the submitted data.

3.2 Server-side field validation

  • Check required fields.
  • Check constraints on data type, format, and length.
  • Check that passwords match.

4. Document results

Record the test results, and if you find issues, create bug reports.

Task
Task available to premium users!
Sidebar arrow