A) Functional Testing

It is used to evaluate software based on functional requirements of the business to ensure that the software works as it was specified to do. The primary focus of functional testing is to ensure that the software components work as designed, and that the design sufficiently meets the business requirements.

Testing based on Requirements:

Testing based on Requirements:

The test is conducted on the basis of functional specifications that the software is required to perform.

Testing based on Business Goals:

The test is conducted on the basis of the information from business process perspective. It involves the goals that a business is planning to achieve.

typed testing

Types of Functional Testing:

a) Unit Testing

Unit Testing of software application is carried out during the development of an application by developer to test individual units or components of the application.

The objective of Unit Testing is:

  • To isolate a section of code.

  • To verify the correctness of code.

  • To help for code reuse.

  • To test every function and procedure.

  • To fix bugs early in the development cycle and to save costs.

  • To help the developers to understand the code and make required changes.

b) Integration Testing

Testing the data flow between the two features is known as integration testing. The purpose of the integration testing is to find out faults in the interactions between integrated units. It is performed after unit testing and before validation testing. Here the software modules are integrated logically and tested as a group.

Integration test approaches:

  • Big-Bang Integration Testing.

  • Bottom-Up Integration Testing.

  • Top-Down Integration Testing.

  • Mixed Integration Testing.

c) System Testing

It is end-to-end testing wherein the testing environment is similar to the production environment. System testing is performed on a completely integrated system to evaluate the compliance of the system with the corresponding requirements.

End – to – end testing

Here, we navigate through all the features of the software and test if the end business / end feature works. We just test the end feature and don’t check for data flow or do functional testing and all.

typed testing

System Testing Process:

  • Test Environment Setup

  • Create Test Case

  • Create Test Data

  • Execute Test Case

  • Defect Reporting

  • Regression Testing

  • Log Defects

  • Retest

typed testing

d) Sanity Testing

Sanity testing is usually conducted when a new build is received for testing which helps to identify the dependent missing functionalities. Sanity testing is conducted when:
a) when there is an improvement/change in the functionality of the specified software.
b) when a bug is fixed, or a new feature is added.

Here are the Attributes of Sanity Testing:

  • Arrow and Deep

  • A Subset of Regression Testing

  • Unscripted

  • Not Documented

  • Performed by testers

e) Smoke Testing

Testing the basic or critical features of an application before going thorough testing or rigorous testing is called smoke testing. It acts as a confirmation mechanism to verify whether the quality assurance team can proceed with further testing or not. It is also called Build Verification Testing – because we check whether the build is broken or not. Whenever a new build comes in, we always start with smoke testing, because for every new build – there might be some changes which might have broken a major feature ( fixing the bug or adding a new feature could have affected a major portion of the original software).

Important Points to Remember while conducting smoke testing:

  • When we are conducting smoke testing, we do only positive testing (only valid data is entered).

  • Here, we test only basic or critical features.

  • We take basic features and test them for important scenarios.

  • When the product is installed in production, we do quick smoke testing to ensure the product is installed properly.

Why do we perform Smoke testing ?

  • Just to ensure that product is testable.

  • Do smoke testing in the beginning – catch bugs in basic features – send it to the development team so that the development team will have sufficient time to fix it.

  • Ensure that the product is installed properly.

typed testing

f) Ad-Hoc Testing

The process is usually performed to find loopholes in software. Ad-Hoc Testing is done randomly in between without following the pre-defined flow of the software. This is done considering that the customer never uses the application in a sequence/systematically. Adhoc testing is performed without any documentation because it does not have any test case created. Adhoc testing is an Unstructured form of testing:

typed testing

g) Interface Testing

Interface Testing verifies the communication between two software applications or components Two important components of interface testing are:

  • Web Server and Application Server interface.

  • Database Server and Application Server interface.

Phases of Interface Testing are:

  • Configuration and Development

  • Validation

  • Maintenance

h) Acceptence Testing

Acceptance testing is formal testing conducted on the basis of user requirements and function processing. It verifies whether the software is adhering to specified requirements and user requirements.

Types of Acceptance Testing:

1. User Accepteance Testing (UAT):

User acceptance testing is conducted to make sure if the product is working for the user correctly. This is also termed as End-User Testing.

2. Business Acceptance Testing (BAT):

Business acceptance testing is done to determine if the end product meets the business goals. This test is done keeping in mind the business benefits that a software product is expected to bring.

3. Contract Acceptance Testing (CAT):

Contract acceptance testing is basically a contract signed legally between a development company and the client, which specifies that the acceptance test must be performed within the specified time period and it should pass all the acceptance use cases after the product goes live.

4. Regulations Acceptance Testing (RAT):

egulation acceptance test is done to verify if the product adheres or violates the rules and regulations that are defined by the government of the country where it is being released. This may be unintentional but will impact negatively on the business.

5. Operational Acceptance Testing (OAT):

Operational acceptance test is conducted to verify the operational readiness of the software product to ensure it’s stability. It includes testing of compatibility, maintainability, reliability etc.

6. Alpha Testing:

Alpha testing is done to identify bugs before releasing the software product to the client.

7. Beta Testing:

Beta testing is conducted by launching a beta version of the software product into the market to assess its performance with the real end-users. Feedback is collected from the users and the defects are fixed. Beta testing also helps in enhancing the product feature to give a rich user experience.

Types of Testing Criteria for Functional Requirements:

1. Demonstration

User acceptance testing is conducted to make sure if the product is working for the user correctly. This is also termed as End-User Testing.

2. lnspection

Inspection is sometimes done with demonstration by the tester. The process requires visual examination of the code documentation, table dumps, scans, etc.

3. Analysis/Special Qualification

This testing usually affects critical parts of the software and/or it’s interfaces.