Black Box Testing
Black Box Testing specifically tests the functionality of the software and does not pay heed to internal design. Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester.
White Box Testing
White Box Testing checks the various internal software and coding that the software is built on. White Box Testing is a method of Software Testing that tests internal structures or workings of an application, as opposed to its functionality. White Box Testing can be applied at the unit, integration and system levels of the software testing process.
Unit Testing deals with the checking of the modules that the software is broken into and requires detailed knowledge of coding, hence usually done by the programmers. Unit Testing is a level of software testing where individual units/ components of a software are tested. The purpose is to validate that each unit of the software performs as designed.
Incremental Testing tests the application continuously to make sure that the various added functions works perfectly. Incremental Testing, also known as Incremental Integration Testing, is one of the approaches of Integration Testing and incorporates its fundamental concepts.
Integration Testing checks the modules when they are integrated with each other and heir dependency. Integration Testing is a level of Software Testing where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units. Test drivers and test stubs are used to assist in Integration Testing.
Functional Testing deals with the output that the software provides due to specific inputs provided. Functional Testing is a type of Software Testing whereby the system is tested against the functional requirements/specifications. Functional testing is normally performed during the levels of System Testing and Acceptance Testing.
System Testing provides test results for the whole system at a go instead of checking the various modules. It provides an all over the result for the entire software system. System Testing is a level of Software Testing where a complete and integrated software is tested. The purpose of this test is to evaluate the system compliance with the specified requirements.
Regression Testing is one of the major types of software testing which covers the entire software and shows you the various modifications which the modules need for the software to be bug free. Regression testing is a type of Software Testing that intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.
Acceptance Testing checks whether the software is up to the mark with the requirements of the customer or the end user who will in turn decide the popularity of the software. Acceptance Testing is a level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system compliance with the business requirements and assess whether it is acceptable for delivery.
Performance Testing will check the performance ability of the system under various real world conditions that the software may face once launched in the market. Performance Testing is a type of software testing that intends to determine how a system performs in terms of responsiveness and stability under a certain load.
Security Testing checks the ease or difficulty that the hackers will face to penetrate the particular software. Security Testing is a type of software testing that intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Compatibility Testing deals with the way the software will react in the presence of various other software, the hardware of the system and the various operating systems that it is going to run on. Compatibility Testing is a type of Software Testing to check whether your software is capable of running on different hardware, operating systems, applications , network environments or Mobile devices.