Software testing comprises of numerous tests, that are a classification of different testing activities, with a defined purpose of testing, test strategy, as well as test deliverables. These different types of software testing /tests help validate the software under test (SUT) as per the defined test objective, which helps enhance the quality of the end product. Divided into two major types, Functional Testing & Non-Functional Testing, each software testing type has different features, advantages, as well as disadvantages. Hence, here is a list of different types of software testing:
It includes the following tests:
It includes the following tests:
Let us further understand these software testing types and others, with the assistance of our following list.
Also known by the name of Split Testing and Bucket Testing, A/B Testing may be seen as a website optimization strategy or technique where two different versions of a website namely A and B with different variations and parameters are compared and assessed to find out the best performing version for the website. Read further, by clicking more.
Acceptance testing is the last level of testing to ensure the readiness of a software product based on the specified business and software requirements and specifications for getting readily accepted by the end users. For further reading, click more.
It is one of the forms of usability testing where a software application is being evaluated & assessed to ensure its accessibility by the targeted users along with the users falling in the category of Persons with Disabilities (PwDs). Click accessibility testing for further reading.
Active Testing involves the direct interaction of a tester with a software application to steadily carry out the testing activities throughout the testing phase.Read more by clicking active testing.
A unique and informal approach of testing a software application which solely based on a tester's skill sets and experience, without considering any sort of requirements or strategy or plan, and with the goal of breaking the system. For further reading, click more.
Agile testing is one of the latest and effective approach, based on the agile manifestation and software development methodology to carry out the software testing frequently and regularly throughout the testing process in multiple and short iterations within the less span of time. To read further, click more.
Alpha testing is done before the launch or delivery of a software application at development site to ensure the readiness of the application for its use in the real world scenarios and environment. Click alpha testing to access more.
Mostly based on JUnit, android testing consists of certain testing approaches, methods and practices with or without the usage of testing tools to evaluate and assess the android platform, framework and environment. For further information, click more.
API testing covers testing of various interface involved and incorporated in software product to ensure smooth, impeccable and uninterrupted exchange of data and information between two systems or applications. Click api-testing to know more about it.
This type of testing is done to examine and assess the software application resilience trait or the capability to recover in its original or previously existing state after getting through any unexpected or hazardous situation. For further reading, click more.
When testing is carried out with the help of specific testing tools to increase the productivity, coverage, accuracy and precision in the software testing process and all that in a minimal time. For further reading, click more.
Availability testing is done to ensure that the system being developed will function as desired, when it is required to function. To get clear understanding, click availability testing.
It is a methodology of testing a software application having two or more than two variants with the same set of test data input to examine, assess and compare the functional response and behaviour of the variants. To know more, click back to back testing.
As the name suggest, backend testing is used to test the whole backend system of a software application, which may include database, server sided programs and application and other features and files resided at backend side. Click backend testing to access more details.
Backward Compatibility testing is one of the types of compatibility testing which ensures the compatibility of a software application with its older or previously existed version. For further reading, click more.
Banking application testing is a special testing approach, designed and developed for the purpose of testing the banking applications from each different aspect to ensure flawless functional and performance quality of these applications. Visit banking application testing to know how to test the banking applications.
The primary purpose of benchmark testing is not to discover and locate defects in a software rather it is done to ensure functioning and performance of a software application to establish the benchmark quality and behaviour of a software application using representative sets of program and data. Find out the need of benchmark testing, by visiting the link.
It is one of the last testing type to be performed over software application just after the completion of alpha testing and prior to actual software release, at off-site or customer/client site by the targeted users. Click beta testing to know about its different types.
As the name suggests, Big Bang Integration Testing is one of the approach to perform integration testing. It does not provide the scope of testing the integration of modules, individually; rather testing is carried out on a whole system after the simultaneous integration of all modules. For further reading, click more.
Big Data Testing is a testing technique to test the large volume of data such as terabyte, petabyte, Exabyte and more. This type of testing is carried out to ensure the completeness, accuracy, reliability, conformity, process of these unstructured or architecture data. For further reading, click more .
Black Box Testing is a testing methodology and a broader term comprising of certain testing activities, which are used to evaluate the functional behaviour of a software product against the specified requirements & specification, without digging or touching its internal features and architecture. Visit black-box-testing to know more about it.
It is one of the practices to carry out the integration testing of a software application. Bottom up approach or bottom up integration testing technique tests the lowermost module and the integration testing gradually moves further with the integration of the modules until the top-most module or formation of the whole system has been reached. Find out more by visiting our bottom-up-approach page.
It is a test design approach under black box testing methodology, where test cases are designed based on the different test input range for testing the extreme ends and subsequently being used to verify and validate the boundary values. For further reading, click more .
Breadth testing is a technique to carry out the testing of complete/full functionalities and features of a software application to ensure maximum and broad test coverage without getting in detail or in-depth of the software. For further information, visit our breadth testing page.
Build Verification Test or BVT is one of the earliest types of testing carried out on a software build to accept or reject the build based on its readiness to face further and severe testing process. For further reading, click more.
Business Intelligence testing or BI Testing is used to evaluate the business intelligence systems such as OLAP, EIS. The testing is more focussed on the data along with the proper integration and functioning of the system. Explore more by visiting our business intelligence testing page.
Business process or business process based testing involves the participation of business professionals or business analyst in the automation testing of a software application to define and manage the business documentation, process and other business components during the automation. Then, what is the role of a Test Automation Engineer in this type of testing?? Find out by visiting our business process testing page.
Cause and effect graph testing is a black box test design technique with the purpose of maximizing the test coverage using minimal number of test cases.
Checklist based testing is primarily based on the experience of a tester, who derives and prepare the checklist of do-able activities during the testing process. This checklist acts as a manual for the testing team to carry out the testing in a guided manner. To learn about the possible checklist based testing activities, click more.
Testing the web applications in the cloud based environment to simulate real world web-traffic with the advantages of cost minimization, execution of large number of tests, meeting of deadlines, independent of user's geographical location.
Code based testing consists of all those testing types which are carried out on the code. For example- structural testing, code review, code inspection, code walk-through.
Code free testing is a testing methodology to verify and validate the functioning of a software application without visiting or touching the programming or source code. Click code free testing to know about the techniques for performing the code free testing.
Combinatorial is an approach to perform all-pair testing or pair-wise testing where emphasis is being made on tests improvisation by studying and analysing the possible combination of inputs. For further reading, Click more.
Comparison testing is all about carrying out the comparison of a software product with other software products of similar domain, available in the market to know & estimate the level of quality of your software against the trending features & qualities in the market. To gain more, visit our comparison testing page.
Compatibility testing examines the compatibility of a software product with the multiple variants of external software, hardware, network configuration, platform, etc. to avoid any compatibility issue and ensure appropriate and desired working of a software application in the intended operative environment. Find out more about the different types of compatibility testing by visiting our compatability testing page.
Computer aided software testing (CAST) is all about making use of tool based approach to automate the testing process. Click CASTto know more about the CAST Tools.
Concurrent testing is used to check the stability and performance of a software application in the event of being accessed and concurrently used by the multiple users. For further reading, click more.
Configuration testing is done to ensure the appropriate and expected functioning of a software application for each possible and intended configuration which may consists of diverse range of hardware, software, network settings, platform, etc. For further reading, click more.
A testing technique, which requires re-testing of a software product so as to ensure bugs/defects that were found earlier during the test execution has been either removed or resolved. However, it is different from regression testing. Click here to know the difference.
Also known by the name of compliance testing, conformance testing is used to ensure that the developed software is in compliance to pre-specified and established standards, specifications and regulations. Find out more here.
This form of testing is usually content-centric where content quality present on the websites is evaluated and assessed to ensure ease to the targeted audience. Find out more about by visiting our content testing page.
Sometime established methodologies, practices and approaches seems to be invaluable and inefficient to execute testing task with respect to available or specified condition and environment. This circumstance calls for the context-driven testing where testing activities are carried out with respect to the present given condition and situation. For further reading, click more.
Continuous testing is used to maintain the speed of testing process with that to development and help in automating the execution of test cases to meet the need of continuous delivery of the software application. Click here to know more
Cookie testing is performed to carry out the testing of the cookies present at the local computer or browser site. Click here to explore more about the cookie testing.
This testing form ensures the correct and appropriate working of a software product or websites across multiple intended and targeted browsers. For further reading, click more.
Cross Platform testing is done to evaluate the suitability and working of a software product across multiple intended and targeted platforms such as operating system, network configuration, etc. Find out more by visiting our cross platform testing page.
As the name suggest, crowdsourced testing is a way of carrying out the software testing by the crowd i.e. by the large number of groups which may compromise of developers, tech geeks, business professional and many others to ensure better testing rather than in-depth testing. Click here for further reading.
CRUD- "Create, Read, Update, Delete" testing is a black-box testing type which is used to perform the testing of the database. For further reading, click more.
Data & Database integrity testing refers to testing the process, methods and operations involved in the database along with data consistency and accuracy. For further reading, click more.
A testing methodology, where the specific set of input data and their corresponding and expected output drives the testing process is usually called as data-driven testing.
It is a type of white box testing approach which makes use of the data values and variable used in the software programming to detect & locate error and flaws in the data flow structure of the application. To know more, click here.
To ensure correct mapping, quality, integrity and consistency of the data, when it is transferred or migrated from one database to another, data migration testing technique is being used. Read how to conduct data migration testing by clicking here.
Data ware house represents the large repositories of data & information collected or aggregated from multiple sources for management, business and operations purposes within the organization. Data warehouse testing simply means testing the ETL applications to ensure appropriate and desirable functioning of the Data Warehouse. For further reading, click more.
Destructive testing is done without considering the business requirement in an uncontrolled manner with the purpose of breaking the system to explore vulnerable points of failure. Click here to read more.
Development testing is carried along with the software development process throughout the development life cycle to avoid the probability of occurrence of any severe defect(s) at a later stage.
The activity of evaluating the tangible documentation work or artifacts created prior and during the software testing mainly refers to documentation testing. For more information, click here.
Durability testing is performed to measure and assess the system performance under load or stress. Find out more by visiting our page.
Dynamic testing is a broader testing term comprising of various testing methodologies, involving the execution of software applications programming and features to ensure its functional and non-functional quality. Find out more by clicking here.
Ecommerce testing of a website avoids any sort of performance and security issues and ensures the quality designing, functioning and features of an ecommerce website. Find out how to perform ecommerce testing by clicking here.
The competency of a software application in terms of code quantity and resources used for executing a particular functionality or module may be assessed using the efficiency testing technique. Read more by clicking here.
The need to verify and validate the whole system right from the beginning to the end at all different levels against the specified business requirements to ensure proper and desired functionalities and feature is fulfilled by the end to end testing. Explore more by clicking here.
Endurance testing ensures the endurance capability of a software application to function meticulously and consistently under the gradually increasing load and stress over the period. For further reading, click more.
Equivalence class testing is a software testing approach where test data inputs are divided into number of partitions and subsequently test cases are designed & derived from them such that these test cases covers each partition at least once.
ERP testing is used to test Enterprise Resource Planning (ERP) application, to ensure appropriate and correct working of each modules present in the ERP to met the need and expectation of an organization. Visit here for complete information on ERP Testing
As the name specifies, exhaustive testing is an approach to perform complete testing of a software application using all possible test scenarios, use case and test cases.Visit here for complete information about Exhaustive Testing
Testing activities driven by the experience and skills of a testing engineer falls under the category of experience based testing methodology. Find out various testing approaches under experience based testing by clicking here.
Exploratory testing involves minimum or no planning and where a tester makes use of his/her skills and experience to carry out the testing while simultaneously & gradually developing the understanding and exploring the functionalities and features of a software product. For further reading, click more.
Failover testing ensures the software capability to carry out daily or regular operation without getting interrupted or affected from the task of allocating the additional resources to the system for the purpose of backup and in the event of system’s failure. Click here to read more.
Feature testing may be defined as the number of changes brought in the existing software to add new functionality or feature in the application. Read more by clicking here.
In forced error testing technique, negative or unexpected test cases or test scenario are used in the software testing activity in order to generate pre-defined error. To gain more understanding of the forced error testing, click here.
The purpose of functional testing is to verify and validate the software functional attributes and quality against the software requirement specifications (SRS). For further reading, click more.
A type of black box testing method where a system is fed with the random, invalid or unexpected input values with the intent to break or crash the system and locate vulnerable areas of an application. To explore more, click here.
To maintain the interest of a user towards the gaming application, it is necessary to make it flawless from starting to end point, at each different level of the game which may be ensured by the technique of game testing. Click here to read more.
It's a third level of testing which is usually carried out before the market release of a full-fledged and completely functional software product to ensure the acceptable quality of the product and bugs or defects found during testing are usually ignored unless they are critical to affect the performance of the application. Read more by clicking here.
Also known by the name of Internationalization testing, globalization testing is done to ensure the acceptable functioning and quality of a software application world widely by the heterogeneous users across the world. Find out more about the globalization testing by visiting our globalization testing page.
Gorilla testing reflects the joint efforts of two testers or a tester and a developer to carry out the complete testing of a particular functionality or a module of a software application.
A unique way of implementing and using the hybrid features of the black box and the white box testing methodology with limited understanding or insight of the software internal structure and code to design test cases for externally testing the system. For further reading, click more.
GUI testing comprises testing of various aspects to ensure the software product's graphical user interface quality. Click here to read different ways of performing GUI testing.
Independent testing eliminates the participation of testers, developers or any third person concerned with the software product in any way and uses outsourced testing team or testers to carry out fair testing of the product. Click here to explore more.
A software application along with its all equipped features and functionalities is intended to get successfully installed on the targeted platform and perform its desired functioning meticulously. Click here to read more.
Integration testing technique is a primary testing activity which ensures the proper interfacing among the integrated modules of a software product during the integration process. Read more about the integration testing here.
The need to test the proper flowing of data, control and communication among the interfaces of the integrated modules is accommodated by the interface testing technique.
Testing the capability of a software application to meticulously interact and operate with its external environment comprising of other systems, software, hardware or devices is usually referred to as interoperability testing. Click here to know more.
Interrupt testing is a methodology to ensure that a system is capable enough to resume its suspended services during and after the event of any sort of interruption occurred unexpectedly. Find out more by clicking here.
Testing each & every component of a system individually and in isolation is a better approach to carry out the testing of a system. Click to explore more about isolation testing.
While developing software applications, certain specific keywords and commands are inserted and used to call and execute a specific functionality or an action. The task of keyword driven testing is to ensure the intended & appropriate working of these keywords. Visit our keyword driven testing page to explore more.
Load testing is one of the form of performance testing which is used to evaluate the performance and behaviour of a software product under gradually increasing load. To know more, click here.
To target and ensure the features and working of a software product for a particular region, area, locality or country, localization testing of a product is performed. For further reading, click more.
A software application consists of various loops. The purpose of loop testing is to evaluate and validate these loops to ensure correct implementation and execution of algorithms used in the program. Click here.
Maintainability testing ensures the capability of a system to undergo modifications without any issues and update itself to meet the growing needs and requirements of the users. Explore more by visiting our maintainability testing page.
Developing a quality software product is a primary goal for a software development company. However, at customer’s site, its maintenance becomes necessary to ensure its long lifespan to consistently meet the user's need. Click here to read more.
Manual testing is a basic and primary approach of testing an application comprising of numerous testing activities and involves the participation of testers and sometimes developers to physically execute the various functionalities and features of the software to ensure its functional and non-functional quality attributes. Click here to get deeper insight of the manual testing.
Mobile app testing or mobile testing simply refers to evaluation of mobile apps features and functions across various platforms, devices and many more combination to ensure smooth functioning and uninterrupted performance of these applications. Read more by visiting mobile app testing page.
In model based testing, test cases are designed and derived using the functional model of the software application.
Module testing technique is used to evaluate and assess the intended working of each individual and fully functional module of the system. Learn more by visiting module testing page.
Without any defined strategy and plans, monkey testing approach makes a tester(s) free to carry out random testing of a system by feeding it with erroneous data and evaluating the response of the system against it. To gain more insight, click monkey testing.
A web page is composed of various set of elements, such as buttons, header section, sidebar etc. For example, an e-commerce website will have menu options, which will enable a user to make their own choice and order the item they selected.
Mutation testing involves the restructuring or alteration of the programming source code to output better test cases for testing the software product functionality and features. Get more information by clickinghere.
Negative testing is an approach to test and assess the system's behaviour and response against the unexpected and inappropriate or invalid input data. Read more at our negative testing page.
Similar to functional attributes, non-functional traits of a software product plays a major role in defining the quality and subsequently the performance. Non-functional testing encompasses several testing methodologies to ensure the non-functional quality of a software application under real world and unexpected conditions & environment. For further reading, visit our non-functional testing page.
To ensure the operational readiness of a software application to operate in the targeted environment just before the release or launch, operation testing of the product is carried out. To read more, click here.
Orthogonal Array Testing is a black box testing type based on the mathematical analysis and “permutation & combination” to ensure maximum test coverage in the availability of limited test cases and large volume of test data. Click here to know more.
Pair testing is all about carrying out the adhoc testing of a software product by a pair of testers or a tester and a developer or a tester and a user. To read more click here.
Simultaneous testing of two or more than two component of a software product in order to evaluate the functional characteristics of a newly developed software. For further reading click here.
Path testing is performed to ensure that each and every path involved in the execution of defined processes of a system has been executed at least once. To know more here.
As the name suggests, payment gateway testing is used to test payment gateway system from each different perspective to ensure smooth and secure online transactions between merchant and user. Find out possible test cases to test payment gateway by visiting our page.
Penetration testing is used to detect and locate the vulnerable spots and security loopholes by attacking the system. To read more, click here.
Prior to market release, pilot testing of a software application is carried out by the users in order to get and assess their feedback and reviews in further improving the quality. Click more for further information.
The capability or quality of a system or a software application to get easily transferred or shifted to other location or system and get adapted to its environment & setting is being ensured by the portability testing. For more detail, click here.
Positive testing ensures the intended functioning of a software product upon feeding with the valid and appropriate input data, fulfilling the business and user requirements, and simultaneously ensures that it output error messages or respond expectedly to invalid and inappropriate set of input values. Get more on our positive testing page.
Progressive testing or incremental testing is one of the forms of integration testing where each individual units are standalone tested in isolation first, and thereafter they are being gradually integrated and subsequently the integration test is performed after each integration. Click more to read further.
Protocol testing is a special type of testing, mostly used in the network and communication companies to evaluate the working of various protocols in each specified domain such as Wireless, VoIP, Routing etc. against the established standards. Click here to read more.
Rapid testing is a unique and makes testers independent from the documentation work and focuses on their intellectual traits and skills to carry out the testing activities. Find out the underlying principles of rapid software testing by visiting our page rapid software testing page.
Real time testing involves the real time evaluation of a system in its running or operational mode to execute a particular task in the specified time limit under real environmental conditions. For more insight, click here.
Recovery testing is used to evaluate the system's capability of recovering and restoring the data and information after going through failure or in the event of crash down or blackouts, etc. Click here to get more information.
To ensure the originality of the existing functionalities of a system, after applying changes and patches in the system in order to remove identified and traced defects, system is made to go through regression testing process. For further reading, click more.
A non-functional type of testing which is done to ensure system’s reliability attribute to carry out failure free operations and functionalities in a given environment and conditions, consistently for a specific period of time. For further reading, click more.
Testing approach driven by the test plans and test cases, which are derived from the available and specified requirements to ensure both functional and non-functional traits of a software product, is generally referred to as requirements testing or requirements based testing. To read more, visit our requirement testing page.
As the name is indicated, risk based testing basically involves the analysis of different types of risks inherited in a software project and accordingly prioritising them to derive, develop and execute test cases. For further reading, click more.
Sandwich testing is one of the integration testing approaches which reflect the productive blend of both top-down integration testing and bottom-up integration testing. Find out more by visiting our sandwich testing page.
Sanity testing may be seen as a sub-type of regression testing methodology to ensure the originality of the existing functionalities of a software product after going through the regression testing activity. Click here to read more.
The scalability attribute of a software product to upgrade itself and get adapted to its dynamic environment in order to meet & fulfil the rising demands and requirements of the end-users, is being ensured by the technique of scalability testing. For further reading, click here.
Scenario testing is one of the creative testing independent of software and business requirements, rather imaginary but valid scenarios are defined and used to carry out the testing of a software product. To read more, click here.
Scrum is an agile model for software development which involves multiple and short cycles, namely sprints to meet the dynamic and incoming business and software requirements. To know about the scrum testing, clickhere.
Session based testing is an approach to carry out the exploratory testing activities in multiple sessions based on the time and the structure.
Smoke testing is used to test newly developed software builds stability to undergo through further and more rigorous testing process. Visit our smoke testing page to explore more.
Spike testing is a type of performance testing methodology, where the load is fluctuated by suddenly increasing and decreasing the load to measure and assess the system's performance in the situation of low load, normal load and overload. To read more, click here.
As the name suggest, stability testing is a non-functional testing methodology, which is used to test system’s capability to work consistently for a given period of time under different environment, conditions and loads, without getting crash or going in the failure state. Click here to read more.
State transition testing provides an approach to perform black box testing of a system by disintegrating and visualizing the whole system into number of finite states, where transition between these states could be made using either valid or invalid input data. For further reading, click more.
Static testing basically involves the testing of a system in a static environment without visiting or executing its code structure or functions, rather other activities such as documentation work evaluation, evaluating and assessing the process, methodology and practices implemented and used in the development and the testing, etc., is being carried out. Get more by visiting static testing page.
Storage testing of a system is done to ensure that it is capable to store various data and information correctly at suitable locations and avoids the termination of the data in the event of insufficient space or memory and thereby ensures to have sufficient space for storage. To gain more insight, click here.
Stress testing may be seen as an extreme level of the load testing where continuous stress in the form of increasing load and simultaneously cutting of resources such as memory, space, etc. is being emphasized on a system in order to measure and assess its performance and behaviour under stress. Click here to read further.
System integration testing is a type of black box testing which is used to test performance of all sub parts of the system i.e. sub-systems including all other considerable attributes. Click here to reads more.
One of the primary software testing techniques usually carried out after unit and integration testing and before the acceptance testing to test the whole system against the specified software requirements. Click here to know more.
A system consists of many workable threads, where a thread symbolizes the smallest executable functionality. Thread testing is used to test these threads to ensure execute a specific task. For more information click here.
Transaction testing ensures the security, reliability and integrity, including the success of various business and financial transactions made online via websites. For further reading, click here.
Unit testing is used to evaluate the smallest working and testable unit of a system for its further use in the integration process to form a complete system. Read more by visiting unit testing page
Use case testing provides a unique approach for performing the black box testing process by identifying the test scenarios, covering the execution of the whole system in the transaction basis. Visit use case testing page for further information.
User acceptance testing is done to test the software functionalities and feature from a user's point view for the real world environment & scenarios either by the testers or the end users or both before the launch or delivery of the product. For more information, click here.
With visual testing, a tester can capture and record the whole testing process, which makes easy for a developer or the development team to understand the whole testing activities carried out. For further reading, click here.