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.
Boundary Testing
With this technique, test cases are designed to include values at the boundary. If the input data used is within the boundary value limits, then it is said to be positive testing. If the input data picked is outside the boundary value limits, then it is negative testing.
For example, testing user’s age, with allowed to register 18 to 150.
We check:
18, 45, 150 - positive checks inside the range.
17, 151 - negative checks outside the range.
Bug Classification
- Blocker
- Critical
- Major
- Trivial
- Minor
Bugs Priorities
Severity and Priority
Bugs Priorities - Severity
Severity defines the extent to which the defect can affect the software, i.e. the impact that a given defect has on the system.
Bugs Priorities - Priority
Priority defines the order in which we should resolve a defect, i.e. should we fix it now or can it wait?
Bug Reports Example:
Bug Title: “An attempt to access website results in 404 error” Bug ID: 12345 Severity: HIGH Priority: P0 (BLOCKER) Assigned to: Developer John Reported By: Tester Mary Status: New Environment details: OS: Windows 10, Chrome version 1234.56 Steps To Reproduce: 1) Navigate to Home Page 2) Click on the big red button Expected Result: Page should load and work as expected Actual Result: 404 HTTP error observed
List of Common HTTP Status Codes
200 OK 300 Multiple Choices 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 410 Gone 500 Internal Server Error 501 Not Implemented 503 Service Unavailable 550 Permission denied