This topic is important but short. To be a successful tester you need to know and understand what types of requirements exist so be ready to take notes.
Functional and non-functional requirements
The picture below shows examples of functional and non-functional requirements.
Functional requirements describe the behavior of the system, i.e. its actions.
Example:
When you click the 'Add' button, the product should appear in the shopping basket.
The application should automatically back up the data every day at 12:30 MSC.
The app should allow users to sign up using email and password.
Nonfunctional requirements describe the characteristics the system must have.
Example:
Performance: "A new user account must be created in less than 2000 ms".
Reliability: "The system must have an availability of at least 99.9%".
Capacity: "The system shall serve up to 1000 concurrent users".
Scalability: "The system shall be scalable, e.g. to increase the number of concurrent users".
Usability: "Users should be able to navigate to any page of the site in 3 clicks".
Business requirements
A business requirement is a document that reflects the customer's vision and wishes, but most importantly, expresses the purpose for which the product is being developed.
This type of requirement answers the following questions:
Why is the product needed?
What is the expected benefit of the product?
How will the business/customer benefit from the product?
What are the business requirements? It's simple. It is a normal document with simple text, perhaps with tables or graphics. This document does not detail how the system should behave or other technical specifications. However, there may be a prioritization of the business problems to be solved, risks, and so on.
Example of business requirements:
We need to create a product that can change the color of clothes when a camera is pointed at a person.
We need to automate the product delivery process.
We need to simplify the mechanism for sending invitations from the website.
User requirements
User requirements is a document that describes the tasks that the user can perform with the software being developed.
User requirements can describe:
System behavior.
Software usage scenarios.
Functional and non-functional characteristics of the system.
Example of user requirements:
In order to submit a 'Course Enrollment' request, the user must go to the 'Courses' section and click on the 'Submit Request' button.
When a user logs in for the first time, the license agreement must be displayed.
When a new article is saved for the first time, the system should prompt the user to save it as a draft or as a publication.
System requirements
These are the kind of requirements that most people have been familiar with since childhood. You've probably seen them on the back of a game disk box or in an online game shop.
System requirements are a document that describes the basic conditions necessary for software to run and function.
System requirements can describe the following:
Hardware requirements (CPU speed, SSD capacity, etc.)
Environment requirements (operating system, installed drivers, etc.)
Example of system requirements:
Operating system: Windows 7/8/10.
Processor (CPU): With two or more physical cores and support for SSE2 technology.
RAM: 2 GB.
Video adapter: NVIDIA GeForce 8600, ATI Radeon HD 4550.
Free hard drive space: ~ 40 GB.
Internet connection speed: 256 Kbps.
Conclusion
Functional requirements define the specific actions and behavior of the system, while non-functional requirements define the characteristics of the system. Business requirements reflect the customer's vision and purpose for the product, while user requirements describe the tasks that users can perform with the software. Finally, system requirements ensure that the software works properly and is compatible with hardware and environmental specifications. Knowledge of these different requirements enables the tester to contribute effectively to software development and ensure that the software meets the desired outcomes.