Functional Testing

Testing Coverage – Functional Testing

The functional testing process focuses solely on what the system does, not how, why, or even how well. The internal structure of the application is rarely considered during functional testing. Instead, it checks the program function against all available documentation prepared prior to development. The system’s compliance with these and other requirements are the primary focus of functional testing.

For each of the many functional testing types utilized, the tester identifies the expected behavior, creates data to use for the type of test being performed, determines the appropriate output, executes the tests, and then compares the actual and expected outputs based on the functional, business, or design requirements and specifications. Testers set out to verify each specific action and code function using manual or automated tests, or most often a mixture of both.  User commands, data updates, searches, and UI functionality are examples of functions that are tested.  Defects found during functional testing are very often related to the user interface or inter-process communication.

Functional tests make sure the system behaves correctly from the perspective of the end-user and according to business and functional requirements. Each component must perform according to specifications and business objectives must be met. This segment of testing is takes the longest to prepare for, with testers working on functional test plans as soon as documentation is available. Performing the various array of functional tests is time consuming, must be heavily planned, and can be overwhelming for some organizations with limited resources or harsh time constraints.

The functional testing process employs several different types of testing that are explained in more detail within the Functional Testing section. Examples are: acceptance testing that determines how useful the product is to the end-user, database testing which ensures that databases are durable, secure, and consistent, exploratory testing that requires testers to design and execute tests simultaneously, negative/positive testing that deals specifically with inputs and boundaries, or white-box testing that exercises all internal components and evaluates them against industry standards, business rules, or design specifications.

Acceptance Testing

The main motive to perform acceptance testing is to evaluate the system’s compliance with the business requirements in order to ensure whether it is acceptable for delivery or not.

Alpha Testing

Alpha testing is one of the Acceptance testing that is mostly used in software development. It is performed in order to identify all the possible issues or bugs before launching the product live.

Automation Testing

It uses an application to implement entire software life cycle in less time and provides efficiency and effectiveness to the testing software.

Beta Testing

Beta Testing is also known as Field testing as it takes place at customer’s site. System/software is send to users who install it and use it under real-world conditions.

Black Box Testing

Black-box technique are of different types like Equivalence partitioning, Boundary value analysis, Decision tables and State transition testing.

Database Testing

Database testing involve checking of the data mapping, integrity of data, ACID (Atomicity, Consistency, Isolation, Durability) properties validation Ensure and Accuracy of the implemented Business Rules.

End to End Testing

The entire application is tested for critical functionalities such as communicating with the other systems, interfaces, database, network, and other applications.

Exploratory Testing

Exploratory testing provides freedom of testing to any well skilled tester to test and to continuously optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation.

Failover Testing

This type of testing validates a system’s ability to be able to allocate extra resource and to move operations to back-up systems.

Incremental Testing

After unit testing is completed, developer performs integration testing. It is the process of verifying the interfaces and interaction between modules.

Integration Testing

Integration testing is the software testing in which individual modules of the software are logically integrated and then tested as a group.

Negative Testing

Negative Testing is a variant of testing that can be performed on the system by providing invalid data as input. It checks whether an application behaves as expected with the negative input.

Positive Testing

Positive testing is the type of testing that can be performed on the system by providing the valid data as input. It checks whether an application behaves as expected with the positive input.

Regression Testing

Regression Testing is a type of software testing that is performed to confirm that a recent program or code change has not adversely affected the existing features.

Sanity Testing

Sanity testing is the subset of regression testing and it is performed when we do not have enough time for doing testing.

System Testing

System Testing is performed after Integration Testing and before Acceptance Testing by the independent testers. It enables you to test, validate and verify both the Application Architecture and Business requirements.

Unit Testing

Unit testing involves only those characteristics that are vital to the performance of the unit under test. This encourages developers to modify the source code without

White Box Testing

White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal