Part - 3 Functional Testing and its Testing Approaches

Part - 3 Functional Testing and its Testing Approaches

What is Functional Testing (in a deeper context)?

Process of verifying a system working as expected when its functionality is examined by a user or by another system. A few of them might include -

  • Unit Tests: Initial step of testing is to check each block of code performs as expected with a given set of inputs.

  • Integration Tests: Examining or Verifying each unit module connects as per the desired requirements and passes data throughout the system through which it was built for.

  • Sanity Checks: A check on the code fixes or the code change applied, doesn't undergo any unexpected side effects on the system.

  • Regression Tests: Verification, of the latest feature or the code merge done to the system, doesn't cause any new issues.

  • User Acceptance Tests: Final check on the system as per the desired requirements and a gateway to the product deployment.

Testing Approaches :

It has two techniques :

  1. Proactive - Approach where the Test Design process is initiated as early as possible to find and fix the defects before the build is created.

  2. Reactive - Approach where the testing isn't started until the design and coding are completed.

The above approaches are used to implement below functional testing types :

📦 Black-Box Testing

  • In this, the Internal architecture of the application is unknown.

  • An array of test inputs is passed to view the specified output generated.

  • The Tester is only concerned with the outcome of the application.

  • Used to find missing functions, performance errors, initialization errors, database issues, etc.

📦 White-Box Testing

  • In this, the Internal architecture of the application is partially known.

  • Performed at the early stages of the code via unit and integration tests.

  • The expected outcome of the application which is under the test is predicted here.

📦 Grey-Box Testing

  • It's a mixture of Black-Box and White-Box testing.

  • Is performed when the code/product is at the final part of the integration and the start of the UAT.