---
## Types of software testing

---
## Unit testing
### We've done it before :)
* testing the smallest testable parts of an application - **units**
* units are **isolated** from the rest of the code
* units are examined to determine whether it behaves **exactly as you expect**
---
## Unit testing
### Example

---
## Integration tests
### Testing your units as a group!
* testing the **connection points** between separate groups of code
* can access API, databases, etc.
* will find bugs that unit tests can't
* Can use the same frameworks as Unit testing
* There are disadvantages, too :(
* touch more code
* therefore failures are harder to diagnose
* and tests are harder to maintain
---
## An example of the testing process

---
## End to end testing (aka Functional)
### Testing a complete functionality
* is done from the **perspective of the user**
* interacting with the app the same way the user will be
* special tools are used to automate browsers (**Selenium**)
* **expensive to perform** and can be hard to maintain when they're automated
* it is recommended to have a few key end-to-end tests and mostly **rely more on lower level types** of testing
---
## End to end testing
### Example - searching for a certain phrase in Google

---
## But how much of each test types should we use?
### Common reco: 70% unit tests, 20% integration tests, and 10% end-to-end tests
The exact mix will be different for each team, but in general, it **should retain that pyramid shape**

---
### Regression Testing
Regression Testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features.

if you are curious to know more read more here:
https://www.xenonstack.com/insights/what-is-regression-testing/
---
# Thank you!

---
<style>
.reveal {
font-size: 24px;
}
</style>
{"metaMigratedAt":"2023-06-14T23:55:43.716Z","metaMigratedFrom":"Content","title":"Thank you!","breaks":true,"contributors":"[{\"id\":\"d6f2ebde-f642-4bf4-ae59-6e15202b84f9\",\"add\":2212,\"del\":523},{\"id\":\"9df55736-efcc-40d4-ad63-cc2ebf99d789\",\"add\":736,\"del\":1}]"}