Open In App

Formal Testing

Formal testing is a type of software testing in which the testing of the software is done with proper planning and with proper documentation of its test cases. 

What is Formal Testing?

In formal testing, the degree of thoroughness and formality of test cases depend upon the requirements of the project. Formal testing follows a systematic process called Software Testing Life Cycle (STLC).



There are multiple steps taken in formal testing:

  1. Requirement Analysis.
  2. Planning about tests.
  3. Documentation of Test Cases.
  4. Setting up the Test Environment.
  5. Execution of Tests.
  6. Closure of Tests.

There are two ways for testing software. One is the traditional manual testing way and the other one is the automated testing way. We can use traditional manual testing for both formal testing of the software and informal testing of the software. However, the automated testing method is only suitable for formal testing of software because of the defining set of rules.



Formal Testing vs Informal Testing

Below are the differences between Formal Testing and Informal Testing: 

Formal Testing: In Formal Testing, the tests on software are performed with proper planning and with proper documentation of its test cases. In this form of software testing, the test cases are developed using multiple methods such as domain coverage, equivalence partitioning, boundary testing, etc., and then those test cases along with a systematic approach known as STLC, are used to test the functionality of the software.

Informal Testing: In Informal Testing which is also known as Ad-hoc testing, the tests on software are performed informally and randomly without any proper planning or documentation after the formal testing is completed to find out any loophole in the system. It is a considerably cheaper mode of testing since it doesn’t require any proper planning or documentation and it also takes lesser time to complete.

Property Formal Testing Informal Testing

Definition

It is a mode of testing in which proper planning and documentation of the test cases are done before testing the software.

It is a mode of testing in which there is no prior planning nor there are any documented test cases of the software before testing the software. 

Automation in the test process

It is possible to automate Formal testing because it follows a set of rules which is ideal for automation. It is not possible to automate Informal Testing because this mode of testing does not follow any fixed set of rules.
Use Case When an organization has enough time, resources, and proper documentation for software’s test case they choose this mode of testing. When an organization does not have enough time, resources, or any kind of documentation regarding the software’s test cases they choose this mode of testing.
Cost Formal testing methods are expensive as they include the cost of preparing the test cases, training the developers and testers, etc. Informal testing methods are cheaper than formal testing as they do not include any documentation, training, or planning costs.
Example An example of a formal testing method is the Software Testing Life Cycle. An example of an informal testing method is Ad-hoc testing.

Where to use Formal Testing?

It produces far better results than informal testing and there is little to no chance of any bugs getting left in the software after a formal test but if the organization does not have time, resources, or proper documentation for the software under development then they go for the informal mode of testing.

Formal Testing Process

Formal testing follows a systematic approach known as STLC so naturally, it contains all the steps involved in it.

Fig 1: Steps involved in Formal Testing

1. Requirement Analysis: In this phase, the testing team understands the requirements like what is to be tested. If anything is missing or not understandable then the testing team meets with the stakeholders to better understand the detailed knowledge of the requirement.

2. Planning Tests: The proper planning for software testing involves the formulation of a test objective, test strategy, and schedule. A plan helps developers of the software in many ways like analyzing the effort required to validate the quality of the software, fixing a schedule for appropriate testing of the software, etc. The planning of software testing involves multiple steps such as:

Fig 2: Product Analysis Cycle of GFG application

3. Documentation of Test Cases: Documentation of a test case can be developed from design requirements, domain coverage, equivalence partitioning, boundary testing, etc.

4. Setting Up the Test Environment: The test environment is defined as the place that may be hardware or software where the software under development will be tested. The environment simulates the appropriate network configuration required by the software to be tested to its full potential. It is an independent activity and can be started along with test case development. In this process, the testing team is not involved. either the developer or the customer creates the testing environment.

5. Execution of Tests: After the development of the test cases and setting up the test environment, the test execution step takes place. In this step, the testing team starts executing the test cases based on the prepared test cases in the earlier steps.

6. Closure of Tests: This is the last step of a formal testing process where the testing is analyzed.

Advantages of Formal Testing

Below are some of the advantages of formal testing:

Disadvantages of Formal Testing

Below are some of the disadvantages of formal testing:


Article Tags :