Showing posts with label software testing types. Show all posts
Showing posts with label software testing types. Show all posts

Monday, December 5, 2011

Software Testing Types



These are some software testing types,

• Black box testing: In black box testing you don't need to know the internal design in detail or have a good knowledge about the code for this test. It's mainly based on functionality and specifications, requirements.


• White box testing: White box testing based on detailed knowledged of the internal design and code. Tests are performed for specific code statements and coding styles.


• Integration testing: Testing of combined parts of an application to determine if they function together correctly. It can be any type of application which has several independent sub applications, modules.


• Functional testing: Black box type testing to test the functional requirements of an application. Typically done by software testers but software programmers should  also check if their code works before releasing it.



• Unit testing: The most micro scale of testing to test specific functions or code modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code.


• System testing: Black box type testing that is based on overall requirements specifications. Covers all combined parts of a system.

• End to End testing: It's similar to system testing. Involves testing of a complete application environment similar to real world use. May require interacting with a database, using network communications, or interacting with other hardware, applications, or systems.


• Regression testing: Re-testing after software is updated to fix some problems. The challenge might be to determine what needs to be tested, and all the interactions of the functions, especially near the end of the sofware cycle.


• Sanity testing or smoke testing: An initial testing effort to determine if a new sw version is performing well enough to start for a major software testing.


• Load / stress / performance testing: Testing an application under heavy loads. Such as simulating a very heavy traffic condition in a voice or data network, or a web site to determine at what point the system start causing problems or fails.


• Usability testing: Testing to determine how user friendly the application is. It depends on the end user or customer.
• Security testing: Testing to determine how well the system protects itself against unauthorized internal or external access and intentional damage.


• Compatability testing: Testing how well software performs in different environments. Particular hardware, software, operating system, network environment etc. Like testing a web site in different browsers and browser versions.

• Install / Uninstall testing: Testing of full, partial, or upgrade install / uninstall processes.

• Recovery / failover testing: Testing to determine how well a system recovers from crashes, failures, or other major problems.


• Alpha testing: Testing of an application when development is nearing completion. Minor design changes may still be made as a result of such testing. Typically done by end users.


• Beta testing: Testing when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end users or others.