Manual testing
Tester plays the role of an end user. Test all features to ensure the correct behavior.
Automation testing
A process of writing a computer program to do testing that would otherwise need to be done manually.
Black Box testing
Testing done from user perspective (no access to source code used)
White Box testing is done with an access to the source code. This testing is based on knowledge of the internal logic of an applications code.
Gray Box testing is using structural, design, and environment information to expand or focus Black Box testing and to enhance testing productivity by using appropriate methods and tools.
Functional testing is conducted to verify that functions of a system are working as specified. Typically functions are described in work products (requirements, specifications, etc), but can be undocumented.
Non-Functional testing is conducted to test attributes of a component or system that do not relate to functionality: Reliability; Efficiency; Usability; Maintainability; Compatibility, etc.
Positive testing
Aimed at showing that software handles properly situations in which user acts as expected (verification). Positive testing runs to verify that a software works as expected when user conducts a correct actions.
Negative testing
Aimed at showing that software handles properly situations in which user acts not as user is supposed to act. Negative testing runs to verify that a software handles exceptions properly (invalid actions, inputs, settings).
Exploratory testing is when the tester “explores” an application.
No requirements. Tester, based on experience and creativity, learns things and generates new tests to run.
Black Box testing. Manual testing.
Ad hoc testing
Simplified form of Exploratory Testing where test Planning, Executing and Learning are happening at the same time.
Boundary testing or a Boundary value analysis explores values near the limits of valid ranges. 100 < x < 200
Unit testing
Testing of individual software components or modules. Unit tests are usually run by developers (or white box testers) during development process to ensure that code meets its design.
Integration testing is a phase in software testing in which individual software modules are combined and tested as a group.
System testing is conducted on complete system to evaluate it’s compliance with the requirements.
System testing is a black box testing. You need to know the design or logic.
End-to-End testing
Test a complete application in closest to production environment (interacting with a database using network communications or interacting with other hardware applications or systems if appropriate, etc).
User Acceptance Testing (UAT) gives the end users confidence that the delivered application meet their requirements.
Build Acceptance testing
When Release Engineer (developer) says that new release is done, QA should make sure it’s good enough to be accepted for testing, so the QA team can move from previous release to the new one.
Installation testing verifies that the system is installed and set up correctly to work at actual customers hardware.
Compatibility testing is type of testing conducted on the application to evaluate the application’s compatibility with the computing environment.
Browser compatibility testing is a user’s web applications testing, to ensure that application look, behave, and respond the same way across different browsers.
Sanity testing is a basic test to quickly evaluate if the calculation result can be true. It’s not to catch all mistakes, but to identify areas with obviously false results.
Smoke testing is run to identify simple failures severe enough to reject software release. Doesn’t the program run? Does it open a window? Does clicking the main buttons do anything?
Regression testing
Partial retesting of a modified program to make sure that no new errors were introduced while making changes to the code (developing new or fixing existing one).
Alpha testing takes place at developers’ sites, before the product is released to external customers. It has two phases: first phase – the product is tested by in-house developers; second phase – the product is tested by the QA team.
Beta testing takes place at customers’ sites, and involves testing by a group of customers who use the system at their own locations and provide feedback, before the system is released to other customers.
Performance testing
Testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload.
Load testing is conducted to understand the behavior of the system under a specific expected load. Simplest form of performance testing.
Stress testing is conducted to understand the behavior of the system under an extreme load.
Recover-ability testing is conducted to verify that if the system fails:
How it will re-establish a specified level of performance? How it will recover directly affected data?
Usability testing is used to evaluate product by testing it on users.
Usability testing measures how easy it is to use specific object or set of objects.
Accessibility testing is conducted to test the compliance with standards. Examples: World Web Consortium (W3C) – GUI; Americans with Disabilities Act of 1990; Wikipedia Accessibility; etc.
Security testing is conducted to test that:
System data is protected;
How system prevents the intrusion by hackers.
Localization testing is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.