Functional Testing

Software Testing Tutorial


[fblike]

Functional Testing : Introduction

  • Functional Testing is a type of testing that can be used to assess the features and functionality of the system or software product.

  • Functional testing has a special feature with the help of which each and every function of a software product so that it can be verified with requirement specifications.

Functional Testing : The Need

  • Checking a software product for its functionalities is the prime objective of functional testing. It mainly focuses on:

    1. Basic Usability: It deals with basic usability testing of software product which involves basic functionalities of user interface and navigation through pages.

    2. Mainline Functions: Main functions and features are tested of the software product.

    3. Accessibility: To check, how much the software product is accessible to users.

    4. Error Conditions: Error conditions either generate warnings or displays error messages, if any.

 

This image describes the complete process of functional testing.

Functional Testing : Process

Functional Testing : Techniques

  • There are five major techniques for functional testing. These are:

 

Functional Testing : Techniques

Functional Testing : Techniques

 

  1. Unit Testing: In unit testing, Independent units are tested using functional and structural techniques. Every unit is tested individually.

  2. Integration Testing: In integration testing, two or more units are combined together and then testing is carried out to test the integration related issues of various units. Integration units can further be subdivide as:

    • Bottom up approach.

    • Top down approach.

    • Sandwich approach.   

  3. System Testing: In system testing, the system is tested as whole and primarily functional testing techniques are used to test the system. Non-functional requirements like performance, reliability, usability and test ability are also tested.

  4. Regression Testing: Regression testing is the process of retesting the modified part of the software and ensuring that no new error have been introduced into previously tested code due to these modifications as whenever we modify any software, we need to retest it.

  5. Acceptance Testing: Once unit, integration and system testing are done, acceptance testing is initialized. It is done by the customers for the purpose of accepting the final product and its compliance with the requirements.