Lesson 1 Flashcards
Black Box Testing
examines an application without peering into its internal structures or workings. (Zero-knowledge)
Gray Box Testing
Gray Box testing is done when a tester partially knows the internal structure of an application as the algorithms used. (Some knowledge)
White Box Testing
White Box testing tests the internal structures or workings of an application. (Full knowledge)
Functional Testing
Testing of a software system or component based on its specifications: what the system/component does, i.e. how compliant it is with specified functional requirements. Functions are fed input and the output is examined. The internal program structure is rarely considered.
Non-Functional Testing
Testing of a software application or system for its non-functional requirements: the way a system operates, rather than its specific behaviors.
Functional Criteria:
Unit Testing Integration Testing Sanity Testing Smoke Testing Interface Testing Regression Testing Acceptance Testing
Non-Functional Criteria:
Load testing Localization testing Performance testing Security testing Stress testing Usability testing
Unit Testing
Unit testing is a level of software testing where individual units/ components of a software are tested (usually made by developers).
Integration Testing
Integration testing is a level of software testing where individual units are combined and tested as a group (usually made by developers, sometimes by QA engineers who specify in a certain technical area).
System Testing
System testing is the process that evaluates how the various components of an application interact together in full. System testing verifies that an application performs tasks as designed. (Examples: usability, load, recovery, more)
Acceptance testing
Acceptance testing is a level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business’s requirements and assess whether it is acceptable for delivery.
Testing Types
Alpha & Beta
Alpha & Beta
Both are subtypes of acceptance testing.
Alpha Testing
Alpha testing is performed to identify all possible issues/bugs before the product is released to end-users/public. It is usually done by designated testers/internal employees and is done early on, near the end of the development phase, and before beta testing.
Beta Testing
Beta testing is done by releasing a beta version of the software to a limited number of end-users to obtain feedback on the product quality. Beta testing reduces product failure risks and provides increased product quality through customer validation.
End To End Testing
End-to-end testing checks whether an application flow – from start to finish – is behaving as expected (over the full user journey). End-to-end testing is performed to identify system dependencies and to ensure that data integrity is maintained between various system components and systems.
Smoke Testing
Smoke testing is performed after receiving a software build to ascertain that the critical functionalities of the program are working fine. It is executed before any detailed functional or regression tests are executed on the software build.
Sanity Testing
Sanity testing is performed after receiving a software build with changes in code or functionality, to ascertain that the bugs have been fixed and that no further issues have been introduced due to these changes. (More)
Regression Testing
Regression testing is performed to confirm that a recent program or code change has not adversely affected existing features, i.e. that new code changes have not caused side effects for the existing functionalities. It ensures that the old code still works once the new code changes are done.
Performance Testing
Performance testing determines the speed of a computer, network or device. It checks the performance of the components of a system by passing different parameters in different load scenarios.
Load Testing
Load testing simulates the actual user load on any application or website. It checks how the application behaves during normal and high loads and is applied when a development project nears completion.
Stress Testing
Stress testing determines the stability and robustness of a system. It is a non-functional testing technique that uses an auto-generated simulation model to check all the hypothetical scenarios.
Positive Testing
Positive testing, which uses the valid data as input, checks whether an application behaves as expected with positive inputs.
Negative Testing
Negative testing ensures that your application can gracefully handle invalid input or unexpected user behavior.