54 lines
3.9 KiB
Markdown
54 lines
3.9 KiB
Markdown
---
|
||
type: practical
|
||
---
|
||
|
||
|
||
## Pyramid
|
||
![[Testing Pyramid.png]]
|
||
|
||
## Negative results
|
||
- **Error**: Mistake made by a human
|
||
- **Fault**: A manifestation of an error in software
|
||
- **Bug and Defect** are basically the same as Fault
|
||
- **Failure**: Inability of a system or component to perform its required function
|
||
|
||
|
||
## Types of tests
|
||
|
||
### Functional testing
|
||
|
||
| Fancy Words | Simpler Explanation | Stupid Dumb Word |
|
||
| ------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------- |
|
||
| Unit Testing | Testing individual components or pieces of code in isolation. | Piece by piece testing |
|
||
| Integration Testing | Testing the interaction between integrated modules or components to ensure they work together as expected. | Mix and match testing |
|
||
| System Testing | Testing the entire system as a whole to verify it meets specified requirements. | Whole thing testing |
|
||
| Acceptance Testing | Testing to determine whether the system meets the business needs and requirements, often performed by the end-users. | Ready or not |
|
||
| Regression Testing | Re-running tests to ensure that new code changes haven’t broken existing functionality. | Did we break it again? |
|
||
| Sanity Testing | A quick round of testing to check if a specific function or bug fix works as intended. | Quick check testing |
|
||
| Smoke Testing | A basic check to ensure the software’s core functionality works and it's stable enough for more in-depth testing. | Is it on fire? |
|
||
| Usability Testing | Testing how user-friendly and intuitive the software is for the end-user. | Easy of use testing |
|
||
|
||
### Non-functional testing
|
||
|
||
| Fancy Words | Simpler Explanation | Stupid Dumb Word |
|
||
| --------------------- | ----------------------------------------------------------------------------------------- | -------------------------- |
|
||
| Performance Testing | Testing how well the software performs under different conditions. | How fast does it run? |
|
||
| Load Testing | Testing how the software behaves under expected user load. | How much can it carry? |
|
||
| Stress Testing | Testing the limits of the software by pushing it beyond normal operational capacity. | When will it break? |
|
||
| Volume Testing | Testing the software with a large amount of data to see if it handles it well. | How much data can it take? |
|
||
| Scalability Testing | Testing how well the software scales when the user load or data volume increases. | Can it grow? |
|
||
| Recovery Testing | Testing the software's ability to recover after a failure or crash. | Can it unfuck itself? |
|
||
| Compatibility Testing | Testing how well the software works across different environments, platforms, or devices. | Does it work with others? |
|
||
| Security Testing | Testing how well the software protects against unauthorized access and vulnerabilities. | Can it be broken into? |
|
||
|
||
## Black box vs White box
|
||
|
||
|
||
| Black box | White box |
|
||
| --------------------------------- | ---------------------- |
|
||
| Done by tester | Done by devs |
|
||
| Internal code unknown | Knowledge is required |
|
||
| Functional testing | Structure testing |
|
||
| No programming skills necessary | bruh |
|
||
| Do it break, do it work, is nice? | Do it cover all cases? |
|