Software testing – what kinds of testing?

Software Testing Types:

  • Black box testing: Tests are based on requirements and functionality.
  • White box testing: based on knowledge of the internal logic of an application’s code.
  • Unit testing: Testing of individual software components or modules.
  • Incremental integration testing: Bottom up approach for testing.
  • Integration testing: Testing of integrated modules to verify combined functionality after integration.
  • Functional testing: This type of testing ignores the internal parts and focus on the output is as per requirement or not.
  • System testing: Entire system is tested as per the requirements.
  • End-to-end testing: involves testing of a complete application environment in a situation that mimics real-world use, using network communications, or interacting with other hardware, applications, or systems if appropriate.
  • Sanity testing: Testing to determine if a new software version is performing well enough to accept it for a major testing effort.
  • Regression testing: Testing the application as a whole for the modification in any module or functionality.
  • Acceptance testing: Normally this type of testing is done to verify if system meets the customer specified requirements.
  • Load testing: Its a performance testing to check system behavior under load.
  • Stress testing: System is stressed beyond its specifications to check how and when it fails.
  • Performance testing: Term often used interchangeably with ‘stress’ and ‘load’ testing.
  • Usability testing: User-friendliness check.
  • Install/uninstall testing: Tested for full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.
  • Recovery testing: Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.
  • Security testing: Can system be penetrated by any hacking way.
  • Compatibility testing: Testing how well software performs in a particular hardware/software/operating system/network environment and different combination s of above.
  • Comparison testing: Comparison
    product strengths and weaknesses with previous versions or other similar products.
  • Alpha testing: In house virtual user environment can be created for this type of testing.
  • Beta testing: Testing typically done by end-users or others.

 

References:

http://www.softwaretestinghelp.com/types-of-software-testing/

flickr photo by justinsomnia https://flickr.com/photos/justinsomnia/2730453797 shared under a Creative Commons (BY) license