Key Types of Testing

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.
Share the Knowledge

You May Also Like

About the Author: codenbox

Leave a Reply

Your email address will not be published. Required fields are marked *