Lesson 2 Main Testing Types and Software Bug Classification Flashcards
What are the main testing types?
Functional & Non-functional
What is functional testing?
The process through which QAs determine if a piece of software is acting in accordance with pre-determined requirements
Source: https://www.browserstack.com/guide/functional-testing
What is non-functional testing?
Non-Functional Testing is a type of testing used to evaluate a software application’s performance, usability, dependability, and other non-functional characteristics.
It is intended to test a system’s readiness according to non-functional criteria that functional testing never considers.
Source: https://www.browserstack.com/guide/what-is-non-functional-testing
Types of functional testing
Unit testing
Integration testing
Sanity testing
Smoke testing
Interface testing
Regression testing
Acceptance testing
Types of non-functional testing
Load testing
Localization testing
Performance testing
Security testing
Stress testing
Usability testing
What is unit testing?
Software testing where individual units/components of a software are testing (usually made by developers)
Testing one thing a time
What is integration testing?
Software testing where individual units are combined and tested as a group (usually made by developers)
Bring multiple functions together to see how they interact
What is sanity testing?
Performed after receiving a software build with changes in code or functionality to ensure the bugs have been fixed
Ensure it loads without crashing, usually developers do this testing
What is smoke testing?
Performed after receiving a software build to ensure the critical functionalities of the program are working fine
This is executed before any detailed functional or regression tests are done
What is interface testing?
Software testing to check how the user interface looks on the device
What is regression testing?
Performed to confirm that a recent program or code change has not affected existing features (try to break the software)
It ensures the old code still works once the new code changes are done
What is acceptance testing?
Software testing where a system is tested for acceptability
Building testing around the business requirements and access if it is acceptable for delivery
What is load testing?
Checks how the application behaves during normal and high loads
This is how many users can an application process
What is localization testing?
It is meant to customize a website or app according to the targeted language, region, audience preferences, and area-based regulations (country or state)
It aims to serve a customized user experience by curating features and offerings for individuals according to where they are and what they might prefer
Source: https://www.browserstack.com/guide/localization-testing-on-websites-and-apps
What is performance testing?
Determines the speed of a computer, network, or device
What is security testing?
Checking for anything that allows hackers to get in
Grown into cybersecurity industry
What is stress testing?
Uses an auto-generated simulation model to check all hypothetical scenarios
Taking the software over the requirements for a certain amount of time to see when it will crash
What is usability testing?
What is alpha testing?
Performed to identify all possible bugs before the product is released to end-user
What is beta testing?
Releasing a beta version of the software to a limited number of end-users to obtain feedback on the quality
Gaming - allows a small number of users to test the game before it is released
What is end-to-end (e2e) testing?
Checks whether an application flow from start to finish is behaving as expected (over the full user journey)
Ex. Shopping on Amazon - login, search for product, add to cart, checkout, payment, order confirmation
Testing workflow
Step 1: Sanity testing - does it still work
Step 2: Smoke testing - do the main features work (does it load)
Step 3: Regression testing - does everything else work (larger scale testing)
What is positive testing?
Uses the valid data as input and checks whether an application behaves as expected with positive inputs
What is negative testing?
Ensure that the application can gracefully handle invalid input or unexpected user behavior