Requirement based Testing
Requirements-based testing is a testing approach in which test cases, test conditions, and test data are derived from requirements. It includes both functional tests and non-functional tests such as performance, security, usability, etc.
Stages in Requirements Based Testing
Define Exit Criteria – Testing is said to be done when all the functional and non-functional testing is completed, as defined in the exit criteria.
Test Case Design – Test case should be designed to verify requirements. It has a precondition, data setup, the inputs, expected outcomes, and actual outcomes in steps.
Test Execution – Execute the test cases against the system and record the actual outcome.
Verify Test Results – Verify if the expected and actual results are identical.
Verify Test Coverage – Verify if the tests cover both functional and non-functional requirements.
Track and close Defects – Any defects found during the testing process goes through the defect life cycle and are tracked till closure.
Requirement based Testing Process
- Since the testing process starts at the very early stages of the software development therefore defects are identified at the early phase.
- It is very effective and adds value to the testing process
- Its focus is to also improve requirements and find out all the missing and miscellaneous requirements.
- It provides the overall quality of the software product.
- It significantly reduces the number of invalid test cases and makes developers more aware of testing activities performed.
- It helps to prevent the implementation of incorrect requirement implementation.
Types of Requirement in Software Testing
Requirements help to understand the behavior of a system, which is described by various tasks of the system. They are classified into three categories which are Business requirements, User requirements, and System requirements.
These requirements are described from the business point of view. It describes the objectives and goals of a particular project that needs to be fulfilled and also provides an abstract of a project. These requirements concentrate on a general overview of a product, such as its primary use, why it is needed, its scope & vision, what would be the business benefits, who are the intended audience or users, etc. It generally involves the participation of the client, stakeholders, business, and project managers for gathering and analyzing the business requirements. Through business requirements, it is easy to assess the project cost, the time required, business risks involved, and many such things associated with a software development project.
Requirements incorporated in a software product under development to make a software product perform and function in a specific manner to achieve a specific target and goal falls under the category of system requirements. These system requirements classified in two types are functional requirements and non-functional requirements.
Requirements enclosing the functional attributes and behavior of a software product are called functional requirements. These requirements describe the working and functionalities of an intended software product. These requirements define and describe the functions to be performed, and features to be possessed by a software product like how does a product is supposed to perform on accepting inputs from the user, and what desirable output it should provide to the users. These requirements should be complete and clearly defined so as to meet all the specified features and functionalities to achieve a desirable quality product.
Non-functional requirements contribute towards the performance of a software product under a variant type of conditions and multiple environments. These are used to evaluate and assess the software product behavior other than its specific or desired behavior under unexpected conditions and environments. It also covers the standards, rules, and regulation that a software product must adhere and conform to it. These requirements mainly check for the below:
Further, these requirements are documented in the form of Software Requirement Specification(SRS) by the project manager, with which development team proceeds with the development process in a particular and correct direction.
Requirements generated from a user’s point of view and scenarios of using a software product in multiple manners under a real environment by a targeted user to execute a particular task specifies the user requirements. It defines the user’s expectation from a software product. As the user’s exhaustive needs may not be covered under the domain of system requirement, it may be covered separately by business analysts through studying and analyzing the user requirements.
These types of requirements are generally gathered and documented using use cases, user scenarios, and user stories. These requirements are documented in a user requirement document (URD) format by making use of narrative text and are usually signed off by the intended users.