Thursday, 30 July 2015

Functional Testing - Basic Facts



Functional testing is also referred to as Quality Assurance (QA) of the application or software. It is a process of testing the system to ensure that it performs as per the functionality specified in the System Requirement Specification.

-          It verifies that the system functions as per the client requirements which were specified in the System Requirement Specification document.
-          It tests the usability of the system and ensures that all the navigational functions are working correctly.
-          It checks for exception handling and proper error message display.




Process of Testing

This testing generally involves the following steps:

·         Identifying the software requirements
·         Preparing a combination of test data for testing
·         Calculating the output to be generated with each input set
·         Running the test case and compare the results generated with the expected results

Types  

The different types of functional Testing are as follows:

  • Unit Test: It is the process of testing each unit of code to ensure that each implementation is functionally correct. When software requirements change or get modified, these tests also get modified.

  • Smoke Test: It is a series of tests that are conducted before the start of detailed testing. Smoke testing verifies the high level functional inconsistencies of the application.

  • Integration Test: This ensures that the software application is compatible with other applications. Here, testing goals require running those tests which will need communication to be established. In case the system under consideration is a stand-alone system, then Integration test may be overlooked.

  • White Box Test: This testing is based on the inter structure of the system. It can also be referred to as Code Based Testing as it
                       -  Verifies the security holes in the code
                       -  Verifies the incomplete paths in the code
                       -  Verifies the flow of data as in requirement specification document.
White box testing verifies 100% of the code in the software application.

  • Black Box Test:  Here the functionality of the system is tested with a combination of appropriate and inappropriate data and the output is compared with the required results. This test only focuses on the input given and the output generated without knowing the internal code implementation.  If any error or discrepancy as compared to the desired result is generated, then it is fixed and the system is tested again.

  • Regression Test: This testing ensures that code or functionality modification in one part of the system has not affected other functionality of the system. Regression testing is repetitive and ensures that the software quality is maintained.

  • Acceptance Test: This kind of testing evaluates the usability of the system from the end user’s perspective. These test cases are developed from user requirements and require to be defined in the System Development Life Cycle. This helps the developers to understand what kind of system they are developing.

  • Localization Testing: In localized testing, the application is tested for its performance and efficiency in the local market or a comparatively smaller geographical area than that considered for globalized application.

  • Globalization Testing: Globalized testing, also known as internationalized testing ensures that an application is functional in diverse locations or in a larger geographical area. . This test validates whether the application can be used all over the world and checks if all kinds of language characters are supported.

Test Tools

There are several tools available to perform functional testing.  JUnit is available for Java applications. SoapUI & Watir is used to test web services.

No comments:

Post a Comment