Black box & White box testing

Black box testing: Not based on any knowledge of internal design or code. Tests are based on requirements and functionality.

Types of Black box testing is given below.

Functional testing - It covers how well the system executes the function as define by the End user or specification.

System testing- that is based on overall requirements specifications, covers all combined parts of a system.

Sanity test - A sanity test is a narrow regression test that focuses on one or a few areas of functionality after taking latest build. 

Smoke test -After latest build test the software with roughly testing is called smoke test.

Regression testing - re-testing after modifications of the software or its environment.

Confirmation testing - is testing fixes to a set of defects.

Acceptance testing - final testing based on specifications of the customer.

Performance testing - To test the performance of project with or beyond the load.  It covers Load & stress Testing.

Load testing - testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system's response time degrades or fails.

Stress testing - testing an application under unusually heavy loads, heavy repetition of certain actions or input of values with beyond the limit.

Usability testing - testing for 'user-friendliness'. 

Recovery testing - testing how well a system recovers from crashes, hardware failures, or other disastrous problems.

Compatibility testing - testing how well software performs in a particular hardware/software/operating system/network/etc. environment.

Exploratory testing - To test the software  without any specification, test plan, or test case..tester do it by itself experience.

ad-hoc testing - similar to exploratory testing, but often taken to mean that the testers have significant understanding of the software before testing it.

User acceptance testing - determining if software is satisfactory to an end-user or customer.

Comparison test - comparing software weaknesses and strengths to competing products.

Alpha testing - testing of an application when development is nearing completion; minor design changes may still be made as a result of such testing.

Beta testing - testing when development and testing are essentially completed and final bugs and problems need to be found before final release.

Shakeout test -To identify an initial, test which verifies that a load has been successful and all software is accessible and functioning as expected.

White box testing: based on knowledge of the internal logic of an application's code. Tests are based on coverage of code statements, branches, paths, conditions.
Types of Blabk box testing is given below.

Unit testing -To test particular functions or code modules. Typically done by the requires detailed knowledge of the internal program design and code.

Integration Testing: - testing of combined parts of an application to determine if they function together correctly. There are 2 types of Integration Testing.

Top down and Bottom up Both are coming under Integration testing                                                                             

a) Top down Integration Testing   b) Bottom up Integration Testing

Top Down:In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary programmed called STUB.

Bottom Up:In this approach testing is conducted from sub module to main module.if the main module is not developed a temporary programmed called DRIVERS.

Security testing - testing how well the system protects against unauthorized internal or external access etc.

Code coverage - it describe the level on which source code of program a has been tested. It covers number of Coverage criteria.

  1. Statement Coverage
  2. Decision/Branch Coverage
  3. Condition Coverage
  4. Path Coverage