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