This is a continuation from my previous post on types of software testing.
Is a test type involving injection of faults (compile or runtime) to test the error handling abilities of the system and its robustness.
Is a test type used to verify that the software has all the required functionality specified in the requirements. Conformance to functional requirements is tested.
Is a test technique used to discover security issues and errors in software by inputting large amounts of unexpected, invalid, random data. The aim is to make the system crash and reveal bugs. It is often executed in an automated manner.
Is a test type involving use of white and black box techniques. Here, the tester has some knowledge of the internals of the system under test unlike in black box testing where the tester has no knowledge of internals.
Is a type of usability testing involving quick capture of user feedback about specific areas of the product. Users are approached and asked to help quickly test/use the product and give feedback.
Used to test the various installation scenarios and configurations.
Involves integration of the different software modules and testing them as a group.
Tests the system's integration point with other systems. It could also mean the testing performed on a system in an environment where all the required hardware and software components are integrated.
Testing is carried out from top down/from the main module to the sub. If the bottom level/sub modules are not yet developed, stubs are created to simulate them.
Testing is carried out from bottom up/from the sub module to the main one. If the top level/main modules are not yet developed, Drivers are created to simulate the top level module.
Involves simultaneously performing Top down and Bottom up integration tests.
Testing of interfaces & communication between systems and components.
Testing the product's capabilities to be localized. Testing is done across language settings.
Testing the ability of a system to inter-operate & interact with other system(s).
Is a non-functional test type used to test the product under real life load conditions. It can be used to determine the maximum capacity of the system without suffering performance degradation.
l10n testing is performed to verify a product's localization/translation for a specific locale/language and is executed on the localized version of the product.
Is a type of testing performed to validate the correctness of the software's processing logic. Also includes testing of predicates.
Is a process of executing tests manually by a tester as opposed to an automated test which is scripted and executed by a tool/program.
Is a type of testing involving peer reviews of software.
Is a type of testing used to determine how a system will perform under a specific workload. Metrics such as responsiveness, throughput, etc. are collected and analyzed.
Normally involves a group of users trying out/testing the product prior to deploying it for wider user/customer access. E.g. pre-Beta
Involves testing of various protocols such as LDAP, XMPP, IMAP, SIP, etc.
Involves testing the ability of the system to recover post failure and the time taken to recover. Integrity checks are also run post recovery.
Is a type of testing to verify existing functionality is not broken due to new enhancements/fixes.
Is performed to verify the software's ability to perform consistently in a fault-free manner within a specified environment for a specific time duration.
Is an approach to designing tests (functional & non-functional) based on objectives and conditions that are derived from requirements.
Is a type of software testing wherein prioritization of tests is done based on risk assessment.
Is a subset of regression tests and designed to run quickly while performing a sanity check of the application to verify any bug fixes, run a set of prioritized regression tests and check any new feature changes at a high level. Any failure would result in the drop/build not proceeding forward to more extensive tests.
Is a type of testing done to measure the application's ability to scale up based on varying load profiles.
Fault-Injection Testing
Is a test type involving injection of faults (compile or runtime) to test the error handling abilities of the system and its robustness.
Functional Testing
Is a test type used to verify that the software has all the required functionality specified in the requirements. Conformance to functional requirements is tested.
Fuzz Testing
Is a test technique used to discover security issues and errors in software by inputting large amounts of unexpected, invalid, random data. The aim is to make the system crash and reveal bugs. It is often executed in an automated manner.
Gray Box Testing
Is a test type involving use of white and black box techniques. Here, the tester has some knowledge of the internals of the system under test unlike in black box testing where the tester has no knowledge of internals.
Guerilla Testing
Is a type of usability testing involving quick capture of user feedback about specific areas of the product. Users are approached and asked to help quickly test/use the product and give feedback.
Install & Configuration Testing
Used to test the various installation scenarios and configurations.
Integration Testing
Involves integration of the different software modules and testing them as a group.
System Integration Testing
Tests the system's integration point with other systems. It could also mean the testing performed on a system in an environment where all the required hardware and software components are integrated.
Top-down Integration Testing
Testing is carried out from top down/from the main module to the sub. If the bottom level/sub modules are not yet developed, stubs are created to simulate them.
Bottom-up Integration Testing
Testing is carried out from bottom up/from the sub module to the main one. If the top level/main modules are not yet developed, Drivers are created to simulate the top level module.
Bi-directional Testing / Sandwich Testing
Involves simultaneously performing Top down and Bottom up integration tests.
Interface Testing
Testing of interfaces & communication between systems and components.
Internationalization Testing
Testing the product's capabilities to be localized. Testing is done across language settings.
Interoperability Testing
Testing the ability of a system to inter-operate & interact with other system(s).
Load Testing
Is a non-functional test type used to test the product under real life load conditions. It can be used to determine the maximum capacity of the system without suffering performance degradation.
Localization (l10n) Testing
l10n testing is performed to verify a product's localization/translation for a specific locale/language and is executed on the localized version of the product.
Logic Testing
Is a type of testing performed to validate the correctness of the software's processing logic. Also includes testing of predicates.
Manual Testing
Is a process of executing tests manually by a tester as opposed to an automated test which is scripted and executed by a tool/program.
Walk-through Testing
Is a type of testing involving peer reviews of software.
Performance Testing
Is a type of testing used to determine how a system will perform under a specific workload. Metrics such as responsiveness, throughput, etc. are collected and analyzed.
Pilot Testing
Normally involves a group of users trying out/testing the product prior to deploying it for wider user/customer access. E.g. pre-Beta
Protocol Testing
Involves testing of various protocols such as LDAP, XMPP, IMAP, SIP, etc.
Recovery Testing
Involves testing the ability of the system to recover post failure and the time taken to recover. Integrity checks are also run post recovery.
Regression Testing
Is a type of testing to verify existing functionality is not broken due to new enhancements/fixes.
Reliability Testing
Is performed to verify the software's ability to perform consistently in a fault-free manner within a specified environment for a specific time duration.
Requirements Testing
Is an approach to designing tests (functional & non-functional) based on objectives and conditions that are derived from requirements.
Risk-based Testing
Is a type of software testing wherein prioritization of tests is done based on risk assessment.
Sanity Testing
Is a subset of regression tests and designed to run quickly while performing a sanity check of the application to verify any bug fixes, run a set of prioritized regression tests and check any new feature changes at a high level. Any failure would result in the drop/build not proceeding forward to more extensive tests.
Scalability Testing
Is a type of testing done to measure the application's ability to scale up based on varying load profiles.
************