High level definition of the various types of testing that will be executed by QA depending on project needs or requirements
- Functional Testing – to verify that a software application performs and functions correctly according to design specifications. Include scenarios that reflect the overall End User Experience Perspective during test execution.
- Regression Testing – Repeating the large number of same test cases on a new build to make sure nothing been broken any other part of the application after injecting the new codes or changes in functionalities.
- Sanity – minor code changes or after fixing a bug we perform Sanity testing to ensure new codes did not break any other parts of the application
- Smoke –It’s a type of Software Testing usually performed after a new software build to ensure the critical functionalities of the application are working fine. It is executed before any detailed or release testing. The purpose is to reject a badly broken application so that QA team does not waste time for installation and testing the application. Ex: High level positive Test for critical functionalities including launching the application/modules successfully.
- Full Regression – high level risks changes (new features, new OS version, new release, transaction flows, etc.)
- Integration Testing -It a test to check whether all the modules are combined together or not and working successfully as specified in the requirement document. Ex: In a banking application testing money transfer between Checking and Saving account.
- End to End / System Testing – validation of complete business transaction flow from beginning until the end. Very important especially for testing production issues or hotfixes
- Ad Hoc Testing – unstructured form of testing where QA Analysts would use/test the application without a formal plan – aka monkey testing.
- Exploratory Testing – Exploratory testing is the process of designing tests, developing tests, and executing tests all at the same time. Learn application by exploring and test simultaneously
- Performance Testing – validation on product response, loading times, maximum and minimum capacity, thresholds/breakpoints, etc.
- Automated Testing – to aid in performing repetitive testing tasks, very useful for executing regression suite
- Compatibility Testing – changes must be compatible to work with the organization’s supported devices, browsers, OS and current systems or platforms
- Security Testing – to check if the software in question is vulnerable to attacks, conforms to regulation standards, information/data are protected and maintains intended functionality
- Migration Testing – the process of testing the data transfer from one system type or format to a new platform while confirming that the intended functionality and features are unaffected, compatible or maintained. Very important for any product changes that involve system implementation, upgrade or consolidation.
- Production Testing – QA testing in production to validate the deployment and implementation of:
-
Hotfixes
-
Maintenance Windows
- Release Deployment / UAT
-
- UAT / Beta Testing – product is tested in the “real world” by the intended end users.This procedure is done on the final stages of the project.
- Globalization Testing – Is to ensure that application can function in any culture or local (language, territory). It is also called as Internationalization Testing.