Types of Testing

Manual Testing

Human execution of test procedures without using test automation tools or programming languages.

Test Automation

A process of writing and executing a computer program to do testing.

Black Box testing

Testing done from user perspective (no access to source code used).

Gray Box Testing

Gray box testing is using structural, design, and/or environment information to expand or focus Black box testing and to enhance testing productivity by using appropriate methods and tools.

White box Testing

White box testing is done at the source code level. This testing is based on knowledge of the internal logic of an applications code.

Functional Testing

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

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).

Negative Testing

Aimed at showing that software handles properly situations in which user acts not as user is supposed to act (invalid actions, inputs, settings.)

Boundary Testing

Boundary testing or a Boundary value analysis explores values near the limits of valid ranges. 100 < x < 200

Exploratory Testing

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 Planning, Executing and Learning are happening at the same time.

Unit Testing

White box testing of software components/modules. Executed by developers or whitebox testers.

Integration Testing

Integration testing is a phase in software testing in which individual software modules are combined and tested as a group.

System Testing

System testing is conducted on COMPLETE SYSTEM to evaluate it's compliance with the requirements. System testing is a black box testing.

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 is the very last test executed by SMEs (subject matter experts) on behalf of the future users.

Release/Build Acceptance Testing

Test done on newly compiled build/release to 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

Installation testing verifies that the system is installed and set up correctly to work ia a specified software/hardware environment.

Compatibility Testing

Conducted on the application to evaluate its compatibility with the different OS, Hardware, Browsers, etc.

Browser Compatibility Testing

Making sure that web application looks, behaves, and responds the same way across different browsers.

Smoke Testing

Same as build acceptance testing. Superficial testing of main features to decide if the build is good enough to be send to QA.

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

Alpha testing takes place at developers' site. Making sure the application has the right look and feel. Functionality is not expected to be fully in place.

Beta Testing

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

Determining how the system performs in terms of responsiveness and stability under a PARTICULAR workload.

Load Testing

Load testing is conducted to understand the behavior of the system under a specific expected load. Simplest form of performance testing.

Stress Testing

Stress testing is conducted to understand the behavior of the system under an extreme load.

Recoverability Testing

Recoverability 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

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

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

Security testing is conducted to test that: System data is protected; How system prevents the intrusion by hackers.

Localization Testing

Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

Last updated